Sur une boîte Linux, comment puis-je lister tous les utilisateurs qui ont des privilèges root (et même mieux, tous les utilisateurs en général avec s'ils ont root ou non)?
Sur une boîte Linux, comment puis-je lister tous les utilisateurs qui ont des privilèges root (et même mieux, tous les utilisateurs en général avec s'ils ont root ou non)?
Réponses:
N'oubliez pas de changer le mot de passe root. Si un utilisateur a l'UID 0 en plus de root, il ne le 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 dans 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
grep '[^:]*:[^:]*:0:' /etc/passwd
. +1 en particulier pour vérifier le SUID.
Pour voir qui est l'UID 0:
getent passwd 0
Pour voir qui est en groupe root
, wheel
adm
et admin
:
getent group root wheel adm admin
Pour lister tous les utilisateurs et les groupes dont ils sont membres:
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
plutôt, est en fait correcte. N'oubliez pas de vérifier / etc / sudoers.
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 identifiant d'utilisateur, qui est la 3ème colonne. Ceux avec "0" comme groupe (4ème colonne) peuvent aussi 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 disposer de certains 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 de lancer cette commande. Ce fichier lui-même est bien documenté, je ne le reproduirai donc pas ici:
less /etc/sudoers
Cela couvre les principaux domaines de qui pourrait avoir un accès root.
consolehelper
et PackageKit
.)
getent passwd
doit lister tous les utilisateurs du système (y compris root), au format passwd, quelle que soit la base de données où ils sont définis.
Pour imprimer tous les utilisateurs
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
Pour n'imprimer que les utilisateurs avec l'UID 0, comme d'autres l'ont déjà dit, les utilisateurs avec les privilèges root implicites:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
place. Pour votre premier exemple "print all users", essayez plutôt ceci:getent passwd | perl -naF: -e 'print "$F[0]\n"'
Pour une liste rapide de tous les utilisateurs, essayez d'appuyer deux fois sur tab (pour compléter automatiquement) après avoir tapé la passwd
commande suivie d'un espace. Cela fonctionne aussi avec la su
commande.
Doit être fait en tant qu'utilisateur root.