Permissões do Unix - o que EXATAMENTE é o “grupo do proprietário” (nota: singular)?

2

Estou programando um sistema de arquivos Fuse.
Até agora, o normal não encontrou problemas insolúveis (exceto desempenho).

No entanto, eu li os seguintes artigos: link > link
link
link
link
link

E eu tenho a seguinte pergunta:
Dada uma string genérica unix-permission -
Eu entendo a string (após o primeiro char) é particionado em grupos de 3 (rwx) para

owner
owner_group
all/world/anyone

No entanto, um dos artigos afirma explicitamente que 1 usuário pode estar em N grupos.
Então, por que o singular aqui para o proprietário group (não grupos)? O que exatamente é o grupo de proprietários, se eu (o criador do arquivo e, portanto, o proprietário) estou em vários grupos?

Digamos que eu seja membro do grupo A, grupo B e grupo C.
Agora eu crio um arquivo em algum lugar.

Como a expressão owner_group é singular e não é plural , a qual grupo as permissões owner_group são aplicadas?
Um XOR B XOR C, ou todos eles, ou nenhum deles?
Se for aplicado a apenas um (como o singular implica), como é determinado a qual grupo os direitos são atribuídos?

Eu tenho o sentimento distinto de que eu realmente não entendo algo aqui, ou que eu entenda mal o significado do termo "grupo de proprietários".

    
por WitchCraft 24.02.2015 / 14:18

1 resposta

10
  • Um usuário pode ser um membro de vários grupos.
  • Um arquivo é de propriedade de exatamente um grupo e um usuário.
  • Se o usuário for um membro do grupo de proprietários do arquivo (ou seja, o grupo foo possui o arquivo e um dos grupos do usuário for foo ), as respectivas permissões do grupo serão aplicadas a esse usuário (a menos que substituído pelo permissões do proprietário).

O grupo de proprietários faz parte da propriedade do arquivo. Considere:

$ stat /usr/bin/crontab 
  File: ‘/usr/bin/crontab’
  Size: 35984       Blocks: 72         IO Block: 4096   regular file
Device: 803h/2051d  Inode: 131439      Links: 1
Access: (2755/-rwxr-sr-x)  Uid: (    0/    root)   Gid: (  103/ crontab)
Access: 2015-02-05 20:20:43.438507538 +0530
Modify: 2013-02-09 12:32:23.000000000 +0530
Change: 2014-09-30 19:22:09.508515013 +0530
 Birth: -

Isso indica que a propriedade do arquivo é com o usuário root e o grupo crontab .

  

Digamos que eu seja membro do grupo A, grupo B e grupo C.   Agora eu crio um arquivo em algum lugar. ... [To] qual grupo obtém as permissões owner_group aplicadas?

Isso depende do seu grupo principal no momento em que você criou o arquivo. O grupo primário é o primeiro listado quando você executa o comando groups . Normalmente, isso é determinado pelo seu GID. No entanto, você pode definir temporariamente um dos seus outros grupos como principal usando o comando newgrp . Por exemplo:

$ groups 
muru adm cdrom sudo dip plugdev lpadmin sambashare
$ rm foo; touch foo
$ stat -c %G foo  # this prints the owner group of the file
muru
$ newgrp sudo   
$ rm foo; touch foo
$ stat -c %G foo
sudo
  

Eu tenho o sentimento distinto de que eu realmente não entendo algo aqui, ou que eu entenda mal o significado do termo "grupo de proprietários".

O grupo de proprietários é um atributo do arquivo, não do usuário.

  

Eu entendo que a string (após o primeiro caractere) é particionada em grupos de 3 (rwx) para

owner
owner_group
all/world/anyone

Ligeiramente desligado: o terceiro campo é outros , não todos . Outros abrange todos, exceto o proprietário do arquivo e os membros do grupo de proprietários do arquivo. A distinção entra em jogo ao usar modos simbólicos com chmod :

  • chmod a-x tira as permissões de execução de todos
  • chmod o-x retira a permissão de execução de todos os outros, enquanto deixa a permissão de execução do proprietário e do grupo proprietário intocada.

Por fim, uma observação sobre grupos privados de usuários. Os UPGs são bastante comuns em sistemas de desktop, mas não os aceitam em outros lugares. Se os UPGs estiverem ativados, é provável que o grupo principal e o nome de usuário do usuário tenham o mesmo ID e nome numéricos e exista um grupo exclusivo para cada usuário. Isso é tudo.

    
por muru 24.02.2015 / 14:32