Versteckte Ordner unsichtbar machen mit sftp

Versteckte Ordner unsichtbar machen mit sftp

Mein Client benötigte einen SFTP-Server zum Teilen von Dateien, also habe ich einen SFTP-Server auf einer Amazon EC2-Ubuntu-Maschine erstellt und verschiedene Benutzer hinzugefügt.

Jetzt müssen Benutzer, wenn sie sich über WinSCP oder einen anderen Client beim SFTP-Server anmelden, nur ihre eigenen Ordner im Home-Verzeichnis sehen können. Die anderen Ordner dürfen für sie nicht sichtbar sein. Außerdem dürfen sie in ihren Home-Verzeichnissen keine Dateien oder Ordner sehen, die mit einem Punkt (.) beginnen.

Ist das möglich? Siehe z. B. den Screenshot-Link unten. Ich möchte nur, dass mein Client den Transcript-Ordner sieht/darauf zugreift, sonst nichts.

https://i.stack.imgur.com/kEHfW.png

Antwort1

Vielen Dank an alle, dieser Link hat mir endlich geholfen, meine Aufgabe zu erfüllen.http://rmtheis.wordpress.com/2011/07/03/setting-up-an-sftp-site-on-amazon-web-services-ec2-creating-an-account-to-share-with-a-third-party-and-restricting-that-account-to-allow-only-sftp/

Dieses besteht aus drei Teilen:

  • Einrichten einer SFTP-Site auf EC2
  • Erstellen eines neuen Benutzerkontos
  • Konfigurieren des neuen Benutzerkontos für schreibgeschützten FTP-Zugriff ohne SSH-Berechtigungen

Dies ist für die Übertragung von Dateien an und von vertrauenswürdigen Benutzern vorgesehen. Ich verwende dies als angemessene Lösung, um gelegentlich sehr große Dateien an Clients zu senden, wobei ich eine für diese Aufgabe vorgesehene EC2-Instanz verwende. Nachdem die Übertragung abgeschlossen ist, fahre ich die Instanz herunter oder lösche sie.

Richten Sie einen Server mit Amazon Web Services EC2 ein und wählen Sie ein Ubuntu Amazon Machine Image (AMI). (Sie finden ein AMI unter http://cloud.ubuntu.com/ami/. Sie können eine auswählen, die für die kostenlose Stufe infrage kommt, wie etwa ami-1aad5273)

SSH auf den Server:

ssh -i keyfile.pem [email protected]

Installieren Sie vsftpd:

sudo apt-get install vsftpd

Einen neuen Benutzer erstellen:

sudo adduser newusername

Generieren Sie mithilfe der AWS Management Console ein neues Schlüsselpaar für den Drittanbieterbenutzer.

Importieren Sie mit Puttygen den neuen Schlüssel (keyname.pem) und kopieren Sie seinen öffentlichen Schlüssel.

Erstellen Sie auf dem Server das .ssh-Verzeichnis für den neuen Benutzer:

sudo mkdir /home/newusername/.ssh

Fügen Sie den öffentlichen Schlüssel ein /home/newusername/.ssh/authorized_keys.

Berechtigungen festlegen:

sudo chmod 700 /home/newusername/.ssh

sudo chmod 600 /home/newusername/.ssh/authorized_keys

sudo chown -R newusername:newusername /home/newusername/.ssh

Testen Sie die SFTP-Anmeldung des neuen Benutzers von Ihrem lokalen Computer aus:

sftp -o IdentityFile=newkeypair1.pem
[email protected]

Erstellen Sie eine neue Gruppe für Benutzer, die ausschließlich SFTP verwenden dürfen:

sudo groupadd sftponly

sudo adduser newusername sftponly

Bearbeiten /etc/ssh/sshd_configund ändern Sie die Subsystemzeile wie folgt:

Subsystem sftp internal-sftp

und fügen Sie diese Zeilen am Ende hinzu /etc/ssh/sshd_config:

Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Legen Sie Berechtigungen fest, ohne die für die schlüsselbasierte Authentifizierung von EC2 erforderlichen Dateien zu überschreiben:

sudo chown root:root /home/newusername

sudo chown -R newusername:newusername /home/newusername/.ssh

sudo /etc/init.d/ssh restart

Jetzt kann der neue Benutzer eine Verbindung per SFTP herstellen, aber nicht per SSH. Platzieren Sie die Dateien, die Sie freigeben möchten /home/newusername, in und teilen Sie dem Benutzer den Schlüssel mit.

verwandte Informationen