GNU/Linux >> Tutoriels Linux >  >> Linux

Ajouter des utilisateurs aux sudoers via un script shell

Non, un écho direct ne fonctionnera pas, vous devez l'exécuter dans un sous-shell. Essayez ceci à la place :

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


Vous pourriez simplement echo (avec des privilèges élevés, bien sûr) directement au /etc/sudoers fichier :

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

(notez le caractère de tabulation entre le nom d'utilisateur et le premier ALL )

Ou, pour un script :

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

Puis enregistrez en somefile.sh , chmod a+rx et exécutez sudo ./somefile.sh depuis une fenêtre de terminal.

Pour ajouter plusieurs utilisateurs, remplacez le script par ceci ;

#!/bin/bash

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

Ensuite, exécutez le script comme ceci (en supposant que vous l'avez enregistré sous addsudousers.sh ):

sudo ./addsudousers.sh bob joe jeff

c'est-à-dire séparés par des espaces.

Pour lire les noms d'un fichier :

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

listofusers.txt doivent également être séparés par des espaces.

Modifier : Jappie Kirk souligne à juste titre que vous ne pouvez pas appeler directement le sudo echo ... >> /etc/sudoers car le >> la redirection est gérée par le shell, qui a alors abandonné les privilèges du superutilisateur. Cependant, si vous exécutez un script qui contient echo ... >> /etc/sudoers et que le script lui-même a des privilèges de superutilisateur, tout devrait bien fonctionner.


Linux
  1. Linux - Sudo ne peut pas ouvrir /etc/sudoers ?

  2. Comment écrire un script shell à source automatique dans /etc/profile ?

  3. Ajouter une ligne au fichier /etc/hosts avec le script shell

  4. Contourner la commande/le script spécifié dans /etc/passwd

  5. /etc/sudoers - Insultes - Comment ajouter une liste d'insultes ?

Ajouter un sudoer de manière non interactive à partir de la ligne de commande

Désactiver les commentaires lors de la saisie du mot de passe à une invite sudo

Comment inclure tous les fichiers d'un répertoire dans un script shell (/etc/init.d/iptables dans ce cas)

Comment ajouter des utilisateurs à Linux via un script shell

Cassé mon fichier /etc/sudoers sur amazon EC2

Comment générer des fichiers sudoers personnalisés dans la marionnette en fonction de l'environnement dans lequel ils sont déployés ?