Separar usuarios del sistema y usuarios del servicio

8

Todos sabemos que tenemos usuarios del sistema y usuarios del servicio. Estoy buscando una manera de separarlos como usuarios del sistema y lista de usuarios del servicio.

Hay alguna manera ?

rɑːdʒɑ
fuente

Respuestas:

7

Según gid, los usuarios del sistema y los usuarios del servicio se pueden separar de la siguiente manera,

/etc/passwdcontiene una lista para todos los usuarios junto con alguna otra información. Los usuarios del servicio o los usuarios reales tienen un valor gidmayor o igual a 1000. Por lo tanto, se puede obtener una lista de usuarios reales como,

awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

También gidse puede extraer una lista de usuarios del sistema ( <1000) como,

awk -F: '($3<1000){print $1}' /etc/passwd

Cómo funciona

Los contenidos de /etc/passwdson como,

    root:x:0:0:root:/root:/bin/bash
    ...
    souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash

Cuando se usa awkcon -F:él, divide el contenido de una línea en varios campos que se tratan :como separadores de campo. El primer campo contiene el nombre de usuario y el tercer campo tiene el gid.

Por lo tanto, para extraer usuarios reales, awksimplemente verifique que el valor del tercer campo sea mayor que igual a 1000 y que no sea usuario de nadie e imprima el primer campo, es decir, el nombre de usuario.

Para enumerar todos los usuarios del sistema, solo verifica que gidsea ​​inferior a 1000 e imprima el nombre de usuario.

Editar

Como desea enumerar root(gid = 0) en la lista de usuarios reales. Consigue usuarios reales como,

awk -F: '($3==0)||($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Obtenga usuarios del sistema como,

awk -F: '($3<1000)&&($1!="root"){print $1}' /etc/passwd

Tenga en cuenta que siempre estoy ignorando al nobodyusuario.

souravc
fuente
¿Cómo puede cuidar al usuario root?
rɑːdʒɑ
no entendiste tu punto? obtendrá root como usuario del sistema. ¿Desea incluir root en la lista de usuarios reales?
souravc
sí porque él también es usuario.
rɑːdʒɑ
@rajagenupula ¿está bien ahora?
souravc
Me gustaría tener un usuario root en la lista de usuarios reales @S
rɑːdʒɑ
2

Para enumerar locales (usuarios del sistema) que pueden iniciar sesión y tener homedir y GID menos de 1000

 cat /etc/passwd | cut -d: -f 1,3,6 | grep "[1-9][0-9][0-9][0-9]" | grep "/home" | cut -d: -f1

Para enumerar todos los demás usuarios: (principalmente usuarios del sistema y tienen GID inferior a 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
kamil
fuente
1
ID de grupo de usuario root y el usuario de ID es menor de 1000 que right.thank de respuesta
rɑːdʒɑ
@rajagenupula sí, seguro. solo root es la excepción. y en ubuntu generalmente, root no puede iniciar sesión por defecto.
kamil