Linux-Berechtigungen / chown vs ftp

787
Tim

Ich habe grundlegende Probleme mit Linux-Berechtigungen / Besitz.

Ich habe einen FTP-Benutzer "ftp". Dann habe ich alle Dateien auf meinem Server unter anderem Benutzer "nginx".

Damit die Websites funktionieren, müssen alle Dateien auf user nginx gesetzt sein, andernfalls werden verschiedene Fehler zurückgegeben.

Um Dateien auf dem Server auf FTP zu ändern, muss ich die Berechtigungen auf Benutzer "ftp" gesetzt haben. Andernfalls werden mir Berechtigungen verweigert, wenn ich versuche, die Dateien zu bearbeiten.

Wie löse ich das mit?

Im Moment muss ich immer tun, chown -R ftp:ftpwenn ich einige Dateien über FTP bearbeiten möchte.

1
[einige] (http://superuser.com/q/171199/482177) verwandte [Fragen] (http://askubuntu.com/q/9402/494041) cascer1 vor 8 Jahren 0
Finden Sie heraus, wer der tatsächliche Eigentümer sein sollte und wer Zugriffsrechte haben sollte. Stellen Sie den Eigentümer / die Gruppe entsprechend ein, indem Sie z. B. Sticky Bits verwenden und einen dieser Parameter festlegen. Vergessen Sie nicht die andere / Welt, auch wenn Sie diesen Zugriff wahrscheinlich nicht gewähren wollen, es ist immer noch eine Option. Seth vor 8 Jahren 2

1 Antwort auf die Frage

4
virtex

Es klingt, als ob Sie eine gemeinsame Gruppe für FTP und Nginx benötigen. In Ihrem Fall können Sie dazu wahrscheinlich die ftp-Gruppe verwenden. Ich weiß nicht, ob Ihr Webserver Schreibzugriff auf die Dateien benötigt, aber wenn nicht, cd in Ihr Inhaltsverzeichnis und führen Sie die folgenden Befehle aus:

chown -Rh ftp:ftp . find . -type d -exec chmod g+rxs {} \; find . -type f -exec chmod g+r {} \; 

Wenn Sie Schreibzugriff vom Webserver benötigen, gehen Sie wie folgt vor:

chown -Rh ftp:ftp . find . -type d -exec chmod g+rwxs {} \; find . -type f -exec chmod g+rw {} \; 

Diese Befehle machen alles, was ftp: ftp gehört, und macht diese Dateien für jeden in der ftp-Gruppe lesbar und (im zweiten Fall) beschreibbar. Es setzt auch das Setgid-Bit für alle Verzeichnisse, wodurch alle neuen Dateien der ftp-Gruppe zugeordnet werden. Sobald dies erledigt ist, fügen Sie den nginx-Benutzer zur ftp-Gruppe hinzu:

usermod -a -G ftp nginx 

und starten Sie Ihren Webserver neu, damit er wirksam wird.

Möglicherweise müssen Sie auch alle Dateien, die in diese Verzeichnisse geschrieben werden, von der Gruppe beschreibbar machen. Sie können dies tun, indem Sie die umask für Ihre FTP- und Webserver auf 002 oder mit einem acl setzen:

setfacl -Rdm g::rwx .