Ich möchte Dateien über das Internet mit einem Client teilen und suche nach FTP-Lösungen für AWS. Ich habe AWS SFTP ausprobiert, aber das Festlegen von Rollenrichtlinien ist umständlich und der Dienst scheint für meinen grundlegenden Anwendungsfall etwas kostspielig zu sein. Gibt es eine alternative Möglichkeit, einen FTP-Server auf EC2 oder S3 einzurichten, auf den Nicht-AWS-Benutzer zugreifen können? Ich möchte Leseberechtigungen für verschiedene Benutzer für verschiedene Unterverzeichnisse hinzufügen. Ich verwende MacOSX.
Ich habe versucht, die Anweisungen zu befolgenhttps://stackoverflow.com/questions/7052875/setting-up-ftp-on-amazon-cloud-serveraber es ist nicht klar, wie ich Nicht-AWS-Benutzern die Berechtigung erteilen kann, meine Dateien anzuzeigen, und ich konnte vsftpd nicht zum Laufen bringen.
Gibt es ein empfohlenes/standardmäßiges AWS-Setup zum Teilen von Dateien mit Nicht-AWS-Benutzern, vorzugsweise sicher (SFTP)? Ich würde täglich mehrmals aktualisierte Dateien mit Hunderten von Benutzern teilen.
Antwort1
Wenn Sie AWS Transfer nicht für SFTP verwenden möchten, können Sie Ihren SFTP-Server direkt von einer EC2-Instance aus einrichten.
Wenn Sie diese Anweisungen richtig befolgen, sollten Sie Ihre SFTP-Benutzer ganz einfach erstellen können. In meinem speziellen Fall habe ich eine Micro-T2-Instanz mit Ubuntu 18.04 verwendet.
- Lassen Sie uns installieren
openSSH
sudo apt-get install openssh-server
- Sie müssen eine bestimmte Gruppe erstellen, in der Sie die Benutzer einsperren.
sudo groupadd sftpusers
- Bearbeiten
/etc/ssh/sshd_config
mit vim oder nano.
Kommentieren Sie aus.#Subsystem sftp /usr/lib/openssh/sftp-server
Fügen Sie dann stattdessen hinzu,Subsystem sftp internal-sftp
um SFTP-Verbindungen zu Ihrem Server zuzulassen
. Geben Sie am Ende der Datei die neuen Gruppenkonfigurationen an.
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- An diesem Punkt
/etc/ssh/sshd_config
sollte es so aussehen:
(...)
#Subsystem sftp /usr/lib/openssh/sftp-server
(...)
Subsystem sftp internal-sftp
Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication yes
- Sie müssen den SSH-Dienst neu starten, um die Änderungen anzuwenden.
sudo service ssh restart
- Jetzt sollten Sie bereit sein, einen neuen Benutzer zu erstellen.
Folgen Sie den Anweisungen des folgenden Befehls und geben Sie das Benutzerkennwort ein.
sudo adduser user1
- Fügen wir unseren neuen Benutzer der SFTP-Gruppe hinzu, die wir zuvor erstellt haben.
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
- An diesem Punkt müssen wir unseren Benutzer als letztes im
/home/<user>
Verzeichnis einsperren.
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1
Sie können neue Ordner erstellen, die dem Benutzer gehören, indem Sie
sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder
ich erschufDasrepo vor ein paar Tagen, die diesen Prozess automatisieren