So erstellen Sie einen SFTP (SSH) -Benutzer mit äußerst eingeschränkten Berechtigungen

8

Ich starte einen Server auf Ubuntu Server 14.04. Ich möchte einen Benutzer erstellen, der eine Verbindung über SFTP herstellen, 1 Datei herunterladen und die Verbindung beenden kann. Der Benutzer sollte sonst nichts tun können. Durchsuchen von Systemdateien oder Einstellungen oder Befehlszeileneinträgen, nichts. Anmelden, Datei herunterladen, gg. Wenn die Datei aktualisiert ist, melden Sie sich an und laden Sie sie herunter, gg. Die Datei befindet sich jedes Mal im selben Verzeichnis und hat jedes Mal denselben Namen, wird jedoch aktualisiert.

BEARBEITEN: Ich versuche, Ihre Lösung zu implementieren, aber ich habe einige Probleme gefunden: In der Konfigurationsdatei des SSH in meiner Konfiguration befindet sich eine Zeile mit "Gruppen-SSH-Benutzer zulassen". Ich habe sftp_users hinzugefügt. Aber es liegt noch ein anderes Problem vor uns. sudo chown root.root / ubuntu / ist für mich nicht optimal, da root die Datei, die "ubuntu" herunterladen muss, nicht ssh und in das Verzeichnis schreiben kann (wir nennen sie user1. Ich möchte, dass user1 weiterschreiben kann Das Verzeichnis und Ubuntu sind schreibgeschützt. Wenn ich sudo chown user1.user1 / ubuntu / ändere und versuche, mit dem Benutzer ubuntu sftp zu machen, schlägt die Verbindung fehl. Wenn ich es root lasse, kann ich eine Verbindung herstellen, aber ich kann das nicht sehen aktuellesverzeichnis ich sehe nur / und empy auf filezilla. ich habe sogar user1 zu sftp_users hinzugefügt, aber immer noch keinen erfolg.

Danke vielmals

BlueStarry
quelle

Antworten:

11

Lasst uns beginnen

Benutzer erstellen ubuntu

sudo useradd ubuntu

Passwort machen

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

Nur für SFTP-Gruppe erstellen

xxx@xxx:~$ sudo groupadd sftp_users 

Hinzufügen zu einem Benutzer "Ubuntu" nur für SFTP-Gruppe

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

Machen Sie dir für den sftpZugriff

sudo mkdir /ubuntu

Eigentümer wechseln, da Lese- / Schreibberechtigung

sudo chown root.root /ubuntu/

Berechtigung hinzufügen

sudo chmod 755 /ubuntu/

Bearbeiten /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Kommentieren Sie aus und fügen Sie eine Zeile wie unten hinzu

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

Zuletzt hinzufügen

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

Starten Sie den sshDienst neu

sudo service ssh restart

Mit dieser Konfiguration können Sie in Ordner ssh ubuntuund Dateien abrufen . Kann nicht putoderdelete

Versuchen.

Bearbeiten 1

Um im rechten Ordner sftp zu bearbeiten /etc/passwd. Ändern Sie die Zeile, damit der Benutzer ubuntuso aussieht

sudo nano /etc/passwd

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

Dadurch wird der Ubuntu-Basisordner des Benutzers in Ihren SFTP-Serverordner geändert.

Das Aktivieren eines rootKontos ist keine gute Idee.

Sie können ssh zum Server mit user1.

Wenn Sie Benutzer hinzufügen user1in sudoer groupkönnen Sie in Ordner schreiben /ubuntu/und entsprechende Berechtigung eingestellt

sudo adduser user1 sudo

Ordner erstellen, in Ordner Ubuntu schreiben. Nach Aktionen müssen Sie die Berechtigung für den Benutzer festlegen ubuntu. Am einfachsten ist es, die Erlaubnis auf 755 zu setzen

sudo chmod 755 -R /ubuntu/

-R - Option gibt dem Benutzer die Leseberechtigung für alle Dateien und Verzeichnisse ubuntu

2707974
quelle
Vielen Dank an dich. Weitere Informationen finden Sie in meiner Bearbeitung, da die Kommentare sehr knapp sind.
BlueStarry
1
Sie haben 1 in meiner Antwort bearbeitet.
2707974
Es tut mir leid zu sagen, dass es nicht funktioniert. Mit filezilla sftp kann ich weder mit user1 noch mit ubuntu in den Ordner schreiben. Wenn ich mich mit Ubuntu über SFTP anmelde, bekomme ich trotz der letzten Änderungen den Ordner /. Ich habe es mehrmals versucht und kann das Problem nicht herausfinden.
BlueStarry
Ich denke auch, dass 755 nicht gut für diesen Zweck ist, weil der Besitzer root ist und Sudoer nicht in den Ordner mit 755 schreiben können
BlueStarry
Schon in 2015, ich bin sicher , dass Ubuntu wurde mit adduserund addgroup, anstatt useradd, groupaddusw. Das sudo chown root.root /ubuntu/ist einfach falsch. Sie haben das Verzeichnis mit erstellt sudo, sodass der Besitz bereits besteht root. Es sollte verwenden ubuntu.sftp_users. Wenn Sie es ursprünglich als Eigentum von erstellt haben ubuntu, ist alles aus " Aktivieren des Root-Benutzers ..." überflüssig.
Auspex