9 votos

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

En un script, ¿cómo puedo comprobar si el usuario "Bill" es miembro del grupo admin (grupo 80)?

Pienso usar esto en un script para comprobar si lo es y si no lo es, hacerlo usuario administrador.

18voto

jherran Puntos 6511

De otra manera:

if groups username | grep -q -w admin; 
then 
    echo "Is admin"; 
else 
    echo "Not admin"; 
fi
  • groups username mostrará todos los grupos de nombres de usuario.
  • grep -q -w admin buscará (sin salida -q ) para la palabra admin en la lista de grupos de nombres de usuario.

Como sugiere David Koontz , groups ha quedado obsoleta por id utilidad. Por lo tanto, la if La frase debería ser como la siguiente para hacer lo mismo:

if id -Gn username | grep -q -w admin;

8voto

user1155120 Puntos 330

Consulte la página de manual de id.

id -G user 

mostrará una lista de grupos delimitada por espacios para un usuario en particular. Tendrías que detectar el 80 en la lista de salida.

1voto

klanomath Puntos 19587

Aquí hay un simple script para comprobar si el usuario está en el grupo de administradores y si no lo añade:

#!/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

Guarda el script en algún sitio y hazlo ejecutable abriendo el Terminal e introduciendo:

chmod 755 /path/to/script

Ejecuta el script con sudo /path/to/script .

Dado que el administrador de Mac por defecto de un sistema operativo de servidor es miembro de varios grupos de administración (por ejemplo, _lpadmin, access_bpf, _appserveradm, etc.), podría añadirlos también en el script.

Ejemplo:

añada la siguiente línea al script para añadir el usuario al grupo 'App Server Admins'

 dscl . -append /Groups/_appserveradm GroupMembership $username;

Para mejorar el script también podrías añadir una condición para comprobar si el usuario introducido existe en absoluto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X