Por que remover o grupo de execução para bloqueio de arquivo obrigatório?

3

De acordo com esta fonte no Linux, existe uma maneira de forçar o registro obrigatório bloqueio em um arquivo se o sistema de arquivos estiver montado para aceitá-lo. Mas, para isso, é necessário adicionar o setgid bit a um arquivo e remover a permissão de execução do grupo no arquivo. Afirma:

A file is marked as a candidate for mandatory locking by setting the group-id bit in its file mode but removing the group-execute bit. This is an otherwise meaningless combination...

A lógica é que o setgid bit não tem sentido sem permissões de execução de grupo. Mas parece que o oposto deveria ser verdade.

O bit setgid não afetará os usuários que já estão no grupo do arquivo, portanto, o setgid deve ser significativo, desde que o arquivo seja executável para "outros" usuários ou para o proprietário, se o proprietário não é um membro do grupo do arquivo.

A permissão de execução do grupo é a única permissão de execução que não deve afetar o utilitário setgid .

O que estou perdendo?

    
por anotherguy 05.09.2015 / 05:21

1 resposta

0

Você está certo; não é sem sentido. Modos como 2001, 4001, 6001 e até 2100 são significativos para arquivos executáveis. Eles são apenas improváveis (especialmente os três primeiros). Considere um programa hipotético chamado grow , de propriedade de scott , group green . Se o bit “setgid” estiver definido neste programa, isso significa que você quer qualquer processo que execute esse programa para executar com GID = green . O argumento poderia ser feito de que é ilógico ou bobo para negar permissão para executar o programa para usuários / processos que já estão no grupo green .

Mas eu fiz algumas experiências para apoiar esta resposta, e descobri uma coisa que me surpreendeu. Aparentemente, alguém leu a descrição do bloqueio obrigatório e levou a sério. Nos meus testes, os modos 2001 e 2100 não funcionam corretamente - o bit setgid não é honrado se o bit de execução do grupo não estiver definido. Eu acredito que isso é um bug.

Você diz:

… it would seem that the opposite should be true.

Eu não sei o que você quer dizer com isso.

    
por 06.09.2015 / 06:10