Indicador de terminal estilizado en una computadora portátil con Linux

Cómo usar el comando chmod en Linux

Indicador de terminal estilizado en una computadora portátil con LinuxFatmawati Achmad Zaenuri / Shutterstock.com

Controle quién puede acceder a archivos, buscar directorios y ejecutar scripts usando Linux chmod pedido. Este comando cambia los permisos de archivos de Linux, lo que parece complicado a primera vista, pero en realidad es bastante sencillo una vez que sepa cómo funcionan.

chmod cambia los permisos del archivo

En Linux, quién puede hacer qué en un archivo o directorio se controla mediante conjuntos de permisos. Hay tres conjuntos de permisos. Un conjunto para el propietario del archivo, otro conjunto para los miembros del grupo del archivo y un conjunto final para todos los demás.

Los permisos controlan las acciones que se pueden realizar en el archivo o directorio. Permiten o impiden la lectura, modificación de un archivo o, en el caso de un script o programa, su ejecución. Para un directorio, los permisos determinan quién puede cd en el directorio y quién puede crear o modificar archivos en el directorio.

Usas el chmod Ordenar a definir cada uno de estos permisos. PARA ver qué permisos se han establecido en un archivo o directorio, podemos usar ls.

Ver y comprender los permisos de archivos

Podemos usar el -l (formato largo) opción para tener ls enumera los permisos de archivo para archivos y directorios.

ls -l

En cada línea, el primer carácter identifica el tipo de entrada que se enumera. Si es un guión-) es un archivo. Si es la carta d es un directorio.

Los siguientes nueve caracteres representan la configuración de los tres conjuntos de permisos.

  • Los primeros tres caracteres indican los permisos del usuario propietario del archivo (permisos de usuario).
  • Los tres caracteres del medio indican los permisos de los miembros del grupo del archivo (permisos de grupo).
  • Los últimos tres caracteres indican los permisos para cualquier persona que no forme parte de las dos primeras categorías (otros permisos).

Hay tres caracteres en cada conjunto de permisos. Los personajes son indicadores de la presencia o ausencia de uno de los permisos. Son un guión (-) o una carta. Si el carácter es un guión, significa que no se concede permiso. Si el personaje es un r, w, o un x, esta autorización ha sido concedida.

Las letras representan:

  • r: leer permisos. El archivo se puede abrir y ver su contenido.
  • w: permisos de escritura. El archivo se puede editar, modificar y eliminar.
  • x: permisos de ejecución. Si el archivo es un script o un programa, se puede ejecutar (ejecutar).

Por ejemplo:

  • --- significa que no se ha concedido ninguna autorización.
  • rwx significa que se han concedido todos los permisos. Los indicadores de lectura, escritura y ejecución están presentes.

En nuestra captura de pantalla, la primera línea comienza con un d. Esta línea se refiere a un directorio llamado «archivo». El propietario del directorio es «dave» y el nombre del grupo al que pertenece el directorio también se llama «dave».

Los siguientes tres caracteres son los permisos de usuario para este directorio. Estos muestran que el propietario tiene todos los permisos. los r, w, y x los personajes están todos presentes. Esto significa que el usuario Dave tiene permisos de lectura, escritura y ejecución para este directorio.

El segundo conjunto de tres caracteres son permisos de grupo, estos son r-x. Estos muestran que los miembros del grupo dave han leído y ejecutado permisos para este directorio. Esto significa que pueden listar los archivos y su contenido en el directorio, y pueden cd (ejecutar) en este directorio. No tienen permisos de escritura, por lo que no pueden crear, editar ni eliminar archivos.

El conjunto final de tres personajes también es r-x. Estos permisos se aplican a personas que no se rigen por los dos primeros conjuntos de permisos. Estas personas (llamadas «otras») tienen permisos de lectura y ejecución en este directorio.

Entonces, en resumen, los miembros del grupo y otros han leído y ejecutado permisos. El propietario, un usuario llamado Dave, también tiene permisos de escritura.

Para todos los demás archivos (excepto el archivo de script mh.sh), dave y los miembros del grupo dave tienen propiedades de lectura y escritura en los archivos, y los demás solo tienen permisos de lectura.

Para el caso particular del archivo de script mh.sh, el propietario dave y los miembros del grupo tienen permisos de lectura, escritura y ejecución, y los demás solo tienen permisos de lectura y ejecución.

Comprender la sintaxis de autorización

Usar chmod para establecer permisos tenemos que decirle:

  • Quién: para quién establecemos los permisos.
  • ¿Qué: qué cambio estamos haciendo? ¿Agregamos o quitamos la autorización?
  • Cuál: cuál de las autorizaciones definimos?

Usamos indicadores para representar estos valores y formar breves «declaraciones de permisos» como u+x, donde «u» significa «usuario» (quién), «+» significa agregar (qué) y «x» significa permiso de ejecución (quién).

Los valores de «quién» que podemos utilizar son:

  • u: Usuario, es decir, el propietario del archivo.
  • g: Grupo, es decir, los miembros del grupo al que pertenece el archivo.
  • o: Otros, es decir, personas no gobernadas por el u y g permisos.
  • a: Todo, es decir, todo lo anterior.

Si no se utiliza ninguno de estos elementos, chmod se comporta como si «aHa sido usado.

Los «qué» valores que podemos usar son:

  • -: Signo menos. Elimina la autorización.
  • +: signo más. Conceder permiso. La autorización se agrega a las autorizaciones existentes. Si desea tener este permiso y solo este conjunto de permisos, utilice el = opción, que se describe a continuación.
  • =: signo igual. Establezca un permiso y elimine otros.

Los «qué» valores que podemos usar son:

  • r: Leer permiso.
  • w: permiso de escritura.
  • x: La autorización de ejecución.

Establecer y modificar permisos

Digamos que tenemos un archivo para el que todos tienen permisos completos.

ls -l new_ file.txt

Queremos que el usuario dave tenga permisos de lectura y escritura y que el grupo y otros usuarios solo tengan permisos de lectura. Podemos hacer esto usando el siguiente comando:

chmod u=rw,og=r new_file.txt

El uso del operador «=» significa que borramos todos los permisos existentes y luego establecemos los especificados.

revisemos el nuevo permiso en este archivo:

ls -l new_file.txt

Se han eliminado los permisos existentes y se han establecido los nuevos permisos, como pretendíamos.

¿Qué tal agregar un permiso sin eliminar la configuración de permisos existente? También podemos hacerlo fácilmente.

Digamos que tenemos un archivo de secuencia de comandos que hemos terminado de editar. Necesitamos hacerlo ejecutable para todos los usuarios. Sus permisos actuales se ven así:

ls -l new_script.sh

Podemos agregar el permiso de ejecución para todos con el siguiente comando:

chmod a+x new_script.sh

Si miramos los permisos, veremos que el permiso de ejecución ahora se otorga a todos y los permisos existentes todavía están vigentes.

ls -l new_script.sh

Podríamos haber hecho lo mismo sin la «a» en la declaración «a + x». El siguiente comando habría funcionado igual de bien.

chmod +x new_script.sh

Establecer permisos para varios archivos

Podemos aplicar permisos a varios archivos a la vez.

Aquí están los archivos en el directorio actual:

ls -l

Supongamos que queremos eliminar los permisos de lectura para «otros» usuarios de los archivos que tienen una extensión «.page». Podemos hacerlo con el siguiente comando:

chmod o-r *.page

Veamos qué efecto tuvo esto:

ls -l

Como puede verse, el permiso de lectura se ha eliminado de los archivos «.page» para la categoría «otros» de usuarios. Ningún otro archivo se vio afectado.

Si hubiéramos querido incluir archivos en subdirectorios, podríamos haber usado la -R opción (recursiva).

chmod -R o-r *.page

Abreviatura numérica

Otra forma de usar chmod es proporcionar los permisos que desea otorgar al propietario, grupo y otros como un número de tres dígitos. El número más a la izquierda representa los permisos del propietario. El número del medio representa los permisos de los miembros del grupo. El número de la derecha representa los permisos para otros.

Los números que puede usar y lo que representan se enumeran aquí:

  • 0: (000) Sin autorización.
  • 1: (001) Autorización de ejecución.
  • 2: (010) Autorización de escritura.
  • 3: (011) Escribir y ejecutar permisos.
  • 4: (100) Permiso de lectura.
  • 5: (101) Leer y ejecutar permisos.
  • 6: (110) Permisos de lectura y escritura.
  • 7: (111) Leer, escribir y ejecutar permisos.

Cada uno de los tres permisos está representado por uno de los bits en el equivalente binario del número decimal. Entonces, 5, que es 101 en binario, significa leer y ejecutar. 2, que es 010 en binario, significaría permiso de escritura.

Con este método, define los permisos que desea tener; no agrega estos permisos a los permisos existentes. Entonces, si los permisos de lectura y escritura ya estaban en su lugar, necesitará usar 7 (111) para agregar permisos de ejecución. El uso de 1 (001) eliminaría los permisos de lectura y escritura y agregaría el permiso de ejecución.

Agreguemos el permiso de lectura a los archivos «.page» para otras categorías de usuarios. También necesitamos configurar los permisos para usuarios y grupos, por lo que debemos configurarlos en lo que ya son. Estos usuarios ya tienen permisos de lectura y escritura, es decir, 6 (110). Queremos que los «otros» tengan derechos y permisos de lectura, por lo que deben establecerse en 4 (100).

El siguiente comando logrará esto:

chmod 664 *.page

Esto establece los permisos que necesitamos para el usuario, los miembros del grupo y otros sobre lo que necesitamos. Los permisos de los usuarios y miembros del grupo se restablecen a lo que ya eran, y otros han restaurado el permiso de lectura.

ls -l

Opciones avanzadas

Si tú leer la página del manual para chmod verá que hay opciones avanzadas relacionadas con los bits SETUID y SETGID, y el borrado restringido o bit «pegajoso».

Para el 99% de los casos, necesitará chmod porque, las opciones descritas aquí lo tendrán cubierto.

Experto Geek - Tu Guía en Tendencias Tecnológicas