Ich habe einen Nur-SFTP-Benutzer unter Linux erstellt.

Spezifikation

Benutzer erstellen

useradd sftp-user
passwd sftp-user
usermod -d / sftp-user
usermod -g apache sftp-user
chown sftp-user:apache /home/sftp-user

Punkt: Setzen Sie die Eigentümergruppe auf Apache und die Berechtigung auf 775, um einen Apache-Berechtigungsfehler zu vermeiden.

SFTP-Einstellungen

vim /etc/ssh/sshd_config

Korrekturen

#PasswordAuthentication no //Auskommentieren
#Subsystem sftp  /usr/libexec/openssh/sftp-server //Auskommentieren
Subsystem sftp internal-sftp 
Match User sftp-user
ChrootDirectory /var/www/sftp
ForceCommand internal-sftp -u 0002 
PasswordAuthentication yes  
Parameter Erläuterung
Match Geben Sie den Bedingungsbereich an, indem Sie Benutzer oder Gruppe angeben
ChrootDirectory Verzeichnispfad zu chroot
ForceCommand Erzwungene Befehlseinstellung
PasswordAuthentication Gibt an, ob eine Kennwortauthentifizierung durchgeführt werden soll

Hinweis: Wenn sftp-user eine Datei mit ForceCommand internal-sftp -u 0002 hochlädt Die Gruppe ist autorisiert. Wenn es nicht eingestellt ist, ist es 755, aber nach dem Einstellen ist es 775. (Ermöglicht das Schreiben durch Apache, indem der Gruppe Berechtigungen erteilt werden.)

Starten Sie nach der Korrektur neu.

systemctl restart sshd

Verzeichnis erstellen

Verzeichnisaufbau

Das erste, was ich unterdrücken möchte, ist die Autorität des für chroot angegebenen Verzeichnisses

root: muss über Root-Berechtigungen 755 verfügen

darüber.

Aufgrund dieser Einschränkung ist die Verzeichnisstruktur wie folgt.

var  └ www ├ Dokumentenstamm └ Verzeichnis als chroot angegeben └ Verzeichnis für die delegierende Berechtigung (Mounten des Dokumentstamms)

Ändern Sie die Dokumentstammberechtigungen
chown sftp-user:apache /var/www/html/
chmod 775 /var/www/html/
Erstellen Sie ein für chroot angegebenes Verzeichnis
mkdir /var/www/sftp
chown root:root /var/www/sftp/
chmod 755 /var/www/sftp/
Erstellen Sie ein Verzeichnis zum Übertragen von Berechtigungen
mkdir /var/www/sftp/sftp-user
chown sftp-user:apache /var/www/html/sftp-user
chmod 775 /var/www/html/sftp-user

Wenn Sie kein Verzeichnis zum Übertragen von Berechtigungen erstellen und das Dokumentstammverzeichnis direkt unter chroot platzieren, kann es nur vom Stammbenutzer betrieben werden.

Hängen Sie den Dokumentstamm ein

mount -B /var/www/html /var/www/sftp/sftp-user
Möglichkeit Erläuterung
B Jedes Verzeichnis kann unter einem anderen Verzeichnis bereitgestellt werden

Dateien und Verzeichnisse, die dem Dokumentstamm ähnlich sind, werden unter / var / www / sftp / sftp-user / hinzugefügt. Nach dem Hochladen der Dateien werden sie einander hinzugefügt.

Maßnahmen zum Neustart des Servers

Wenn Sie es neu starten, wird es nicht gemountet. Stellen Sie es also ein.

vim /etc/fstab

hinzufügen

/var/www/html /var/www/sftp/sftp-user          none    bind            0 0

Ein Artikel, der sorgfältig über fstab geschrieben wurde, ist hier

das ist alles. Erstellen Sie einen SFTP-Benutzer, wenn Sie nicht auf dem Server sein möchten.

Recommended Posts

Ich habe einen Nur-SFTP-Benutzer unter Linux erstellt.
Ich erhalte einen ImportError in appengine_config.py
Ich habe versucht, Linux auf meinem Mac zu installieren
[MariaDB] Installieren Sie MariaDB unter Linux und erstellen Sie eine Datenbank und einen Benutzer.
Ich habe versucht, eine Umgebung von MkDocs unter Amazon Linux zu erstellen
Erstellen Sie einen NFS-Server unter Arch Linux
Ich habe mit Docker eine Anaconda-Umgebung erstellt!
Ich möchte Linux auf dem Mac verwenden
Linux-Benutzerbefehle
[Ich bin ein IT-Anfänger] Ich habe mein Bestes versucht, Linux unter Windows zu implementieren
Richten Sie eine Objective-C 2.0-Entwicklungsumgebung unter Linux ein
Ich möchte die Eingabe / Ausgabe von Dateien unter Linux protokollieren
Erstellen Sie eine Arch Linux-Umgebung auf Raspai
Ich habe ein Einführungsbuch über die Verarbeitung natürlicher Sprache gelesen
Ich möchte Android-Apps auf Android entwickeln (Debug)
Erstellen Sie eine Umgebung für MkDocs unter Amazon Linux (versucht)
Ich habe ein automatisches Installationsskript für Arch Linux geschrieben
Erstellen Sie kompakt eine Oracle-Datenbank (19c) unter Linux auf VirtualBox
Vorbereiten der Verwendung von Ansible auf einem vorhandenen Linux-Server
Ich möchte OpenJDK 11 mit Ubuntu Linux 18.04 LTS / 18.10 verwenden
Ich habe versucht, den Linux-Kernel auf virtualbox + vagrant zu installieren
Prozesse unter Linux dämonisieren
jblas unter Arch Linux
Linux (WSL) unter Windows
NAT-Router unter Linux
Entwickeln Sie .NET unter Linux
Wake on Lan unter Linux
Überwachen Sie den Datenverkehr unter Linux
Ich habe einen Ansible-Installer gemacht
Aktualisieren Sie vscode unter Linux
[Linux] Benutzerpasswort ändern
Erstellen Sie LiveUSB unter Linux
Linux-Betrieb unter Win10
Ich habe ein Anomalieerkennungsmodell erstellt, das unter iOS funktioniert
So erstellen Sie eine ISO-Datei (CD-Image) unter Linux
Veröffentlichen Sie das erstellte Shell-Skript, um die Probleme beim Erstellen von LiveUSB unter Linux zu verringern