
Kann Linux eine bedingte Beurteilung vornehmen, um den Inhalt an einer bestimmten Zeile in Linux einzufügen?
Beispielsweise möchte ich den Benutzer „test“ zu /etc/sudoers hinzufügen, damit er zum Root wechseln kann:
1 #
2 # This file MUST be edited with the 'visudo' command as root.
3 #
4 # Please consider adding local content in /etc/sudoers.d/ instead of
5 # directly modifying this file.
6 #
7 # See the man page for details on how to write a sudoers file.
8 #
9 Defaults env_reset
10 Defaults mail_badpass
11 Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
12
13 # Host alias specification
14
15 # User alias specification
16
17 # Cmnd alias specification
18
19 # User privilege specification
20 root ALL=(ALL:ALL) ALL
21
22 # Members of the admin group may gain root privileges
23 %admin ALL=(ALL) ALL
24
25 # Allow members of group sudo to execute any command
26 %sudo ALL=(ALL:ALL) ALL
27
28 # See sudoers(5) for more information on "#include" directives:
29
30 #includedir /etc/sudoers.d
Ich möchte, dass mein Befehl Zeile 20 findet (wenn root ALL=(ALL:ALL) ALL) und dann den folgenden Inhalt in Zeile 21 hinzufügt
test ALL=(ALL:ALL) ALL
Kann der Linux-Befehl das oder kann ich das nur mit Code wie Perl oder Python machen?
Ich bin ein völliger Neuling bei Linux und bin für jede Hilfe dankbar!
Antwort1
Es spielt keine Rolle, wo Sie die Zeile hinzufügen. Für sudo ist die Reihenfolge egal.
Hängen Sie es einfach ans Ende an:
echo 'test ALL=(ALL:ALL) ALL' | sudo tee -a /etc/sudoers
Oder noch besser: Verwenden Sie dafür das Include-Verzeichnis:
echo 'test ALL=(ALL:ALL) ALL' | sudo tee /etc/sudoers.d/test
Auf diese Weise müssen Sie die Sudoers-Datei nicht manuell aktualisieren, wenn sie sich während Paketaktualisierungen ändert.