
Então existe chown
o que permite alterar o proprietário e o grupo de arquivos e/ou diretórios. Mas tem também chgrp
o que só muda o grupo. Por que foi chgrp
criado? Não é redundante?
Responder1
chown
inicialmente não foi possível definir o grupo. Mais tarde, algumas implementações adicionaram-no como chown user.group
, outras chown user:group
até que finalmente foipadronizado(ênfase minha):
O método 4.3 BSD de especificaçãoproprietário e grupofoi incluído neste volume do POSIX.1-2008 porque:
Há casos em que a condição final desejada não pode ser alcançada usando os utilitários chgrp e chown (que apenas alteram o ID do usuário). (Se o proprietário atual não for membro do grupo desejado e o proprietário desejado não for membro do grupo atual, a função chown() poderá falhar, a menos que o proprietário e o grupo sejam alterados ao mesmo tempo.)
Mesmo que pudessem ser alterados de forma independente, nos casos em que ambos estão sendo alterados, há uma penalidade de desempenho de 100% causada por ser forçado a invocar ambos os utilitários.
Mesmo agora:
chown :group
alterar apenas o grupo não é portátil ou padrão.chown user:
atribuir o grupo primáriouser
no banco de dados do usuário também não é padrão.
Responder2
Privilégios de root são necessários ao alterar o usuário-proprietário* de um arquivo.
Um usuário normal pode alterar o proprietário do grupo de um arquivo para outro grupo do qual seja membro.
Talvez desta perspectiva de privilégio fizesse sentido mantê-los separados, especialmente na era pré-sudo. O mesmo chown
poderia ter sido feito setuid
com um grupo de 'admin', permitindo que membros do grupo 'admin' alterassem o usuário-proprietário dos arquivos.
* Eu uso "proprietário do usuário" e "proprietário do grupo" e "outros" para consistência com ugo. Confundir “o” com “proprietário” é um erro comum.