Je veux une commande pour lister tous les utilisateurs qui ont des privilèges root, par exemple sudo?
Supposons que je suis un utilisateur sudoer. Comment pourrais-je connaître tous les autres utilisateurs sudoer?
command-line
sudo
Maythux
la source
la source
sudo
permission et qui n'a pas .... si un utilisateur est dans lesudo
groupe mais que lesudoers
fichier n'a rien mentionné poursudo
groupe, ensuite?Réponses:
Si vous avez juste besoin de lister les sudoers listés dans le
sudo
groupe, je pense que la meilleure façon de le faire serait d'exécuter cette commande (qui devrait être plus légère en calcul que toutes les autres commandes de cette réponse):De plus, comme suggéré dans les commentaires de muru, le format des entrées
/etc/group
peut être facilement géré parcut
:Aussi, comme suggéré dans les commentaires de muru, on peut utiliser
getent
à la place degrep
:Chacune de ces commandes imprimera tous les utilisateurs répertoriés dans le
sudo
groupe/etc/group
(le cas échéant).Répartition de la commande n ° 1:
grep
: Imprime toutes les lignes correspondant à une expression régulière dans un fichier-P
: faitgrep
correspondre les expressions rationnelles de style Perlo
: permet d’grep
imprimer uniquement la chaîne correspondante'^sudo.+:\K.*$'
: faitgrep
correspondre les expressions rationnelles entre les guillemetsRépartition regex # 1:
^
: début de ligne.+
: un ou plusieurs personnages\K
: écarte le match précédent.*
: zéro ou plusieurs caractères$
: fin de ligneRépartition de la commande n ° 2:
grep
: Imprime toutes les lignes correspondant à une expression régulière dans un fichier'^sudo.+:\K.*$'
: faitgrep
correspondre les expressions rationnelles entre les guillemetscut
: N'imprime qu'une section spécifiée de chaque ligne d'un fichier-d:
: faitcut
interpréter:
comme un délimiteur de champ-f4
: faitcut
imprimer seulement le quatrième champRépartition regex # 2:
^
: début de ligne.*
: zéro ou plusieurs caractères$
: fin de lignela source
getent group sudo | cut -d: -f4
, ou utilisez awk, mais dans tous les cas, rappelez-vous que group et passwd ont des formats fixes, avec des délimiteurs.getent group
- vous n'avez pas du tout besoin de grep.getent group foo
est commegrep foo /etc/group
, mais plus capable.getent
du tout, aucune pensée sur commentgrep
etgetent
comparer de calcul? Serait-il plus léger de courirgetent
?sudo
groupe. Certains Unix ont d'autres groupes tels quewheel
. La réponse de @muru inclura tous les sudoers, peu importe le groupe dans lequel ils se trouvent.Comme indiqué ici, je considère la manière la plus simple de découvrir les options
-l
&-U
ensemble, il suffit de taper lausers
liste, par exemple:John
then:Si l'utilisateur a un
sudo
accès, il imprimera le niveau d'sudo
accès pour cet utilisateur particulier:Si l'utilisateur n'a pas d'accès sudo, il sera indiqué qu'un utilisateur n'est pas autorisé à s'exécuter
sudo
sur localhost:la source
for u in $(awk -F'[/:]' '{if($3>=1000&&$3!=65534) print $1}' /etc/passwd); do sudo -lU "$u" ; done
. rapide bidouille rien garanti :)"%domain [email protected]" ALL=(ALL) ALL
cela fonctionne. Vous m'avez fait gagner beaucoup de temps, car je ne savais pas que cela fonctionnait également pour les utilisateurs non locaux.Comme cela a déjà été dit, la réponse peut être trouvée sur Unix & Linux Stack Exchange :
La seule différence est que le groupe dans Ubuntu ne l'est pas
wheel
, maissudo
(ouadmin
dans les anciennes versions d'Ubuntu). Alors la commande devient:la source
geten group
et je vois beaucoup de chiffres différents. Ma question initiale était de savoir comment savoir si un utilisateur est un utilisateur du système (créé avecuseradd -r
)En développant le
sudo -l -U
test, on peut utilisergetent passwd
pour déterminer les utilisateurs qui peuvent utilisersudo
. L'utilisationgetent
nous permet d'accéder aux utilisateurs qui peuvent ne pas être présents dans lepasswd
fichier, tels que les utilisateurs LDAP:sudo -U
ne renvoie pas une valeur de sortie non nulle dont nous pourrions tirer parti, nous sommes donc réduits à greper la sortie.la source
sudo
.Sur la plupart des systèmes de type Unix, qui ont la commande sudo et un fichier de configuration sudo; lancer visudo en tant que root:
ou
permettra à un administrateur d'inspecter et de modifier les privilèges des groupes pouvant utiliser la commande sudo.
Sur les systèmes de type Unix basés sur Debian, comme Ubuntu, les groupes 4 et 27 ont généralement des droits d’accès aux privilèges sudo.
Le groupe 4 est le groupe d'administrateurs (adm) et le groupe 27 est le sudo gid.
Pour voir quels utilisateurs sont actuellement affectés à ces groupes, tapez le fichier / etc / group comme indiqué ci-dessous:
Un exemple de sortie, sur Ubuntu (mais pas sur Redhat, sur Oracle Solaris / Solaris ou sur des systèmes BSD) donnerait ceci:
Comme nous pouvons le constater, votre utilisateur est l'administrateur du système et membre du groupe 4 (adm). Mais youruser et mybrother sont tous deux membres du groupe 27, qui correspond au numéro de groupe (gid) du groupe sudo. Donc, mon frère peut également atteindre les privilèges root (super utilisateur).
De nombreux systèmes Linux comme Fedora et Slackware intègrent le groupe de roues gid = 10. Qui autorise les privilèges d'administrateur lorsque la commande sudo est appliquée. Sur les systèmes basés sur BSD (par exemple FreeBSD), l'utilisateur root est membre du groupe de roues qui est gid 0.
De plus, en utilisant la commande id, tout utilisateur peut trouver les informations de groupe d'un autre utilisateur connu du système.
Par exemple:
Échantillon de sortie
la source
Cette commande retourne une liste d'utilisateurs avec des droits sudo:
La sortie est (par exemple):
Si seul le nom d'utilisateur à afficher, alors cette commande:
la source
Commander:
Sortie:
Tom, Stacy sont les utilisateurs avec les privilèges sudo.
la source
cat
.J'étais perplexe sur la façon dont l'
vagrant
utilisateur peut utilisersudo
même sans être mentionné/etc/sudoers
dans/etc/group
ni trouvé avecgetent
.Il s'avère que
sudo
lit également les entrées de tous les fichiers sous/etc/sudoers.d/
. Donc, si vous n'avez pas parcouru ce répertoire, vous ne réaliserez peut-être pas combien d'utilisateurs ont réellementsudo
accès.Ce type d'
sudo
accès peut être détecté par la réponse de JoKeR en utilisant,sudo -l -U vagrant
mais n'est détecté par aucune des autres réponses ici qui reposent toutes sur l'ungetent
ou l' autre/etc/group
.la source