Estoy tratando de instalar manualmente un daemon (Oracle Grid Engine) en mi máquina, y me gustaría que se ejecute bajo una cuenta aislada. ¿Cuál es la forma preferida, utilizando los servicios de directorio, para agregar una cuenta de "sistema" a la máquina local en OS X? Muchos de ellos existe en / etc / passwd ( _www
, _dovecot
, etc.), pero los comentarios en la parte superior de esa digamos archivo que no se usa excepto en el modo de un solo usuario.
Estoy ejecutando 10.6 y no necesito ninguna administración especial de cuentas en red. Espero algo simple: el equivalente de useradd
casi todos los demás sistemas operativos tipo Unix.
mac-osx
user-management
directory-services
Tim Yates
fuente
fuente
Probé el script desde el par y encontré algunos problemas. Así que lo modifiqué para un ID de usuario específico y para OS X Mavericks (10.9).
Descubrí que había un par de registros extraños agregados a la cuenta de usuario en Mavericks, un PasswordPolicyOptions y un registro AuthenticationAuthority, que debían eliminarse para imitar correctamente otras cuentas de usuario de servicios incorporados (como _www).
También agregué los registros de Contraseña y RealName a la cuenta del Grupo.
Creé un script personalizado, único, solo para una cuenta de servicio WSGI. Aquí está el script actualizado.
Tenga en cuenta que después de ejecutar este script, los archivos / etc / passwd y / etc / groups no se actualizan. Creo que se actualizan al reiniciar.
fuente
EDITAR: actualizado el 9 de enero de 2014 para OS X Mavericks (sugerencias de Dave, ¡gracias!)
Escribí un script bash para hacer esto. Utilizará el primer UID no utilizado que sea menor o igual a 500 (Uid de cuenta de demonio en Mac OS X) que también tiene un GID idéntico no utilizado.
Guarde el script en un archivo llamado
add_system_user.sh
y configúrelo ejecutable conchmod 755 add_system_user.sh
.Entonces, digamos que desea agregar un daemon / usuario del sistema llamado par . Ejecutarías este script así:
sudo add_system_user.sh par
Y obtendrá un usuario del sistema llamado
_par
que tiene un aliaspar
(el nombre que solicitó) y tiene un uid y gid coincidentes (por ejemplo, 499 o lo que sea que haya encontrado).Aquí está el guión:
fuente
Aquí hay un artículo que explica cómo usar dscl para crear una cuenta de usuario.
Artículo de osxdaily.com
fuente
dscl /Local/Default -read /Users/_sshd
(dscl /Local/Default -ls /Users
le conseguirá una lista de cuentas locales). Tenga en cuenta que no tiene que establecer todos los atributos; GeneratedUID se genera aleatoriamente, y RecordType es metadatos automáticos. Además, la mayoría de las cuentas del sistema OS X tienen un nombre de cuenta principal que comienza con un guión bajo y un alias sin él para compatibilidad con versiones anteriores; Recomiendo usar la convención de subrayado, pero no se moleste con el alias simple a menos que lo necesite.Aquí hay una versión del script de Dave, que también comprueba si el usuario / grupo existe antes de crearlo:
y un script para eliminar usuario:
fuente