GNU/Linux >> Linux Esercitazione >  >> Linux

Aggiunta di utenti ai sudoer tramite script di shell

No, un echo diretto non funzionerà, devi eseguirlo in una subshell. Prova invece questo:

sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"


Potresti semplicemente echo (con privilegi elevati, ovviamente) direttamente al /etc/sudoers file:

sudo -i
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers
#             ^^
#             tab

(notare il carattere di tabulazione tra il nome utente e il primo ALL )

Oppure, per uno script:

#!/bin/bash
# Run me with superuser privileges
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers

Quindi salva in somefile.sh , chmod a+rx ed esegui sudo ./somefile.sh da una finestra di terminale.

Per aggiungere più utenti, cambia lo script in questo;

#!/bin/bash

while [[ -n $1 ]]; do
    echo "$1    ALL=(ALL:ALL) ALL" >> /etc/sudoers;
    shift # shift all parameters;
done

Quindi, esegui lo script in questo modo (supponendo che tu l'abbia salvato come addsudousers.sh ):

sudo ./addsudousers.sh bob joe jeff

ovvero separati da spazi.

Per leggere i nomi da un file:

[email protected] ~ $ sudo ./addsudousers.sh `cat listofusers.txt`

listofusers.txt dovrebbero anche essere separati da spazi.

Modifica: Jappie Kirk sottolinea giustamente che non puoi chiamare direttamente sudo echo ... >> /etc/sudoers perché il >> il reindirizzamento è gestito dalla shell, che a quel punto ha abbandonato i privilegi di superutente. Tuttavia, se esegui uno script che contiene echo ... >> /etc/sudoers e lo script stesso ha i privilegi di superutente, tutto dovrebbe funzionare correttamente.


Linux
  1. Risolto il problema con il file sudoers rotto – sudo:errore di analisi in /etc/sudoers vicino alla riga 21 [Ubuntu]

  2. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  3. Come disabilitare "sudo su" per gli utenti nel file di configurazione sudoers

  4. “sudo:/etc/sudoers is world scrivibile” – Come correggere i permessi del file sudoers

  5. Aggiungi una riga al file /etc/hosts con lo script della shell

Invio di una mail da uno script della shell Linux

Schema Regex per modificare il file /etc/sudoers

Disabilita il feedback durante la digitazione della password al prompt sudo

Bypassare il comando/script specificato in /etc/passwd

/etc/sudoers - Insulti - Come aggiungere un elenco di insulti?

Come aggiungere utenti a Linux tramite uno script di shell