Chmod por letras versus números

7

Recentemente, pedi a um colega que usasse chmod com letras em vez de números. Além da óbvia vantagem de legibilidade, existe alguma razão específica para usar letras em vez de números?

    
por Gautam 09.10.2013 / 06:43

2 respostas

10

A notação simbólica chmod é 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 especificam qual acesso do usuário ao file será modificado: o usuário que o possui ( u ), outros usuários no grupo do arquivo ( g ), outros usuários que não estão no grupo do arquivo ( o ) ou todos os usuários ( a ). Se o componente references for omitido, o padrão será todos os usuários, mas somente as permissões permitidas pelo umask serão modificadas.

O + operator faz com que os bits de modo de arquivo especificados sejam adicionados aos bits de modo de arquivo existentes de cada arquivo; - faz com que eles sejam removidos; e = faz com que eles sejam adicionados e bits não especificados sejam removidos, exceto setuid e setgid bits definidos para diretórios, a menos que explicitamente especificado.

O mode consiste em uma combinação das letras rwxXst , que correspondem à leitura ( r ), gravação ( w ), execução (ou pesquisa de diretórios) ( x ), execução / pesquisa somente se o arquivo for um diretório ou se já tiver 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 ( %código%). Como alternativa, o t pode consistir em uma das letras mode , caso em que ugo corresponde às permissões atualmente concedidas ao proprietário ( mode ), membro do grupo do arquivo ( u ) ou permssions de usuários em nenhuma das categorias anteriores ( g ).

Exemplos

Supondo que o conjunto de permissões para o seja file

Remova a permissão de outros usuários que não estão no grupo de arquivos:

  • Octal: 0764/-rwxrw-r--

    Observe como as permissões existentes deixadas inalteradas devem ser repetidas ao usar a notação octal.

  • Simbólico: chmod 760 file

    Com a notação simbólica, as permissões de arquivo existentes não importam.

Defina chmod o-rwx file :

  • Octal: setuid

  • Simbólico: chmod 4764 file

Defina chmod u+s file :

  • Octal: setgid
  • Simbólico chmod 2764 file
por 09.10.2013 / 07:14
0

O uso das letras permite ativar ou desativar os bits individuais sem alterar os outros bits.

Digamos que eu tenha o seguinte diretório: drwxrwsr-x 6 f261-01a g261-01a 4096 Set 12 17:51 / home / equipas / 261 / f261-01a

Se eu quiser desativar a permissão de leitura de outras pessoas e quiser usar números, posso faça rapidamente chmod 751 . Exceto que acabei de desligar o bit setgid no diretório. Opa.

Se, no entanto, eu usar chmod o-r , eu apenas desabilitei o bit de leitura que eu queria e o bit setgid no diretório permanece definido.

Também é útil se você deseja ativar setuid, setgid ou sticky bits em um arquivo ou diretório. Especialmente se você faz isso tão raramente você tem dificuldade em lembrar qual bit é qual no quarto octeto.

Então, depende do que você está fazendo. Eu ainda prefiro usar números quando estou apenas definindo permissões e não me importo com o que está lá para começar. Mas se você estiver alternando bits individuais, a notação de letras é muito mais fácil.

    
por 09.10.2013 / 07:14

Tags