encontrar el número de grupos asignados a un usuario

encontrar el número de grupos asignados a un usuario

¿Hay alguna manera de encontrar la cantidad de grupos asignados a un usuario en Linux?

 as of right now i have:
 foo : foo bar apple users

Es posible que una aplicación que uso le haya dado a un usuario un grupo de "usuarios de Apple", pero no sé cuándo la ejecuté.

 groups foo | awk {print $6}

recibí

 users

No sé cómo saber cuántos usuarios tengo.

Respuesta1

Como groupsdevuelve una lista de grupos en los que se encuentra su cuenta, puede utilizar lo siguiente:

groups | wc -w

Contará wc -wel número de palabras devueltas por groups.

Respuesta2

El comando de grupos no tiene en cuenta los grupos con espacios en su salida. Por lo tanto, un grupo con un espacio en el nombre se genera de la misma manera que dos grupos separados.

Yo lo haría de esta manera:

 grep "apple users" /etc/group

Esto debería devolver algo como

 apple users:x:1010:fred,barney,dino

Respuesta3

Método 1:

foo: foo bar usuarios de Apple (nombre de usuario -> foo)

ejecutar => tapa foo | baño -l

Salida: 4

Método-2:

ejecutar => nombre de usuario del grupo

Salida: nombre de usuario: nombre de usuario grupo1 grupo2

=> nombre de usuario del grupo | baño -w | xargs -I % expr % - 2

Salida: 3 (Número de grupos a los que pertenece un usuario)

foo: usuarios de foo bar apple

ejecutar => grupos foo | baño -w | xargs -I % expr % - 2

Salida: 4

Cuente el número de palabras que devuelve el grupo y reste 2 ya que tenemos exceso de 'nombre de usuario' y ':' en el recuento que obtenemos. ¡Finalmente obtenemos el número total de grupos a los que pertenece un usuario!

información relacionada