Chmod por letras versus números

Chmod por letras versus números

Recentemente, um colega me pediu para usar chmodletras em vez de números. Além da óbvia vantagem de legibilidade, existe algum motivo específico para usar letras em vez de números?

Responder1

A chmodnotação simbólica é mais refinada em comparação com a notação octal, permitindo a modificação de bits de modo específicos, deixando outros bits de modo intactos.

A notação simbólica consiste em três componentes:

chmod [references][operator][modes] file

O referencesconsiste em uma combinação das letras ugoa, que especificam qual usuário o acesso ao arquivo fileserá modificado: o usuário que o possui ( u), outros usuários do 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 referencescomponente for omitido, o padrão será todos os usuários, mas apenas as permissões permitidas pelo umaskserão modificadas.

Isso + operatorfaz com que os bits de modo de arquivo especificados sejam adicionados aos bits de modo de arquivo existentes de cada arquivo; -faz com que sejam removidos; e =faz com que eles sejam adicionados e bits não especificados sejam removidos, exceto setuidbits setgiddefinidos para diretórios, a menos que especificado explicitamente.

O modeconsiste em uma combinação das letras rwxXst, que correspondem a ler ( r), escrever ( w), executar (ou procurar diretórios) ( x), executar/pesquisar apenas se o arquivo for um diretório ou já tiver permissão de execução para algum usuário ( X), setuidou setgid(dependendo das referências especificadas) ( s) e sinalizador de exclusão restrita ou sticky bit ( t). Alternativamente, modepode consistir em uma das letras ugo, caso em que modecorresponde às permissões atualmente concedidas ao proprietário ( u), membros do grupo do arquivo ( g) ou permissões de usuários em nenhuma das categorias anteriores ( o).

Exemplos

Supondo que a permissão definida para fileseja0764/-rwxrw-r--

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

  • Octal:chmod 760 file

    Observe como as permissões existentes deixadas 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.

Definir setuid:

  • Octal:chmod 4764 file

  • Simbólico:chmod u+s file

Definir setgid:

  • Octal:chmod 2764 file
  • Simbólicochmod g+s file

Responder2

Usar as letras permite ativar e desativar bits individuais sem alterar os outros bits.

Suponha que eu tenha o seguinte diretório:

drwxrwsr-x   6 f261-01a  g261-01a  4096 Sep 12 17:51 /home/teams/261/f261-01a

Se eu quiser desativar a permissão de leitura para outros e quiser usar números, posso fazer isso rapidamente chmod 751. Exceto que acabei de desativar o bit setgid no diretório. Ops.

Se, no entanto, eu usar chmod o-r, apenas desativo o bit de leitura desejado 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ê fizer isso tão raramente, terá dificuldade em lembrar qual bit é qual no 4º octeto.

Então, depende do que você está fazendo. Ainda prefiro usar números quando estou apenas 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 será muito mais fácil.

informação relacionada