Se o chown pode mudar de grupo, por que o chgrp foi criado?

Se o chown pode mudar de grupo, por que o chgrp foi criado?

Então existe chowno que permite alterar o proprietário e o grupo de arquivos e/ou diretórios. Mas tem também chgrpo que só muda o grupo. Por que foi chgrpcriado? Não é redundante?

Responder1

chowninicialmente não foi possível definir o grupo. Mais tarde, algumas implementações adicionaram-no como chown user.group, outras chown user:groupaté 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 :groupalterar apenas o grupo não é portátil ou padrão.
  • chown user:atribuir o grupo primário userno 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 chownpoderia ter sido feito setuidcom 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.

informação relacionada