Wie füge ich einen SSH-Benutzer hinzu, der nur die Berechtigung hat, auf einen bestimmten Ordner zuzugreifen?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
Ich habe einen Benutzer namens erstellt musteri
. Ich habe den Home-Ordner und die Gruppe festgelegt. Daher möchte ich musteri
Benutzer in "/var/www/xyz.com.tr/musteri" integrieren. Ich möchte nicht, dass es auf einen anderen Ordner zugreift.
scponly
als Shell umsehen und möglicherweise imchroot
Modus arbeiten, um den Zugriff auf dieses Verzeichnis und nirgendwo sonst zu beschränken.scponly chroot
oderrssh chroot
sollte Sie zu Howtos führen).Antworten:
Es hört sich so an, als ob Sie möchten, dass Ihr Müşteriler Dateiübertragungszugriff auf einen Ordner hat, ohne ihm tatsächlich Muscheln zu geben. Dies ist eine gute Sache, da es, wie Binfalse betonte, schwierig ist , Shells mit eingeschränktem Zugriff zu versehen, da Shells auf alle Arten von Dingen zugreifen müssen, die auf dem System verstreut sind, um ausgeführt zu werden.
Um SFTP-Zugriff auf einen bestimmten Ordner zu gewähren, können Sie so etwas tun.
/etc/ssh/sshd_config
) mit diesen ZeilenDies würde das sftp-Subsystem in SSH aktivieren und die Mitglieder dieser Systemgruppe zwingen, beim Anmelden nur dieses System zu verwenden. Außerdem würden sie in ihre Home-Verzeichnisse gelockt. Sie können dies so ändern, dass es auch ein Unterordner ihrer Home-Verzeichnisse ist,
ChrootDirectory %h/musteri_sftp
sodass sie den Rest ihrer Systemdateien nicht sehen können, sondern sich direkt in einem speziellen Unterordner ihres Home-Ordners anmelden.Kolay Gelsin.
quelle
Meiner Meinung nach ist dies sehr schwierig, wenn nicht unmöglich. Wenn der Benutzer eine Verbindung über SSH herstellt, benötigt er mindestens eine Shell, in Ihrem Fall die
bash
. Zur Ausführung/bin/bash
benötigt er Zugriffsrechte/bin
.bash
selbst muss einiges auslesen/etc
(zB/etc/bash.bashrc
), damit der Benutzer auch Zugriff darauf hat/etc
. Angenommen, der Benutzer möchte sich nicht nur in diesem Verzeichnis aufhalten, sondern auch eine Datei lesen, sondern beispielsweise ausführen, auf dievim
er auch zugreifen muss/usr/bin
.Dies ist nur eine kleine Demonstration, es gibt einige weitere Abhängigkeiten, zB ich weiß nicht wirklich, was passieren wird, wenn der Benutzer keinen Zugriff auf ... hat
/tmp
.Sie sollten über Ihre Absicht nachdenken. Möchten Sie nur, dass jemand Lese- / Schreibzugriff auf einen Teil Ihres Webdienstes hat? Dann könnten Sie so etwas wie FTP einrichten, um ein bestimmtes Verzeichnis für diesen Benutzer zu exportieren. Er kann diese Dateien also ohne SSH-Zugriff lesen / schreiben.
Eine andere schöne Lösung wäre ein Repository. Richten Sie beispielsweise ein GIT-Repo ein und lassen Sie den Benutzer es klonen. Er kann seine Änderungen vor Ort vornehmen und Ihnen einen Patch senden. Sie können entscheiden, ob Sie diesen Patch anwenden möchten oder nicht. Ein Rollback für fehlerhafte Patches ist ebenfalls sehr einfach.
quelle
rbash
ist genau dafür ausgelegt.