¿Comprobar si un usuario de OS X es un administrador?

3

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.

    
pregunta Jerry 04.04.2015 - 06:27

3 respuestas

3

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;
    
respondido por el jherran 04.04.2015 - 08:31
5

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.

    
respondido por el user90735 04.04.2015 - 08:01
1

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.

    
respondido por el klanomath 04.04.2015 - 12:47

Lea otras preguntas en las etiquetas