web-dev-qa-db-fra.com

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

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

EDIT: J'essaie d'implémenter votre solution, mais j'ai rencontré quelques problèmes: Sur le fichier de configuration de ssh sur ma configuration, il y a une ligne avec "allow groupes 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 ne peut pas ssh et écrire dans le répertoire le fichier que "ubuntu" doit télécharger (nous l'appellerons user1. Je veux que l'utilisateur1 puisse écrire le répertoire et ubuntu en lecture seule Si je change de Sudo chown user1.user1/ubuntu/et que j'essaie de créer une connexion sftp avec l'utilisateur Ubuntu, la connexion échoue. Si je la laisse en tant que root, je peux me connecter currentdirectory, je ne vois que/et empy sur filezilla.J'ai même ajouté user1 à sftp_users, mais toujours sans succès.

Merci beaucoup

8
BlueStarry

Commençons

Créer un utilisateur ubuntuname__

Sudo useradd ubuntu

Faire 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 un répertoire pour sftpaccess

Sudo mkdir /ubuntu

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

Sudo chown root.root /ubuntu/

Ajouter une permission

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 au dernier

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

Redémarrez le service sshname__

Sudo service ssh restart

Avec cette configuration, vous pouvez ssh dans le dossier ubuntuet obtenir des fichiers. Impossible de putou deletename__

Essayer.

Modifier 1

Pour sftp dans le dossier de droite, éditez /etc/passwd. Modifiez la ligne pour l'utilisateur ubuntuafin qu'il ressemble à ceci

Sudo nano /etc/passwd

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

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

Activer le compte rootn’est pas une bonne idée.

Vous pouvez ssh au serveur avec user1.

Si vous ajoutez l'utilisateur user1 à sudoer group, vous pourrez écrire dans le dossier /ubuntu/ et définir les droits appropriés.

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 ubuntuname__. Le moyen le plus simple est de définir une autorisation sur 755

Sudo chmod 755 -R /ubuntu/

-R - l'option donnera l'autorisation de lire pour tous les fichiers et répertoires de l'utilisateur ubuntuname__

11
2707974