¿Para qué es el primer dígito octal chmod en un valor de cuatro dígitos?

40

A veces veo chmodcomandos que usan cuatro dígitos octales en lugar de tres: ¿para qué es el primer dígito opcional? Por ejemplo, chmod 777es equivalente a chmod a+rwx; ¿Para qué es el mismo comando chmod 2777?

prosseek
fuente
1
Esta es una buena pregunta, así que traté de generalizar un poco
Michael Mrozek
3
El 'cuarto dígito octal chmod' es un poco confuso, el dígito en cuestión es en realidad el primero cuando se lee de izquierda a derecha.
jsbillings

Respuestas:

44

Tenga en cuenta que chmod 777 filenamees el equivalente de chmod 0777 filenameen este ejemplo.

El primer dígito octal establece los bits setuid, setgid y sticky (consulte este artículo para obtener más detalles sobre setuid / setgid). octal 2 significa establecer ID de grupo en el archivo. Entonces, el equivalente sería hacer un chmod a+rwx filename, entonces chmod g+s filename. La chmod página de información explica esto con más detalle.

jsbillings
fuente
55
Casi todas las implementaciones de chmod (1) pueden usar comas en argumentos de modo simbólico. Por lo tanto, su equivalente de 2777 se puede hacer en un solo comando: chmod a+rwx,g+s filename. O, (asegurándose de borrar los bits setuid y pegajosos como el modo numérico haría) de manera más estricta: chmod a=rwx,g+s filename.
Chris Johnsen