Gibt es eine Möglichkeit, den Wert von „PermitRootLogin“ /etc/ssh/sshd_config
mit einem Befehl im Terminal zu ändern?
Ich möchte die Werte dieser Datei ändern, ohne sie zu öffnen, und den Wert „PermitRootLogin“ von „Ja“ auf „Nein“ ändern.
Antwort1
Dies ist problemlos mit sed
, match für die Zeile und Änderung des Wertes möglich:
sed -i '/^PermitRootLogin/s/yes/no/' /etc/ssh/sshd_config
^PermitRootLogin
entspricht der Zeile, die beginnt mitPermitRootLogin
s/yes/no
ändert den Wert der Option von "ja" auf "nein"
Antwort2
Ich möchte den Wert „PermitRootLogin“ von „Ja“ auf „Nein“ ändern.
In diesem Fall würde ich Perl verwenden (also etwas, das mit Feldern arbeitet und direkt bearbeitet werden kann; beim ersten schlägt Sed fehl und beim zweiten AWK):
sudo perl -i -lane '/^PermitRootLogin/?print("@F[0] no"):print($_)' /etc/ssh/sshd_config
% grep ^PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin without-password
% sudo perl -i -lane '/^PermitRootLogin/?print("@F[0] no"):print($_)' /etc/ssh/sshd_config
[sudo] password for user:
% grep ^PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no
Antwort3
Sie können sie mit sed ändern, verwenden Sie die Option -i
sed -i -e 's/old/new/g' file
Weitere Einzelheiten finden Sie unter man sed.
Antwort4
Jedes Programm, das in irgendeiner Weise mit Dateien arbeitet, muss open()
sowohl read()
Systemaufrufe ausführen, die mit überprüft werden können strace
. Das Öffnen einer Datei ohne diese Systemaufrufe ist unmöglich
Deine Frage scheint sich darauf zu beziehen, ob eine Datei ohne Texteditor bearbeitet werden kann. Das ist möglich, wie andere gezeigt haben. Mein kleiner Beitrag hierzu ist folgender:
awk '/^PermitRootLogin/{$2="yes"}1' /etc/ssh/sshd_config > /tmp/sshd_config && mv /tmp/sshd_config /etc/ssh/sshd_config
Grundsätzlich finden wir mit AWK die entsprechende Zeile, ersetzen Feld 2, das „nein“ ist, durch „ja“, geben alles in eine temporäre Datei aus und ersetzen das Original durch die temporäre Datei mv
.
Denken Sie daran, dass diese Konfigurationsdatei Eigentum von root ist, Sie benötigen also sudo
Zugriff ( sudo
vorher hinzufügen mv
).