Warum SFTP den Zugriff verweigert
SFTP läuft unter dem Konto, mit dem Sie sich angemeldet haben, und bietet keine Entsprechung zu sudo. Die meisten Dateien in /etc gehören root. Ein normales Konto kann daher einige davon lesen, aber keine beschreiben. Dieses Verhalten ist korrekt und sollte nicht durch gelockerte Rechte „behoben“ werden.
Was Sie vermeiden sollten
Führen Sie für eine Konfigurationsdatei kein chmod 777 aus, übertragen Sie Dateien in /etc nicht in den Besitz Ihres Kontos und erlauben Sie nicht nur für eine einzelne Bearbeitung die root-Anmeldung per Passwort. Manche Dienste lehnen Dateien mit zu weit gefassten Rechten ab. Jede solche Änderung macht den Server noch lange nach der Bearbeitung unsicherer.
Im Terminal sudoedit verwenden
sudoedit kopiert die Datei an einen temporären Speicherort, öffnet sie unter Ihrem eigenen Konto in Ihrem Editor und schreibt sie erst nach dem Speichern zurück. Der Editor selbst läuft nicht als root.
sudoedit /etc/nginx/nginx.confEine Kopie hochladen und anschließend installieren
Wenn Sie einen lokalen Editor bevorzugen, laden Sie die Datei in Ihr Home-Verzeichnis hoch und installieren Sie sie mit sudo. Sichern Sie vorher das Original an einem Ort, der von keiner Konfigurationseinbindung eingelesen wird. Der Befehl install setzt Eigentümer und Berechtigungsmodus; auf Systemen mit SELinux setzt restorecon den richtigen Kontext. Prüfen Sie Eigentümer und Modus des Originals, bevor Sie diese Werte übernehmen, denn nicht jede Datei verwendet root und 644.
stat -c '%U %G %a' /etc/nginx/nginx.conf
sudo cp -a /etc/nginx/nginx.conf /root/nginx.conf.bak
sudo install -o root -g root -m 644 ~/nginx.conf.new /etc/nginx/nginx.conf
sudo restorecon -v /etc/nginx/nginx.confVor dem Anwenden prüfen
Eine syntaktisch fehlerhafte Datei kann einen Dienst beim nächsten Neustart zum Stillstand bringen. Führen Sie vor dem Neuladen die Prüfung des jeweiligen Dienstes aus. Wenn Sie SSH-Einstellungen ändern, lassen Sie Ihre aktuelle Sitzung geöffnet und testen Sie eine neue Anmeldung in einem zweiten Fenster.
sudo nginx -t
sudo sshd -t
sudo visudo -cf /etc/sudoers.d/exampleBearbeiten mit sudo in CH-J Server Manager
File Manager bietet an, eine Datei mit sudo zu öffnen, wenn das SSH-Konto sie nicht lesen kann, und weist darauf hin, dass zum Speichern sudo benötigt wird. Beim Speichern gelangen die Daten in das private temporäre Verzeichnis des Kontos. Nach einer Überprüfung verschiebt sudo sie an ihren Zielort und erhält dabei Eigentümer, Rechte, ACL und SELinux-Kontext. Eine optionale Sicherung speichert vor dem Ersetzen eine Kopie des Originals. Das Passwort wird ausschließlich an sudo auf dem Server übergeben und weder auf der Festplatte noch in Protokollen gespeichert. Verlangt die sudo-Richtlinie ein Terminal (requiretty), umgeht die Anwendung diese Vorgabe nicht. Die Anwendung prüft den Dateiinhalt nicht; führen Sie die Dienstprüfung daher selbst aus.