Para crear un grupo, añadir algunos usuarios y habilitar la conexión remota para el mismo grupo desde cero, hacer lo siguiente:
Localmente:
Crear grupo:
sudo dscl . create /Groups/servsupport
Añadir algunos detalles como el nombre, 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
El uso de un boleto de groupID número gid! Usted obtener una lista ordenada de utilizar los gids, escribiendo:
dscl . list /Groups PrimaryGroupID | tr -s ' ' | sort -n -t ' ' -k2,2
Hay también una respuesta en algún lugar, en apple.stackexchange.com cómo encontrar el primer uid o gid mayor que x y cómo se aplican a nuevos grupos o usuarios.
Agregar un usuario administrador (aquí supongo que el nombre de usuario es admin):
sudo dscl . create /Groups/servsupport GroupMembership admin
Si desea agregar un segundo usuario utilice el subcomando append
:
sudo dscl . append /Groups/servsupport GroupMembership admin2
Prueba si el grupo de Servicio SSH ACL existe:
dscl . list /Groups PrimaryGroupID | grep com.apple.access_ssh*
Si el grupo no existe crearlo similares como el Servicio y grupo de Apoyo:
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
Agregar el grupo servsupport como grupo anidado para el Servicio SSH grupo ACL si el SSH ACL ya está habilitado:
sudo dseditgroup -o edit -a servsupport -t group com.apple.access_ssh
o si SSH ACL son dsiabled:
sudo dseditgroup -o edit -a servsupport -t group com.apple.access_ssh-disabled
Habilitar el inicio de sesión remoto:
sudo systemsetup -setremotelogin on
Una secuencia de comandos haciendo esencialmente esto, excepto la creación de un nuevo Servicio y grupo de Apoyo está disponible aquí: add_localadmins_to_ssh. El script vinculado requiere ligeros mods para satisfacer sus necesidades.
Basado en el script vinculado hice una nueva reunión con sus requisitos. Tomar con un grano de sal y prueba 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 OD/ANUNCIOS a los usuarios/grupos locales de administración de permisos de acceso es mucho más simple.
Si ya has creado el grupo puede buscar el groupID y el nombre del grupo (servsupport
anterior) haciendo clic derecho en el nombre del grupo en "Usuarios Y Grupos".