Heim > Artikel > Backend-Entwicklung > So ändern Sie das Root-Berechtigungsverzeichnis des Linux-Servers in PHP in www:www
Wenn der Kundendienst Dateien über FTP hochlädt, verfügen alle Dateien standardmäßig über ROOT-Benutzerberechtigungen, was zu PHP-Dateien führt, die nicht gelesen, geschrieben und erstellt werden können.
Sie können jede Datei nur über chown www:www festlegen.
Gibt es eine Möglichkeit, es über PHP zu bedienen?
Wenn der Kundendienst Dateien über FTP hochlädt, verfügen alle Dateien standardmäßig über ROOT-Benutzerberechtigungen, was zu PHP-Dateien führt, die nicht gelesen, geschrieben und erstellt werden können.
Sie können jede Datei nur über chown www:www festlegen.
Gibt es eine Möglichkeit, es über PHP zu bedienen?
Sie sagten: Für ihren Server verwenden sie gerne dieses SFTP, um Dateien direkt zu übertragen, was dazu führt, dass das Programm keine Verzeichnisse erstellen, Dateien neu schreiben usw. kann. Dies ist unvermeidlich. Sie können usermod -aG www [Benutzername] verwenden, um den Benutzer, den er sich bei SFTP anmeldet, zur WWW-Gruppe hinzuzufügen, und den WWW-Benutzer zur Gruppe des Benutzers hinzufügen, an den Sie Dateien übertragen www und Die Benutzer, die Dateien hochladen, gehören zur selben Gruppe, daher müssen den Dateien 664-Berechtigungen erteilt werden. (Dies ist die Methode, die ich verwendet habe. Ich verwende Syncthing und den Atom-Editor (der zur Benutzergruppe gehört) lokal, um Dateien mit dem Webserver (Nginx-Gruppe) zu synchronisieren. Ich habe den Webserver jedoch an Benutzer weitergeleitet.)
chown -R www:www /path/
Im Allgemeinen erhalten die Ordnerberechtigungen 755 und die Dateiberechtigungen 644. Dies kann mit dem folgenden Befehl erfolgen (der spezifische Ordner kann von Ihnen selbst geändert werden): chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;
Ich habe es in bashrc geschrieben, ich kann es beim nächsten Mal nicht erneut eingeben: alias webroot='chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'
<code>-----</code>Ein anderer Server verwendet SFTP, um Dateien zu übertragen. Bevor ich die Datei übertrage, ändere ich alle Dateiberechtigungen, die den Benutzern gehören bashrc. und es dann nach der Übertragung zurückzuholen, ist es besser, das oben Genannte zu tun. Schließlich müssen Sie stfp verwenden, und es ist nicht sicher, einfach den Root zur Verwendung herauszugeben)
Wenn es Ihnen passt, wählen Sie einfach den Ordner -R 777
Können Sie die Berechtigungen für den FTP-Benutzer nicht festlegen?
Verwenden Sie nicht root, um sich anzumelden, sondern laden Sie es einfach von Win herunter. Im Allgemeinen können Sie es mit FTP-Tools wie xftp ändern eingehende Dateien
Sie können diese Funktion boolchown() verwenden, es ist jedoch nicht sicher, sie direkt auf dem Server zu ändern. Dazu sind auch Root-Berechtigungen erforderlich. Es ist am besten, wenn das FTP-Konto mit dem Benutzer übereinstimmt des PHP-Prozesses
Bei der Verwendung des Befehls chown in der Shell ist dieses Problem bereits beim Konfigurieren der Lampe aufgetreten.