web-dev-qa-db-fra.com

Comment lister tous les utilisateurs avec root?

Sur une boîte Linux, comment lister tous les utilisateurs qui ont des privilèges root (et encore mieux, tous les utilisateurs en général avec s'ils ont root ou non)?

37
Eric

N'oubliez pas de changer le mot de passe root. Si un utilisateur a UID 0 en plus de root, il ne devrait pas. Mauvaise idée. Vérifier:

grep 'x:0:' /etc/passwd

Encore une fois, vous ne devriez pas faire cela, mais pour vérifier si l'utilisateur est membre du groupe racine:

grep root /etc/group

Pour voir si quelqu'un peut exécuter des commandes en tant que root, vérifiez sudoers:

cat /etc/sudoers

Pour vérifier le bit SUID, qui permet aux programmes d'être exécutés avec les privilèges root:

find / -perm -04000

44
Warner

Pour voir qui est l'UID 0:

getent passwd 0

Pour voir qui est dans les groupes root, wheeladm et admin:

getent group root wheel adm admin

Pour répertorier tous les utilisateurs et les groupes dont ils sont membres:

getent passwd | cut -d : -f 1 | xargs groups

La racine pure est l'ID utilisateur "0".

Tous les utilisateurs du système se trouvent dans le fichier/etc/passwd:

less /etc/passwd

Ceux qui sont root ont "0" comme ID utilisateur, qui est la 3ème colonne. Ceux avec "0" comme groupe (4ème colonne) peuvent également avoir des privilèges root.

Ensuite, vous voudrez regarder les groupes et voir qui est un membre supplémentaire des groupes "root" ou "wheel" ou "admin":

less /etc/group

Les utilisateurs répertoriés dans ces groupes peuvent avoir des privilèges root, notamment via la commande "Sudo".

La dernière chose que vous voudrez vérifier est la configuration "Sudo" et voir qui est répertorié comme ayant l'autorisation d'exécuter cette commande. Ce fichier lui-même est bien documenté donc je ne le reproduirai pas ici:

less /etc/sudoers

Cela couvre les principaux domaines qui pourraient avoir un accès root.

6
Rafiq Maniar

Pour imprimer tous les utilisateurs

Perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd

Pour imprimer uniquement les utilisateurs avec UID 0, comme d'autres l'ont dit, les utilisateurs avec des privilèges root implicites:

Perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
3
MadHatter

Pour une liste rapide de tous les utilisateurs, essayez d'appuyer deux fois sur l'onglet (pour compléter automatiquement) après avoir tapé la commande passwd suivie d'un espace. Cela fonctionne également avec la commande su.

Doit être effectué en tant qu'utilisateur root.

2
Emeraldo

Cela m'ennuyait qu'il n'y ait pas eu de réponse unilatérale ... Si vous voulez répertorier tous les comptes UID 0 (root), utilisez ce qui suit:

cat /etc/passwd | cut -f1,3,4 -d":" | grep"0:0" | cut -f1 -d":" | awk '{print $1}'

Meilleur,

0
Boschko