web-dev-qa-db-fra.com

Créez un utilisateur SFTP pour accéder à un seul répertoire.

Je dois créer un utilisateur qui ne peut que SFTP vers un répertoire spécifique et prendre une copie de certaines informations. c'est ça. Je continue de chercher en ligne et ils apportent des informations sur chroot et la modification du sshd_config.

Jusqu'à présent, je peux juste

  • ajouter l'utilisateur "useradd sftpexport"
  • le créer sans répertoire personnel "-M"
  • définissez son emplacement de connexion "-d/u02/export/cdrs" (où les informations sont stockées)
  • ne pas lui permettre d'utiliser ssh "-s/bin/false"

useradd sftpexport -M -d/u02/export/cdrs -s/bin/false

Quelqu'un peut-il suggérer ce que je suis censé modifier pour que l'utilisateur puisse uniquement se connecter et copier le fichier?

Je préfère créer un groupe d'utilisateurs sftp et restreindre les utilisateurs de ce groupe à leur répertoire personnel.

Tout d'abord, modifiez votre /etc/ssh/sshd_config fichier et ajoutez-le en bas.

Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no  

Cela indique à OpenSSH que tous les utilisateurs du groupe sftp doivent être chrootés vers leur répertoire personnel (qui %h représente dans la commande ChrootDirectory)

Ajoutez un nouveau groupe sftp, ajoutez votre utilisateur au groupe, limitez-le à l'accès ssh et définissez son répertoire personnel.

groupadd sftp
usermod username -g sftp
usermod username -s /bin/false
usermod username -d /home/username

Redémarrez ssh:

Sudo service ssh restart

Si vous rencontrez toujours des problèmes, vérifiez que les autorisations de répertoire sont correctes sur le répertoire de base. Réglez la valeur 755 en fonction de votre configuration.

Sudo chmod 755 /home/username

EDIT: Sur la base des détails de votre question, il semble que vous manquez juste la partie sshd_config. Dans votre cas, remplacez sftp par sftpexport. Assurez-vous également que les autorisations de fichier sont accessibles sur le /u02/export/cdrs répertoire.

Une configuration encore meilleure (et il existe des configurations encore meilleures que ce que je vais proposer) consiste à créer un lien symbolique entre le /u02/export/cdrs répertoire vers le répertoire de base de l'utilisateur.

29
csi

Vous pourriez avoir besoin d'ajouter un shell restreint pour que cet utilisateur puisse y mettre des fichiers. Vous pouvez utiliser l'outil rssh pour cela.

usermod -s /usr/bin/rssh sftpexport

Activer les protocoles autorisés dans config /etc/rssh.conf.

2
user3132194