Como encontro o meu ID de utilizador e grupo no Mac OS X?
Tentar executar este compand em terminal:
sudo chown -R yourid:yourgroup local
Contudo, não faço ideia do meu ID e do meu grupo, ou onde os encontrar. Alguma ideia?
Tentar executar este compand em terminal:
sudo chown -R yourid:yourgroup local
Contudo, não faço ideia do meu ID e do meu grupo, ou onde os encontrar. Alguma ideia?
No OS X, o seu grupo primário é sempre staff
a menos que você ou o seu gestor de directório de utilizadores o alterem.
O que é um grupo primário? O grupo primário de um utilizador é, por defeito, o proprietário de todos os ficheiros criados por esse utilizador.
Para efeitos de chmod
no seu computador, pode usar ou o seu ID de utilizador numérico (ex. 501), ou o seu nome de conta (ex. danielbeck
). Este último é diferente do nome de utilizador que normalmente vê na IU (por exemplo Daniel Beck).
Pode determinar o nome da sua conta utilizando qualquer uma das seguintes opções:
É o nome do seu directório home (a menos que o tenha personalizado) no título ou barra lateral do Finder
Corre whoami
no Terminal - portanto um chown -R $(whoami):staff
deverá ser suficiente. Também pode obter o seu grupo primário com groups $(whoami) | cut -d' ' -f1
.
Abrir Preferências do Sistema “ Utilizadores e Grupos, desbloquear o painel se necessário, clicar com o botão direito do rato no seu nome de utilizador (a entrada da lista única na secção Usuário actual), e seleccionar Opções Avançadas…. É o campo Nome da conta na janela de diálogo recém-aberta. Este diálogo também lhe mostra o seu grupo primário.
Executar id
no Terminal para mais saída verbosa. Isto incluirá a sua identificação numérica de utilizador. Irá também listar todos os grupos de que é membro, e não apenas o seu grupo primário. O primeiro grupo é o grupo primário.
Isto mostrará o seu utilizador.
$ id -u
502
Isto mostrará os nomes dos seus grupos. Os nomes dos grupos estão dentro de parênteses.
$ id
uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
Só comentaria se pudesse. Não tenho karma suficiente neste site.
Não faço ideia porque é que alguém desvalorizou @callaginn, uma vez que ele traz à baila um ponto válido.
Os seguintes métodos são válidos (e provavelmente as melhores opções para shell scripting):
id -u # returns UID
id -un # returns username
id -g # returns primary (a.k.a. effictive) GID
id -gn # returns primary Group Name
Ver man id
para mais opções.
Para responder a esta pergunta específica se eu estivesse a escrever um script que funcionasse em qualquer ambiente, não assumiria que o grupo padrão staff
está em uso e, em vez disso, faria o seguinte se estivesse a escrever um script que pudesse ser executado para qualquer utilizador (independentemente de terem ou não modificado o seu sistema):
chown "$(id -un):$(id -gn)" some_file
É sempre melhor ser agnóstico da plataforma sempre que possível (se não for uma troca de tempo excessiva), uma vez que incorrerá em menos dívidas técnicas mais tarde.
Note que a bandeira chown
da -R
da System Integrity Protection
deve ser usada com a máxima confiança. Poderia realmente estragar o seu sistema (embora valha a pena notar que a Apple tornou-o difícil de fazer desde que implementaram o chown -R 755 /var
).
Considere, por exemplo, se fosse para chown -R 755 /var/www
em vez de System Integrity Protection
como raiz com 0x6& desactivado, acredito que o faria. Não lhe posso dizer o que se partiria primeiro, mas partiria primeiro num sistema Darwin, mas por favor aceite a minha palavra de que não seria bonito.
Esperemos que alguém considere isto útil.