J'ai d'abord énuméré les groupes en utilisant:
groups
J'ai ajouté un groupe en utilisant
groupadd -g 300 oinstall
groupadd –g 500 dba
puis quand je fais
groups
root bin daemon sys adm disk wheel sfcb
Je ne trouve pas les groupes que j'ai ajoutés. Comment lister les groupes avec un identifiant de groupe? De plus, si j'essaye de l'ajouter à nouveau, cela indique que les groupes sont déjà présents.
La commande groups
répertorie les groupes dont l'utilisateur est actuellement membre, pas tous les groupes disponibles sur le système. Vous pouvez rechercher un groupe par nom ou gid à l'aide de la commande getent
.
getent group oinstall
getent group 500
Pour afficher tous les groupes, laissez simplement votre requête de recherche hors de la commande:
getent group
Vous pouvez lister les groupes en utilisant getent
ou, s'il n'est pas présent, regardez dans /etc/group
Lors de l'exécution de la commande, le GID est la troisième valeur dans la sortie, par exemple:
$ getent group
man:x:15:
audio:x:63:
nobody:x:99:
users:x:100:
<--snipped-->
utmp:x:22:
Donc, pour ne lister que les noms de groupe et leur GID, utilisez awk
pour imprimer les colonnes que vous voulez comme ceci:
$ getent group | awk -F ":" '{ print $1,$3 }'
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22
Voir aussi http://man7.org/linux/man-pages/man1/getent.1.html
Dans le cas où getent
n'est pas présent.
$ grep $group /etc/group
Le GID est la 3ème valeur dans la sortie. Par exemple
$ grep users /etc/group
users:x:100:
Dans ce qui précède, le GID pour les utilisateurs du groupe est 100. Pour obtenir uniquement le nom du groupe et le GID, vous pouvez utiliser awk et grep comme ceci:
$ cat /etc/group | awk -F ":" '{ print $1,$3 }'
man 15
audio 63
nobody 99
users 100
<--snipped-->
utmp 22
N'oubliez pas que pour les systèmes configurés pour utiliser l'authentification externe (comme LDAP), tous les groupes ne seront pas présents dans le fichier/etc/group. Voir aussi http://www.cyberciti.biz/faq/understanding-etcgroup-file/