Para que serve o primeiro dígito octal chmod em um valor de quatro dígitos?

40

Às vezes, vejo chmodcomandos que usam quatro dígitos octais em vez de três - para que serve o primeiro dígito opcional? Por exemplo, chmod 777é equivalente a chmod a+rwx; qual é o mesmo comando chmod 2777?

prosseek
fonte
11
Essa é uma boa pergunta, então tentei generalizá-la um pouco
Michael Mrozek
3
O 'quarto dígito octal chmod' é um pouco confuso, o dígito em questão é realmente o primeiro ao ler da esquerda para a direita.
jsbillings

Respostas:

44

Observe que chmod 777 filenameé o equivalente chmod 0777 filenameneste exemplo.

O primeiro dígito octal define os bits setuid, setgid e sticky (consulte este artigo para obter mais detalhes sobre setuid / setgid). octal 2 significa definir o ID do grupo no arquivo. Então, o equivalente seria fazer um chmod a+rwx filename, então chmod g+s filename. A chmod página de informações explica isso com mais detalhes.

jsbillings
fonte
5
Quase todas as implementações do chmod (1) podem usar vírgulas nos argumentos do modo simbólico. Assim, o equivalente a 2777 pode ser feito em um comando: chmod a+rwx,g+s filename. Ou, mais estrita (certificando-se de limpar os bits setuid e pegajosos como o modo numérico seria): chmod a=rwx,g+s filename.
quer