O Linux pode fazer julgamento condicional para inserir o conteúdo em uma determinada linha no Linux?

O Linux pode fazer julgamento condicional para inserir o conteúdo em uma determinada linha no Linux?

O Linux pode fazer julgamento condicional para inserir o conteúdo em uma determinada linha no Linux?

Por exemplo, eu gostaria de adicionar o usuário "test" a /etc/sudoers para permitir que ele mude para root:

  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

Quero que meu comando encontre a linha 20 (se root ALL=(ALL:ALL) ALL) e adicione o conteúdo abaixo na linha 21

test    ALL=(ALL:ALL) ALL

O comando do Linux pode fazer isso ou só posso fazer isso codificando como Perl ou Python?

Sou muito novo no Linux, qualquer ajuda será apreciada!

Responder1

Não importa onde você adiciona a linha, o sudo não se importa com a ordem.

Basta anexá-lo ao final:

echo 'test    ALL=(ALL:ALL) ALL' | sudo tee -a /etc/sudoers

Ou, melhor ainda, use o diretório include para isso:

echo 'test    ALL=(ALL:ALL) ALL' | sudo tee /etc/sudoers.d/test

Dessa forma, você não precisa atualizar manualmente o arquivo sudoers quando ele for alterado durante as atualizações do pacote.

informação relacionada