J'ai créé un utilisateur uniquement SFTP sous Linux.

spécification

--Connexion avec authentification par mot de passe. --SSH n'est pas disponible.

Créer un utilisateur

useradd sftp-user
passwd sftp-user
usermod -d / sftp-user
usermod -g apache sftp-user
chown sftp-user:apache /home/sftp-user

Point: définissez le groupe propriétaire sur apache et définissez l'autorisation sur 775 pour éviter les erreurs d'autorisation Apache.

Paramètres SFTP

vim /etc/ssh/sshd_config

Corrections

#PasswordAuthentication no //Commenter
#Subsystem sftp  /usr/libexec/openssh/sftp-server //Commenter
Subsystem sftp internal-sftp 
Match User sftp-user
ChrootDirectory /var/www/sftp
ForceCommand internal-sftp -u 0002 
PasswordAuthentication yes  
Paramètres La description
Match Spécifiez la plage de conditions en spécifiant l'utilisateur ou le groupe
ChrootDirectory Chemin du répertoire vers chroot
ForceCommand Paramètre de commande forcé
PasswordAuthentication S'il faut effectuer l'authentification par mot de passe

Remarque: lorsque sftp-user télécharge un fichier en exécutant ForceCommand internal-sftp -u 0002 Le groupe est autorisé. S'il n'est pas défini, ce sera 755, mais après le paramétrage, ce sera 775. (Permet l'écriture par Apache en accordant des autorisations au groupe.)

Après la correction, redémarrez.

systemctl restart sshd

Créer un répertoire

Structure du répertoire

La première chose que je veux supprimer est l'autorité du répertoire spécifié pour chroot

root: doit avoir les droits root 755

à propos de ça.

En raison de cette restriction, la structure des répertoires est la suivante.

var  └ www ├ Racine du document └ Répertoire spécifié comme chroot └ Répertoire pour déléguer l'autorité (montage de la racine du document)

Modifier les autorisations de racine du document
chown sftp-user:apache /var/www/html/
chmod 775 /var/www/html/
Créer un répertoire spécifié pour chroot
mkdir /var/www/sftp
chown root:root /var/www/sftp/
chmod 755 /var/www/sftp/
Créer un répertoire pour transférer les autorisations
mkdir /var/www/sftp/sftp-user
chown sftp-user:apache /var/www/html/sftp-user
chmod 775 /var/www/html/sftp-user

Si vous ne créez pas de répertoire pour transférer les privilèges et placez la racine du document directement sous chroot, seul l'utilisateur root peut l'exploiter.

Monter la racine du document

mount -B /var/www/html /var/www/sftp/sftp-user
option La description
B Tout répertoire peut être monté sous un autre répertoire

Les fichiers et répertoires similaires à la racine du document seront ajoutés sous / var / www / sftp / sftp-user /. Après avoir téléchargé les fichiers, ils seront ajoutés les uns aux autres.

Mesures de redémarrage du serveur

Si vous le redémarrez, il sera démonté, alors définissez-le.

vim /etc/fstab

ajouter à

/var/www/html /var/www/sftp/sftp-user          none    bind            0 0

Un article soigneusement écrit sur fstab est ici

c'est tout. Créez un utilisateur SFTP si vous ne souhaitez pas être sur le serveur.

Recommended Posts

J'ai créé un utilisateur uniquement SFTP sous Linux.
J'obtiens une ImportError dans appengine_config.py
J'ai essayé d'installer Linux sur mon Mac
[MariaDB] Installez MariaDB sous Linux et créez une base de données et un utilisateur opérationnel.
J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
Créer un serveur NFS sur Arch Linux
J'ai créé un environnement Anaconda à l'aide de Docker!
Je veux utiliser Linux sur mac
Commandes utilisateur Linux
[Je suis un débutant en informatique] J'ai fait de mon mieux pour implémenter Linux sur Windows
Configurer un environnement de développement Objective-C 2.0 sur Linux
Je veux enregistrer les entrées / sorties de fichiers sous Linux
Créer un environnement Arch Linux sur Raspai
J'ai lu un livre d'introduction sur le traitement du langage naturel
Je souhaite développer des applications Android sur Android (débogage)
Créer un environnement pour MkDocs sur Amazon Linux (tentative)
J'ai écrit un script d'installation automatique pour Arch Linux
Construisez de manière compacte une base de données Oracle (19c) sous Linux sur VirtualBox
Préparation à l'utilisation d'Ansible sur un serveur Linux existant
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
J'ai essayé d'installer le noyau Linux sur virtualbox + vagrant
Démoniser les processus sous Linux
jblas sur Arch Linux
Linux (WSL) sous Windows
Routeur NAT sur Linux
Développer .NET sur Linux
Wake on LAN sous Linux
Surveiller le trafic sous Linux
J'ai créé un installateur Ansible
Mettre à jour vscode sur Linux
[Linux] Modifier le mot de passe utilisateur
Créer LiveUSB sur Linux
Fonctionnement Linux sur Win10
J'ai créé un modèle de détection d'anomalies qui fonctionne sur iOS
Comment créer un fichier ISO (image CD) sous Linux
Publiez le script shell créé pour réduire les problèmes de création de LiveUSB sous Linux