131 votes

Comment pourrais-je lister tous les super utilisateurs ?

Je veux une commande pour lister tous les utilisateurs qui ont les privilèges root, c'est-à-dire sudo ?

Supposons que je suis un utilisateur sudoer. Comment pourrais-je connaître tous les autres utilisateurs sudoer ?

123voto

ieplugin Points 216

Si vous avez juste besoin de lister les sudoers listés dans le fichier sudo je pense que la meilleure façon de procéder serait d'exécuter cette commande (qui devrait être plus légère sur le plan informatique que toutes les autres commandes de cette réponse) :

grep -Po '^sudo.+:\K.*$' /etc/group

De plus, comme suggéré dans les commentaires de muru, le format des entrées dans la rubrique /etc/group peuvent être facilement traitées par cut :

grep '^sudo:.*$' /etc/group | cut -d: -f4

De même, comme suggéré dans les commentaires par muru, on peut utiliser getent à la place de grep :

getent group sudo | cut -d: -f4

N'importe laquelle de ces commandes imprimera tous les utilisateurs listés dans le fichier sudo groupe en /etc/group (le cas échéant).

Commandement n°1 en panne :

  • grep : Imprime toutes les lignes correspondant à une expression rationnelle dans un fichier.
  • -P : fait grep correspond aux regex de style Perl
  • o : fait grep n'imprime que la chaîne trouvée
  • '^sudo.+:\K.*$' : fait grep correspond à l'expression entre les guillemets

Ventilation de la Regex #1 :

  • Tout caractère ou groupe de caractères non répertorié correspond au caractère ou au groupe de caractères lui-même.
  • ^ : début de la ligne
  • .+ : un ou plusieurs caractères
  • \K : rejeter la correspondance précédente
  • .* : zéro ou plusieurs caractères
  • $ : fin de la ligne

Commandement n°2 en panne :

  • grep : Imprime toutes les lignes correspondant à une expression rationnelle dans un fichier.
  • '^sudo.+:\K.*$' : fait grep correspond à l'expression entre les guillemets
  • cut : Imprime seulement une section spécifiée de chaque ligne dans un fichier
  • -d: : fait cut interpréter : comme délimiteur de champ
  • -f4 : fait cut n'imprimer que le quatrième champ

Répartition de la Regex #2 :

  • Tout caractère ou groupe de caractères non répertorié correspond au caractère ou au groupe de caractères lui-même.
  • ^ : début de la ligne
  • .* : zéro ou plusieurs caractères
  • $ : fin de la ligne

39voto

JoKeR Points 6641

Comme il l'a déclaré ici Je considère que le moyen le plus simple de découvrir avec -l & -U ensemble, il suffit de taper users il énumérera par exemple : John alors :

Si l'utilisateur a sudo l'accès, il imprimera le niveau de sudo pour cet utilisateur particulier :

  sudo -l -U John
  User John may run the following commands on this host:
     (ALL : ALL) ALL

Si l'utilisateur n'a pas l'accès sudo, il imprimera qu'un utilisateur est pas autorisé à exécuter sudo sur localhost :

   sudo -l -U John
   User John is not allowed to run sudo on localhost.

18voto

muru Points 180007

En développant le sudo -l -U on peut utiliser getent passwd pour déterminer les utilisateurs qui peuvent utiliser sudo . Utilisation de getent nous permet d'accéder à des utilisateurs qui peuvent ne pas être présents dans l'entreprise. passwd comme les utilisateurs LDAP :

getent passwd | cut -f1 -d: | sudo xargs -L1 sudo -l -U | grep -v 'not allowed'

sudo -U ne renvoie pas de valeur de sortie non nulle dont nous pourrions tirer parti, nous en sommes donc réduits à parcourir la sortie.

16voto

Tendayi Mawushe Points 10335

Comme cela a déjà été dit, la réponse peut être trouvée sur Unix & Linux Stack Exchange :

Cela montre que l'utilisateur "saml" est membre du groupe "wheel".

$ getent group wheel
wheel:x:10:saml

La seule différence est que le groupe dans Ubuntu n'est pas wheel mais sudo (ou admin dans les anciennes versions d'Ubuntu). La commande devient donc :

getent group sudo

5voto

XYZ Points 51

Commandement :

cat /etc/group | grep sudo

Sortie :

sudo:x:27:Tom,Stacy

Tom, Stacy sont les utilisateurs avec les privilèges sudo.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X