Recentemente, fui convidada por um colega para usar chmod
com letras em vez de números. Além da óbvia vantagem de legibilidade, existe algum motivo específico para usar letras sobre números?
A chmod
notação simbólica é mais refinada em comparação com a notação octal, permitindo a modificação de bits de modo específicos enquanto deixa outros bits de modo intocados.
A notação simbólica consiste em três componentes:
chmod [references][operator][modes] file
O references
consiste em uma combinação das letras ugoa
, que especificar qual usuário o acesso à file
será modificado: o usuário que possui ( u
), outros usuários no grupo do arquivo ( g
), outros usuários não no grupo do arquivo ( o
), ou todos os usuários ( a
) Se o references
componente for omitido, o padrão é todos os usuários, mas apenas as permissões permitidas pelo umask
são modificadas.
Isso +
operator
faz com que os bits especificados no modo de arquivo sejam adicionados aos bits existentes no modo de arquivo de cada arquivo; -
faz com que sejam removidos; e =
faz com que sejam adicionados e bits não especificadas para ser removida, excepto setuid
e setgid
bits definidos para directórios, a não ser que explicitamente especificado.
O mode
consiste em uma combinação das letras rwxXst
, que correspondem à leitura ( r
), write ( w
), executar (ou procurar diretórios) ( x
), executar / procurar somente se o arquivo é um diretório ou já tem permissão de execução para algum usuário ( X
) setuid
ou setgid
(dependendo das referências especificadas) ( s
) e sinalizador de exclusão restrito ou bit adesivo ( t
). Como alternativa, mode
pode consistir em uma das letras ugo
; nesse caso, mode
corresponde às permissões atualmente concedidas ao proprietário ( u
), membro do grupo de arquivos ( g
) ou permissões de usuários em nenhuma das categorias anteriores ( o
).
Exemplos
Supondo que a permissão definida para file
é0764/-rwxrw-r--
Remova a permissão de outros usuários que não estão no grupo de arquivos:
Octal: chmod 760 file
Observe como as permissões existentes inalteradas devem ser repetidas ao usar a notação octal.
Simbólico: chmod o-rwx file
Com notação simbólica, as permissões de arquivo existentes não importam.
Conjunto setuid
:
Octal: chmod 4764 file
Simbólico: chmod u+s file
Conjunto setgid
:
chmod 2764 file
chmod g+s file
O uso das letras permite ativar e desativar bits individuais sem alterar os outros bits.
Digamos que eu tenho o seguinte diretório: drwxrwsr-x 6 f261-01a g261-01a 4096 12 de setembro 17:51 / home / teams / 261 / f261-01a
Se eu quiser desativar a permissão de leitura de outros e desejar usar números, talvez o faça rapidamente chmod 751
. Exceto que acabei de desativar o bit setgid no diretório. Opa
Se, no entanto, eu uso chmod o-r
, apenas desativo o bit de leitura que eu queria e o bit setgid no diretório permanece definido.
Também é útil se você deseja ativar os bits setuid, setgid ou sticky em um arquivo ou diretório. Especialmente se você fizer isso, raramente terá problemas para lembrar qual parte é a que está no quarto octeto.
Então, depende do que você está fazendo. Ainda prefiro usar números quando estou definindo permissões e não me importo com o que há para começar. Mas se você estiver alternando bits individuais, a notação de letras é muito mais fácil.