Para crear un grupo, agregue algunos usuarios y habilite el inicio de sesión remoto para el mismo grupo desde el principio haga lo siguiente:
Localmente:
Crear grupo:
sudo dscl . create /Groups/servsupport
Agregue algunos detalles como nombre real, contraseña, etc.:
sudo dscl . create /Groups/servsupport RealName "Service and Support"
sudo dscl . create /Groups/servsupport passwd "*"
sudo dscl . create /Groups/servsupport gid 799
¡Usa un número de ID de grupo no utilizado como gid! Obtienes una lista ordenada de gids usadas ingresando:
dscl . list /Groups PrimaryGroupID | tr -s ' ' | sort -n -t ' ' -k2,2
También hay una respuesta en algún lugar de apple.stackexchange.com sobre cómo encontrar el primer uid o gid mayor que x y cómo aplicarlo a nuevos grupos o usuarios.
Agregar un usuario administrador (aquí asumo que el nombre de usuario es admin ):
sudo dscl . create /Groups/servsupport GroupMembership admin
Si desea agregar un segundo usuario, use el subcomando append
:
sudo dscl . append /Groups/servsupport GroupMembership admin2
Compruebe si existe el grupo SSH Service ACL :
dscl . list /Groups PrimaryGroupID | grep com.apple.access_ssh*
Si el grupo no existe, créelo de manera similar al grupo de Servicio y soporte:
sudo dscl . create /Groups/com.apple.access_ssh
sudo dscl . create /Groups/com.apple.access_ssh RealName "SSH Service ACL"
sudo dscl . create /Groups/com.apple.access_ssh passwd "*"
sudo dscl . create /Groups/com.apple.access_ssh gid 399
Agregue el grupo servsupport como grupo anidado al grupo de ACL del servicio SSH si el SSH ACL ya está habilitado:
sudo dseditgroup -o edit -a servsupport -t group com.apple.access_ssh
o si SSH ACL es dsiabled:
sudo dseditgroup -o edit -a servsupport -t group com.apple.access_ssh-disabled
Habilitar inicio de sesión remoto:
sudo systemsetup -setremotelogin on
Un script que realiza esencialmente esto, excepto la creación de un nuevo Grupo de Servicio y Soporte, está disponible aquí: add_localadmins_to_ssh . El script vinculado requiere modificaciones leves para cumplir con sus requisitos.
Basándome en el script vinculado, hice uno nuevo que cumple con sus requisitos. Tómelo con un grano de sal y pruébelo a fondo:
#!/bin/bash
# set the input for lazy convenience
IFS=$' '
# We first need to test if the access_ssh group exists and create it if it doesn't
/usr/bin/dscl . list /Groups PrimaryGroupID | grep com.apple.access_ssh* > /dev/null 2>&1
rc=$?
if [[ $rc != 0 ]]; then
/usr/bin/dscl . create /Groups/com.apple.access_ssh
/usr/bin/dscl . create /Groups/com.apple.access_ssh RealName "SSH Service ACL"
/usr/bin/dscl . create /Groups/com.apple.access_ssh passwd "*"
/usr/bin/dscl . create /Groups/com.apple.access_ssh gid 399
fi
# create "Service and Support" group and add admin users
localadmins=$(/usr/bin/dscl . read /Groups/admin GroupMembership | awk -F': ' '{print $2}')
for account in 'echo $localadmins'; do
# add additional blocks like >> && ! [ "$account" == "username" ] << for additional exclusions
if ! [ "$account" == "root" ] && ! [ "$account" == "itstech" ]; then
userID=$(/usr/bin/dscl . read /Users/$account | grep GeneratedUID | awk '{print $2}')
if [ "$userID" != "" ]; then
# Test if the servsupport group exists and create it if it doesn't
/usr/bin/dscl . read /Groups/servsupport > /dev/null 2>&1
sc=$?
if [[ $sc != 0 ]]; then
/usr/bin/dscl . create /Groups/servsupport
/usr/bin/dscl . create /Groups/servsupport RealName "Service and Support"
/usr/bin/dscl . create /Groups/servsupport passwd "*"
/usr/bin/dscl . create /Groups/servsupport gid 799
fi
/usr/bin/dscl . append /Groups/servsupport GroupMembership "$userID"
else
echo "$account has no local GUID"
fi
fi
done
# Add the "Service and Support" group as nested group to the SSH Service ACL group depending on the state of SSH Service ACL.
GroupState=$(/usr/bin/dscl . list /Groups RealName | grep "SSH Service ACL" | awk '{print $1}')
dseditgroup -o edit -a servsupport -t group $GroupState
if ! [ "$GroupState" == "com.apple.access_ssh" ]; then
/usr/bin/dscl . change /Groups/com.apple.access_ssh-disabled RecordName com.apple.access_ssh-disabled com.apple.access_ssh
fi
# Enable Remote Login service
systemsetup -setremotelogin on
En un entorno administrado (OpenDirectory o AD) con usuarios / grupos OD / AD con permisos de acceso de administrador local, es mucho más simple.
Si ya creó el grupo, puede buscar el ID del grupo y el nombre del grupo ( servsupport
arriba) haciendo clic con el botón derecho en el nombre del grupo en "Usuarios y grupos".