
sé que chmod 777
permiteleer,escribir, yejecutarparausuario,grupo, yotros
pero ¿y si simplemente lo hago chmod 7
?
¿Eso es sólo rwx
para elusuario?
Respuesta1
La respuesta de Ramesh es perfectamente precisa, pero quería intervenir y brindar una explicación más detallada de los modos de archivo.
Si bien los números como 755
y 777
pueden parecer especiales y solo significan algo para los modos de archivo, en realidad son bastante básicos.
Estos números son en realidad números octales. Los números decimales son de base 10, los números hexadecimales son de base 16, los binarios son de base 2 y los números octales son de base 8. Es decir, a medida que cuentas, vas 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 ...
. Entonces el número 007
es simplemente octal 7
. El número octal 755
es solo un número y equivale a 493
decimal.
Ahora bien, la forma de diferenciar un número octal de cualquier otra base es que los números octales tienen el prefijo 0
. Por así decirlo, 755
es octal, en realidad deberías referirte a él como 0755
. El chmod
comando simplemente supone que todos los números de entrada son octales, ya que esa es la forma más común de referirse a los modos de archivo.
Ahora bien, ¿por qué los modos de archivo utilizan octal? Bueno, primero debemos entender que el modo es solo una máscara de bits que se ve así:
111111111111 - 12 binary bits
============
1 - Other execute
1 - Other write
1 - Other read
1 - Group execute
1 - Group write
1 - Group read
1 - User execute
1 - User write
1 - User read
1 - Sticky bit
1 - Set group ID
1 - Set user ID
Tenga en cuenta que hay 3 bits para cada uno de "otro", "grupo" y "usuario". El binario 111
es 7
, que es el valor octal de un solo dígito más alto. Entonces, al usar la numeración octal, cada uno de los demás permisos, grupos y usuarios obtiene un solo dígito, más un dígito adicional para sticky+setuid+setgid.
Entonces, con esto, podemos volver a su pregunta original de "¿qué es chmod 7
"?
Bueno, ahora que sabemos que es sólo un número octal y que es sólo una máscara de bits, podemos resolverlo. Octal 7
es binario 111
. Usando las posiciones de bits anteriores, podemos determinar que esto establece los 3 bits 'otros', otorgando a 'otros' acceso de ejecución, lectura y escritura. Y como esto es sólo un número, todos los demás bits son 0 y se desarman.
Respuesta2
Es al revés. Dará rwx
permiso paraotros.
touch samplefile
ls -l samplefile
-rw-rw-r-- 1 ramesh ramesh 0 Oct 16 22:29 samplefile
Ahora, después de ejecutar el comando, obtengo el resultado como,
chmod 7 samplefile
ls -l samplefile
-------rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile
Desde la página de manual de chmod
,
El modo numérico es de uno a cuatro dígitos octales (0-7), que se obtienen sumando los bits con valores 4, 2 y 1. Se supone que los dígitos omitidos son ceros a la izquierda.
Ahora, podemos verificar lo mismo ejecutando el comando como,
chmod 47 samplefile
ls -l samplefile
----r--rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile
Como podemos ver, con chmod 47
un archivo daráleerpermiso paragrupoyleer,escribiryejecutarpermiso paraotros.