Que é mais usado: chmod 777 ou chmod a + rwx [closed]

19

Fora das duas opções para alterar as permissões:

  • chmod 777 file.txt
  • chmod a+rwx file.txt

Estou escrevendo um documento para enviar aos nossos clientes, detalhando que eles precisam alterar as permissões de arquivo de um determinado arquivo. Quero detalhar isso como a maneira mais comum de alterar as permissões de arquivos.

Atualmente, diz:

- Set permissions on file.txt as per the example below:
    - chmod 777 /tmp/file.txt

Este é apenas um exemplo e não alterará os arquivos para que tenham permissões totais para todos.

    
por Kevdog777 03.09.2014 / 15:26

4 respostas

28

O Google dá:

chmod 777 é cerca de 3 vezes mais popular.

Dito isso, prefiro usar longas opções em documentação e scripts, porque eles são auto-documentados. Se você estiver seguindo suas instruções com "Executar ls -l | grep file.txt e verificar permissões", convém usar chmod a+rwx porque é assim que ls exibirá as permissões.

    
por 03.09.2014 / 16:33
26

[edito para adicionar as melhores práticas, seguindo a sugestão Dotancohen em sua resposta. Espero que não fique menos claro, e que o bom hábito seja tomado]

Informações adicionais importantes: não são equivalentes.

chmod a+rwx : defina os últimos 3 octais como 777, para garantir que Proprietário, Grupo e Usuários tenham o conjunto "rwx". Se houver bits adicionais no primeiro octal (setuid, setgid e / ou Sticky bit), eles não serão tocados. Pense nisso como um binário "ou 00777".

chmod 777 : defina os direitos para 00777, para garantir que Proprietário, Grupo e Usuários tenham o "rwx" configurado E NADA MAIS. Ele também garante que os bits adicionais (setuid, setgid e / ou Sticky bit) sejam definidos como 0.

Portanto, use o primeiro formulário, se você quiser garantir acesso a todos (e, por favor, faça duplo, triplo certeza de que é necessário ... ele abre a porta para todos os tipos de problemas de segurança, alguns inesperadamente) amplo no que eles permitem que um usuário mal-intencionado faça)

Use o formulário 777 se você também quiser certificar-se de redefinir qualquer bit setuid / setgid / sticky, ou seja, se os arquivos precisarem ser "00777", o que provavelmente é mais provável no seu caso (o direito do arquivo é conhecido, e deve ser: 00777). Aqui também, certifique-se de que é realmente necessário ...

Normalmente, é melhor manter o acesso ao proprietário (e às vezes agrupar): use os grupos para conceder acesso a alguns usuários específicos ao arquivo / diretório. a + rwx é fácil e geralmente é o caminho errado para conceder acesso (claro que existem casos muito raros quando é a única maneira ...)

O

link é uma boa leitura, pois explica o que cada número ou letra representa (incluindo setuid / setgid / sticky)

    
por 03.09.2014 / 18:28
1

Eu costumo pensar na diferença sendo que definir as permissões para 0777 as define explicitamente como 0777. Como mencionado anteriormente, 0 inicial será inferido se você digitar apenas 777. Enquanto que um + rwx adiciona leitura / gravação / execução deixando o setuid / sticky bit intocado.

Suponha que você queira apenas ter certeza de que um arquivo é executável, você pode usar um + x para poder modificar o privilégio de execução sem se preocupar ou modificar as outras permissões. Se você usou a representação octal, você precisaria saber quais permissões estão atualmente definidas para garantir que você não modifique as permissões de alguma outra forma além do que você pretendia.

    
por 04.09.2014 / 02:46
0

Eu diria que dar os valores numéricos é muito mais comum em "guias de pessoas simples", como aqueles produzidos para usuários de hospedagem de sites de baixo custo. No entanto, tenha cuidado para especificá-los como valores octal , não decimais:

$ chmod 0777 some_dir

Observe o 0 em 0777 . Embora o Bash e outros ambientes CLI façam a coisa certa ao usar o 777 não agrupado, muitas linguagens de programação, como PHP e Perl, têm funções semelhantes que exigem o 0 inicial. Então eu recomendo o seu uso no Bash também, para lembrar que ele deveria estar lá.

Nota para os downvoters: Conforme esclarecido nos comentários, o comando chmod sabe de fato passar a diretiva como octal, mesmo se a notação decimal for especificada. No entanto, nem todos os ambientes suportam isso, por isso é a melhor prática para se acostumar a especificá-lo explicitamente.

    
por 03.09.2014 / 16:43