Por que não posso usar meu usuário recém-criado com chown?

2

Por isso, estou tentando criar um novo usuário e grupo e, em seguida, altero a propriedade de um diretório para esse novo usuário / grupo. No entanto, quando o faço, chown volta com uma mensagem de "nome de usuário ilegal".

Aqui está um script de shell simplificado que mostra o que estou tentando fazer:

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

... e a saída que recebo é:

chown: _jira: illegal user name

Estou faltando um passo? É porque o nome de usuário é prefixado com um sublinhado?

Observação: posso listar todos os usuários e grupos existentes e posso ver o grupo _jira usuário e _jira e também ver se o usuário está atribuído a esse grupo.

    
por Wilco 04.06.2015 / 01:45

1 resposta

2

Você não atribuiu um número de ID de usuário (o que dscl chama UniqueID) ao usuário _jira e, como a propriedade do arquivo é registrada pelo ID do usuário, não é possível enviar arquivos para uma conta sem um. Adicione algo como:

dscl . create /Users/_jira UniqueID 301

Você também deve definir o PrimaryGroupID do usuário e usá-lo para atribuí-lo ao grupo _jira em vez de adicionar o usuário ao grupo:

dscl . create /Users/_jira PrimaryGroupID 301

Se você quiser continuar adicionando uma associação secundária no grupo _jira, atribua outro ID de grupo como principal e adicione a associação secundária com dseditgroup:

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

Isso não só adiciona "_jira" à lista GroupMembership do grupo, como também adiciona o UUID do usuário à lista GroupMembers do grupo - fazer as duas coisas é recomendado e, enquanto é possível fazer com dscl, é mais simples com dseditgroup.

    
por 04.06.2015 / 18:19