Comment créer un utilisateur SFTP (SSH) avec des autorisations extrêmement limitées

8

je lance un serveur sur Ubuntu Server 14.04. Je veux créer un utilisateur capable de se connecter via sftp, de télécharger 1 fichier et de mettre fin à la connexion. L'utilisateur ne devrait pouvoir rien faire d'autre. Parcourir les fichiers système ou les paramètres, ni les entrées de ligne de commande, rien. Connectez-vous, téléchargez le fichier, gg. Une fois le fichier mis à jour, connectez-vous pour le télécharger, gg. Le fichier se trouve dans le même répertoire à chaque fois et porte le même nom à chaque fois mais est mis à jour.

EDIT: J'essaye d'implémenter votre solution mais j'ai trouvé quelques problèmes: Sur le fichier de configuration du ssh sur ma configuration il y a une ligne avec "allow groups sshdusers". J'ai ajouté sftp_users. Mais il y a un autre problème à venir. sudo chown root.root / ubuntu / n'est pas optimal pour moi car root n'est pas capable de ssh et d'écrire dans le répertoire le fichier que "ubuntu" doit télécharger (nous l'appellerons utilisateur1. Je veux que l'utilisateur1 puisse écrire sur le répertoire et ubuntu en lecture seule. Si je change sudo chown user1.user1 / ubuntu / et que j'essaie de sftp avec l'utilisateur ubuntu, la connexion échoue. Si je le laisse root comme vous le faites, je peux me connecter mais je ne vois pas le currentdirectory je vois seulement / et empy sur filezilla. J'ai même ajouté user1 à sftp_users, mais toujours pas de succès.

Merci beaucoup

BlueStarry
la source

Réponses:

11

Commençons

Créer un utilisateur ubuntu

sudo useradd ubuntu

Créer un mot de passe

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Créer pour le groupe SFTP uniquement

xxx@xxx:~$ sudo groupadd sftp_users 

Ajouter à un utilisateur "ubuntu" pour le groupe SFTP uniquement

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

Faire dir pour l' sftpaccès

sudo mkdir /ubuntu

Changer de propriétaire, car autorisation de lecture / écriture

sudo chown root.root /ubuntu/

Ajouter une autorisation

sudo chmod 755 /ubuntu/

Éditer /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Commentez et ajoutez une ligne comme ci-dessous

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Ajouter à la fin

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /ubuntu
  ForceCommand internal-sftp

Redémarrez le sshservice

sudo service ssh restart

Avec cette configuration, vous pouvez ssh dans un dossier ubuntuet obtenir des fichiers. Impossible putoudelete

Essayer.

Modifier 1

Pour sftp dans le dossier de droite, éditez /etc/passwd. Modifier la ligne pour que l'utilisateur ubunturessemble à ceci

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

Cela changera le dossier de base de l'utilisateur ubuntu en dossier de votre serveur sftp.

L'activation du rootcompte n'est pas une bonne idée.

Vous pouvez ssh sur le serveur avec user1.

Si vous ajoutez l' utilisateur user1en sudoer groupvous serez en mesure d'écrire dans le dossier /ubuntu/et définir l' autorisation appropriée

sudo adduser user1 sudo

Créer un dossier, écrire dans le dossier ubuntu. Après les actions, vous devez définir l'autorisation pour l'utilisateur ubuntu. Le moyen le plus simple consiste à définir une autorisation sur 755

sudo chmod 755 -R /ubuntu/

-R - l'option donnera la permission de lecture de tous les fichiers et répertoires pour l'utilisateur ubuntu

2707974
la source
Merci beaucoup à vous. Voir mon montage pour en savoir plus, car les commentaires sont vraiment serrés.
BlueStarry
1
Vous avez Edit 1 dans ma réponse.
2707974
Je suis désolé de dire que cela ne fonctionne pas. Avec filezilla sftp, je ne peux pas écrire sur le dossier avec user1 ni ubuntu. me connecter avec ubuntu via sftp me donne le dossier / malgré les dernières modifications. j'ai essayé plusieurs fois et je n'arrive pas à comprendre le problème.
BlueStarry
Je pense aussi que 755 n'est pas bon à cet effet car le propriétaire est root et les sudoers ne peuvent pas écrire dans le dossier avec 755
BlueStarry
Même en 2015, je suis sûr que Ubuntu utilisait adduseret addgroup, plutôt que useradd, groupadd, etc. sudo chown root.root /ubuntu/est tout simplement faux. Vous avez créé le répertoire en utilisant sudo, donc la propriété est déjà root. Il devrait utiliser ubuntu.sftp_users. Enfin, si vous l'aviez initialement créé en tant que propriété de ubuntu, tout ce qui concerne " Activation de l'utilisateur root ..." est superflu.
Auspex