Qual é o significado de "chmod 666"?


47

Eu estou usando Linux. Qual é o significado de chmod 666?


28
aka, o comando de Satanás.
Moab

6
Se isso o incomoda (ou se você não consegue se lembrar desses números), também pode escrever como chmod a=rw.
starblue

comando inútil, já que o terceiro argumento não é dado ^^
kokbira

também pode produzir falhas de segurança (todos os usuários podem gravar o arquivo / pasta) ou permissões inúteis de arquivo / pasta
kokbira

Respostas:


112

chmod comando alterar atributos de um arquivo / pasta:

  • chmod 666 file/folder significa que todos os usuários podem ler e escrever, mas não podem executar o arquivo / pasta;
  • chmod 777 file/folder permite todas as ações para todos os usuários;
  • chmod 744 file/folderpermite que apenas o usuário (proprietário) execute todas as ações; O grupo e outros usuários têm permissão apenas para ler.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Como alternativa, você pode executar o comando com uma sintaxe mais intuitiva, sem precisar pensar em binário ou octal (mas o conhecimento da sintaxe numérica é tão importante): chmod u=rw, g=rw, o=rw file/folder

Lembre-se de que a permissão muda com o chmodcomando requer pelo menos 3 argumentos, assim chmod 666como nada sem arquivo / pasta explícitos para alterar as permissões.

Também não se esqueça de criticar se isso não produz problemas inseguros ou simplesmente se é uma alteração de permissão inútil, porque chmod 666permitirá a gravação de arquivos / pastas para todos e a execução para nenhum.


5
Apenas é "octal", não "decimal". +1 de qualquer maneira.
Ben Voigt

1
O terceiro ponto mencionado no primeiro post está incorreto - o chmod 711 permite que apenas o proprietário execute todas as ações, grupos e outros apenas podem ler! [Insira a descrição da imagem aqui] [1] Esta é a tabela para rwx para octal rwx 000 001 010 011 100 101 110 111 Octal 001, ou 1 indica permissão de execução 7 de outubro, 111 indica permissão de leitura, gravação e execução, portanto 711 indica, rwx para o proprietário ex para grupos e outros.

3
De qualquer maneira, só vai para 7, portanto, não há diferença entre octal e decimal nesse caso. : /
Rob

sim, @Yash, e após 1 ano, 2 meses e 18 dias após a postagem original, alguém viu esse erro :) Eu o corrigirei para 744, por exemplo.
Kokbira

1
@KyleVassella, owneré o proprietário do arquivo ou pasta, geralmente aquele que o criou. groupé o grupo de usuários associado a esse arquivo ou pasta, geralmente o grupo em que o proprietário está. Imagine que eu sou rootbira e meu groop é rootusers e você também está nesse grupo, e todos os outros membros do fórum da SU estão em outro grupo. Se eu criar um arquivo e fazer um com chmod 750, gostaria de ler, escrever e executá-lo, você só iria ler e executar e os usuários SU não vai fazer nada - é o nosso segredo ¬¬
kokbira

7

De maneira bem clara: torna um arquivo passível de leitura e gravação pelo proprietário, pelo grupo do proprietário e por todos os outros usuários da máquina (todos). Aplicado a um diretório, permite que todos leiam (obtenham listas de conteúdo de arquivos) de um diretório e gravem (criem, editem arquivos no diretório), mas não executem arquivos do diretório.

Para informações mais detalhadas sobre como chmodfunciona, confira este tutorial útil .


2
... Você não quer dizer que todos leem / gravam arquivos, mas não executam, e que todos leiam / gravam arquivos em um diretório, mas não listam todos os arquivos?
Earlz

2
o que o @earlz diz, além de escrever em um diretório, não significa que você pode editar arquivos lá (escrever permissões em um arquivo), mas apenas significa que você pode criar novas entradas (diretórios, arquivos, links simbólicos etc.). Além disso, é legal da sua parte mencionar dirs por completude, mas 666 não faz sentido para um dir; você nunca eliminaria x pelo proprietário.
Rich Homolka

1
@Earlz: obrigado por isso. Eu sempre esqueço o que o 666 faz para dirs porque, bem, eu nunca defino rw- para um usuário em um dir. :)
Ian C.

7

Como mencionado em outras respostas, chmod significa mudar de modo. Afeta as permissões de leitura, gravação e executável do proprietário, grupo e outras categorias de usuários. Os números que seguem o comando (neste caso 666) indicam como essas permissões são modificadas para o arquivo em que o comando é executado (para 666, significa que proprietário, grupo e outros têm permissões de leitura e gravação, mas sem permissões executáveis) .

Alterando os números para valores diferentes, você efetivamente altera as permissões do arquivo. O link que mencionei acima tem uma pequena ferramenta para descobrir quais valores você precisa inserir para obter o esquema de permissões que você procura. Ele também aborda as opções de opção disponíveis para o comando e alguns exemplos para ajudá-lo a entender melhor como ele funciona.


1
Esse é um ótimo site. Está indo nos meus favoritos. Obrigado!
Kirk

5

O comando chmod (abreviado do modo de alteração) é um comando Unix que permite que um operador informe ao sistema quanto (ou pouco) acesso deve permitir a um arquivo. Comando chmod 666significa que todos os usuários terão permissões de leitura e gravação.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.