¿Por qué no puedo utilizar mi usuario recién creado con chown?

¿Por qué no puedo utilizar mi usuario recién creado con chown?

Así que estoy intentando crear un nuevo usuario y grupo, y luego cambiar la propiedad de un directorio a ese nuevo usuario/grupo. Sin embargo, cuando lo hago, chown vuelve con un mensaje de "nombre de usuario ilegal".

Aquí hay un script de shell simplificado que muestra lo que estoy intentando hacer:

#!/usr/bin/bash

# Create Group
dscl . create /Groups/_jira
dscl . create /Groups/_jira gid 301"

# Create User
dscl . create /Users/_jira
dscl . append /Groups/_jira GroupMembership _jira

# Change Ownership
chown -R _jira:_jira /Some/random/directory

... y el resultado que obtengo es:

chown: _jira: illegal user name

¿Me estoy perdiendo un paso? ¿Es porque el nombre de usuario tiene como prefijo un guión bajo?

Nota:Puedo enumerar todos los usuarios y grupos existentes y puedo ver el usuario _jira y el grupo _jira, y también ver que el usuario está asignado a ese grupo.

Respuesta1

No ha asignado un número de ID de usuario (lo que dscl llama UniqueID) al usuario _jira y, dado que la propiedad del archivo se registra mediante ID de usuario, no hay forma de transferir archivos a una cuenta sin uno. Agrega algo como:

dscl . create /Users/_jira UniqueID 301

También debes configurar el PrimaryGroupID del usuario, y lo usaría para asignarlo al grupo _jira en lugar de agregar el usuario al grupo:

dscl . create /Users/_jira PrimaryGroupID 301

Si desea seguir agregando una membresía secundaria en el grupo _jira, debe asignar algún otro ID de grupo como principal y luego agregar la membresía secundaria con dseditgroup:

sudo dseditgroup -o edit -a _jira -t user _jira

Esto no solo agrega "_jira" a la lista GroupMembership del grupo, sino que también agrega el UUID del usuario a la lista GroupMembers del grupo; se recomienda hacer ambas cosas y, si bien es posible hacerlo con dscl, es más sencillo con dseditgroup.

información relacionada