Nous savons tous que nous avons des utilisateurs du système et des utilisateurs de services. Je cherche un moyen de les séparer en tant qu'utilisateurs système et liste d'utilisateurs de service.
Y a-t-il un moyen?
la source
Nous savons tous que nous avons des utilisateurs du système et des utilisateurs de services. Je cherche un moyen de les séparer en tant qu'utilisateurs système et liste d'utilisateurs de service.
Y a-t-il un moyen?
En fonction de gid
, les utilisateurs du système et les utilisateurs des services peuvent être séparés comme suit,
/etc/passwd
contient une liste pour tous les utilisateurs ainsi que d'autres informations. Les utilisateurs de service ou les utilisateurs réels ont un nombre gid
supérieur ou égal à 1000. Ainsi, une liste d'utilisateurs réels peut être obtenue en tant que,
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Une liste d'utilisateurs du système ( gid
<1000) peut également être extraite en tant que,
awk -F: '($3<1000){print $1}' /etc/passwd
Comment ça fonctionne
Le contenu de /etc/passwd
est comme,
root:x:0:0:root:/root:/bin/bash
...
souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash
Lors de l'utilisation awk
avec -F:
elle, le contenu d'une ligne est divisé en plusieurs champs, traités :
comme séparateurs de champs. Le premier champ contient le nom d'utilisateur et le troisième champ contient le gid
.
Par conséquent, pour extraire des utilisateurs réels, il awk
suffit de vérifier que la valeur du troisième champ est supérieure à 1000 et qu'il ne s'agit pas de personne et imprime le premier champ, c'est-à-dire le nom d'utilisateur.
Pour répertorier tous les utilisateurs du système, il vérifie simplement qu'il gid
est inférieur à 1 000 et imprime le nom d'utilisateur.
Éditer
Comme vous voulez le lister root
(gid = 0) dans la vraie liste d'utilisateurs. Obtenez de vrais utilisateurs en tant que,
awk -F: '($3==0)||($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Obtenez les utilisateurs du système en tant que,
awk -F: '($3<1000)&&($1!="root"){print $1}' /etc/passwd
Remarque J'ignore toujours l' nobody
utilisateur.
Pour répertorier les utilisateurs locaux (utilisateurs du système) qui peuvent se connecter et avoir homedir et GID moins de 1000
Pour répertorier tous les autres utilisateurs: (principalement les utilisateurs du système et ayant un GID inférieur à 1000):
la source