En una secuencia de comandos, ¿cómo puedo verificar si el usuario "Bill" es miembro del grupo de administración (grupo 80)?
Planeo usar esto en un script para verificar si él está y si no lo está, hacerlo un usuario administrador.
En una secuencia de comandos, ¿cómo puedo verificar si el usuario "Bill" es miembro del grupo de administración (grupo 80)?
Planeo usar esto en un script para verificar si él está y si no lo está, hacerlo un usuario administrador.
Otra forma:
if groups username | grep -q -w admin;
then
echo "Is admin";
else
echo "Not admin";
fi
groups username
mostrará todos los grupos de nombre de usuario. grep -q -w admin
buscará (sin salida -q
) la palabra admin en la lista de grupos de nombre de usuario. Como sugiere David Koontz , groups
ha sido obsoleto por la utilidad id
. Por lo tanto, la oración if
debería ser similar a la siguiente para hacer lo mismo:
if id -Gn username | grep -q -w admin;
Ver la página del manual para la identificación.
id -G user
generará una lista de grupos delimitada por espacios para un usuario en particular. Tendrías que detectar 80 en la lista de salida.
Aquí hay una secuencia de comandos simple para verificar si el usuario está en el grupo de administración y, si no, lo agrega:
#!/bin/bash
echo "This script will add a non-admin user to the admin group"
echo "Please enter username"
read username
if groups $username | grep -q -w admin;
then
echo "User '$username' already is in the admin group";
else
dscl . -append /Groups/admin GroupMembership $username;
echo "User '$username' has been added to the admin group!";
echo "Please restart your Mac to apply the changes.";
fi
Guarde el script en algún lugar y hágalo ejecutable abriendo Terminal e ingresando:
chmod 755 /path/to/script
Ejecuta el script con sudo /path/to/script
.
Dado que el administrador Mac predeterminado de un sistema operativo del servidor es miembro de varios grupos de administración (por ejemplo, _lpadmin, access_bpf, _appserveradm, etc.), también puede agregarlos en el script.
Ejemplo:
agregue la siguiente línea a la secuencia de comandos para agregar el usuario al grupo de 'Administradores del servidor de aplicaciones'
dscl . -append /Groups/_appserveradm GroupMembership $username;
Para mejorar la secuencia de comandos, también puede agregar una condición para verificar si el usuario ingresado existe.
Lea otras preguntas en las etiquetas macos user-account