Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

chmod - Cambiar modo de archivo

Para cambiar el modo (permisos) de un archivo o directorio, el chmod se utiliza el comando. Tenga en cuenta que solo el propietario del archivo o el superusuario puede cambiar el modo de un archivo o directorio. chmod admite dos formas distintas de especificar cambios de modo: representación de números octales o representación simbólica. Primero cubriremos la representación del número octal.


¿Qué diablos es Octal?

Octal (base 8) y su primo hexadecimal (base 16) son sistemas numéricos que se utilizan a menudo para expresar números en las computadoras. Nosotros, los humanos, debido al hecho de que nosotros (o al menos la mayoría de nosotros) nacimos con diez dedos, contamos usando un sistema numérico de base 10. Las computadoras, por otro lado, nacieron con un solo dedo y, por lo tanto, hacen todo su conteo en binario (base 2). Su sistema numérico solo tiene dos números, 0 y 1. Entonces, en binario, el conteo se ve así:

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011 ...

En octal, el conteo se realiza con los números del cero al siete, así: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21 ...

El conteo hexadecimal usa los números del cero al nueve más las letras de la "A" a la "F":

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13 ...

Si bien podemos ver el sentido en binario (dado que las computadoras solo tienen un dedo), ¿para qué sirven octal y hexadecimal? La respuesta tiene que ver con la conveniencia humana. Muchas veces, pequeñas porciones de datos se representan en las computadoras como patrones de bits. Tomemos, por ejemplo, un color RGB. En la mayoría de las pantallas de computadora, cada píxel está compuesto por tres componentes de color: ocho bits de rojo, ocho bits de verde y ocho bits de azul. Un hermoso azul medio sería un número de 24 dígitos:

010000110110111111001101

¿Cómo le gustaría leer y escribir ese tipo de números todo el día? Yo no lo creo. Aquí es donde ayudaría otro sistema numérico. Cada dígito de un número hexadecimal representa cuatro dígitos en binario. En octal, cada dígito representa tres dígitos binarios. Entonces, nuestro azul medio de 24 dígitos podría condensarse en un número hexadecimal de seis dígitos:

436FCD

Dado que los dígitos del número hexadecimal se “alinean” con los bits del número binario, podemos ver que el componente rojo de nuestro color es 43, el verde 6F y el azul CD.

En estos días, la notación hexadecimal (a menudo hablada como “hexadecimal”) es más común que la octal, pero como veremos pronto, la capacidad de octal para expresar tres bits de binario será muy útil ...


Con la notación octal usamos números octales para establecer el patrón de permisos deseados. Dado que cada dígito de un número octal representa tres dígitos binarios, esto se asigna muy bien al


esquema utilizado para almacenar el modo de archivo. Esta tabla muestra lo que queremos decir:


Tabla 9-4: Modos de archivo en binario y octal


Octal

Binario

Modo de archivo

0

000

. . .

1

001

--X

2

010

-w-

3

011

-wx

4

100

r--

5

101

rx

6

110

rw-

7

111

rwx

Al usar tres dígitos octales, podemos configurar el modo de archivo para el propietario, el propietario del grupo y

mundo:



[yo @ linuxbox ~] $ > foo.txt

[yo @ linuxbox ~] $ ls -l foo.txt

-rw-rw-r-- 1 yo yo 0 2016-03-06 14:52 foo.txt [yo @ linuxbox ~] $ chmod 600 foo.txt

[yo @ linuxbox ~] $ ls -l foo.txt

-rw ------- 1 yo yo 0 2016-03-06 14:52 foo.txt

[yo @ linuxbox ~] $ > foo.txt

[yo @ linuxbox ~] $ ls -l foo.txt

-rw-rw-r-- 1 yo yo 0 2016-03-06 14:52 foo.txt [yo @ linuxbox ~] $ chmod 600 foo.txt

[yo @ linuxbox ~] $ ls -l foo.txt

-rw ------- 1 yo yo 0 2016-03-06 14:52 foo.txt


Al pasar el argumento "600", pudimos establecer los permisos del propietario para leer y escribir mientras eliminamos todos los permisos del propietario del grupo y del mundo. Aunque recordar el mapeo octal a binario puede parecer un inconveniente, normalmente solo tendrá que utilizar algunos comunes: 7 (rwx) 6 (rw-) 5 (rx) 4 (r--), y 0 (. . . ).

chmod también admite una notación simbólica para especificar modos de archivo. La notación simbólica se divide en tres partes: a quién afectará el cambio, qué operación se realizará y qué permiso se establecerá. Para especificar quién se ve afectado, se utiliza una combinación de los caracteres “u”, “g”, “o” y “a” de la siguiente manera:


Tabla 9-5: Notación simbólica chmod


Significado del símbolo

Significado del símbolo

u Abreviatura de "usuario", pero significa el propietario del archivo o directorio.


g Propietario del grupo.



o Abreviatura de "otros", pero significa mundo.


una abreviatura de "todos". La combinación de "u", "g" y "o".



Si no se especifica ningún carácter, se asumirá "todos". La operación puede ser un "+" que indica que se debe agregar un permiso, un "-" que indica que se debe quitar un permiso, o un "=" que indica que solo se aplicarán los permisos especificados y que todos los demás deben ser removidos.

Los permisos se especifican con los caracteres "r", "w" y "x". A continuación, se muestran algunos ejemplos de notación simbólica:


Tabla 9-6: Ejemplos de notación simbólica chmod


Significado de la notación

Significado de la notación

u + x Agregar permiso de ejecución para el propietario.


ux Elimina el permiso de ejecución del propietario.


+ x Agregar permiso de ejecución para el propietario, el grupo y el mundo.

Equivalente a a + x.


o-rw Quita el permiso de lectura y escritura de cualquier persona que no sea el propietario y el propietario del grupo.


go = rw Establece que el propietario del grupo y cualquier persona además del propietario tengan permiso de lectura y escritura. Si el propietario del grupo o el mundo tenían previamente permisos de ejecución, se eliminan.


u + x, go = rx Agregue permiso de ejecución para el propietario y establezca los permisos para que el grupo y otros lean y ejecuten. Varias especificaciones pueden estar separadas por comas.



Algunas personas prefieren usar la notación octal, a algunas personas realmente les gusta lo simbólico. La notación simbólica ofrece la ventaja de permitirle establecer un solo atributo sin molestar a ninguno de los demás.

Echa un vistazo a la chmod página de manual para obtener más detalles y una lista de opciones. Una palabra de precaución con respecto a la opción “--recursive”: actúa tanto en archivos como en directorios, por lo que no es tan útil como cabría esperar, ya que rara vez queremos que los archivos y directorios tengan los mismos permisos.


Top OS Cloud Computing en OnWorks: