Kann Linux eine bedingte Beurteilung vornehmen, um den Inhalt in einer bestimmten Zeile in Linux einzufügen?

Kann Linux eine bedingte Beurteilung vornehmen, um den Inhalt in einer bestimmten Zeile in Linux einzufügen?

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.

verwandte Informationen