Comandos Linux chmod

linux chmod permisos cambiar recursive rwx permission chownUno de los temas que mas escucha un administrador de Linux es: «son los permisos». Es algo casi cotidiano asignar, cambiar, quitar, poner o verificar los permisos de un archivo o directorio. En general hablar de linux permisos» es como halar de «aire respirar» y todo esto se hace con el comando linux chmod. Aquí te digo como Cambiar Permisos Linux a archivos y directorios con el comando linux chmod y te lo explico de forma simple y con ejemplos.

Comando Linux chmod

Comencemos por decir que en Linux «TODO ES UN ARCHIVO», esto es muy importante para entender que en Linux, trabajar con «cualquier cosa» involucra trabajar con archivos y se pueden asignar permisos para que esos archivos puedan ser leídos, modificados o ejecutados. Por lo anterior, si necesitas acceder a un DVD o al CD tienes que conocer lo que en windows sería la «Unidad asignada» como D: o F:, en Linux de igual forma existe una archivo de dispositivo que podría se /dev/cdrom pero ojo, es un archivo.

¿Qué son los Permisos en Linux?

Todo archivo en Linux tiene asignados una serie de permisos para que algunos o todos los usuarios del sistema puedan usar ese archivo, también se pueden dar permisos para que usuarios externos al sistema puedan o no acceder o modificar un archivo. Te recomiendo que veas este post para ver los detalles de como entender los permisos linux y como se representan. Es una lectura obligatoria para usar correctamente el comando chmod.

En general los permisos de un archivo se pueden leer así:

  +--------- u : Usuario  \
  |  +------ g : Grupo     |--- a : Todos
  |  |  +--- o : Otros    /
  |  |  |
 /|\/|\/|\
drwxrwxrwx 1 usuario grupo 0 Jul 8 12:20 Archivo de Ejemplo.txt 
|  
+------------ d : Es un Directorio
              - : Es un Archivo

¿Cómo Cambiar los permisos de un archivo?

El comando linux  chmod permirte cambiar los permisos de un archivo en Linux y si no tienes claro que son los permisos linux y como leerlos, te recomiendo que le des una visita a la primera página de este post. Como decía, el comando linux chmod te permite cambiar los permisos de un archivo y es algo muy simple.

¿Cómo Cambiar los permisos de un archivo?

La sintaxis del comando linux chmod es la siguiente:

chmod [Opción]… MODO[,MODO]… ARCHIVO…
chmod [Opción]… MODO-OCTAL ARCHIVO…

Cambiando permisos linux con chmod Primera Parte (Modo normal)

La primera forma de la sintaxis utiliza los modos o permisos mediante letras, que pueden ser rwxXst para los permisos y ugoa para los diferentes tipos de usuarios. Algo importante que tienes que saber es que en esta forma de manejar los permisos es que al no mencionar un permiso estas indicando que ese permiso está negado y solo afecta al tipo usuario que indiques, pero si no hay un tipo de usuario afectas a los tres tipos de usuarios o cuando usas «a»  (all-todos) como tipo de usuario. Veamos algunos ejemplo de esto.

Cambiar permisos de escritura y lectura para el usuario y solo lectura para el grupo y otros, aplicando estos permisos a todos los archivos con extensión .txt en el directorio actual. Este es el comando:

chmod go=r,u=rw archivo
$ ls -l
-rw-rw-rw- 1 lm lm 0 Jul 8 12:20 archivo de ejemplo.txt
-rw-rw-rw- 1 lm lm 0 Jul 8 12:20 Archivo de Ejemplo.txt
$ chmod go=r,u=rw *.txt
$ ls -l
-rw-r--r-- 1 lm lm 0 Jul 8 12:20 archivo de ejemplo.txt
-rw-r--r-- 1 lm lm 0 Jul 8 12:20 Archivo de Ejemplo.txt

Para quitar todos los permisos a un archivo puedes utilizar el modo a= te pongo un ejemplo:

chmod a= archivo
$ ls -l
-rwxrwxrwx 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod a= ejecutable
$ ls -l
---------- 1 lm lm 0 Jul 8 12:20 ejecutable

Quitar permisos para un archivo y solo permitir leer el archivo al propietario, esto puede ser utilizado para los certificados de cifrado.

chmod a=,u=r archivo
chmod u=r,go= archivo
$ ls -l
-rw-r--r-- 1 lm lm 5 Jul 13 12:17 centificado.pem
$ chmod a=,u=r *.pem
$ ls -l
-r-------- 1 lm lm 5 Jul 13 12:17 centificado.pem

Para dar permisos de ejecución a un archivo de forma que cualquier usuario pueda usar ese programa y arrancarlo

chmod +x archivo
$ ls -l
-rw------- 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod +x ejecutable
$ ls -l
-rwxr-xr-x 1 lm lm 0 Jul 8 12:20 ejecutable

Pero si solo debe ser ejecutable para el usuario debería usarse este otro comando

$ ls -l
-rw------- 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod u=rwx ejecutable
$ ls -l
-rwx------ 1 lm lm 0 Jul 8 12:20 ejecutable

¿Que ocurre cuando un archivo tiene todos los permisos para todos los usuarios y deseas que solo pueda ser ejecutable por el propietario? podemos usar el comando de esta forma:

chmod a=-,u=rwx archivo
chmod u=rwx,go= archivo
$ ls -l
-rwxrwxrwx 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod a=,u=rwx ejecutable
$ ls -l
-rwx------ 1 lm lm 0 Jul 8 12:20 ejecutable

Prueba las diferentes combinaciones que puedes usar de los permisos rwx para asignarlos a los diferentes tipos de usuario u, g, o, y a. Esto te ayudará a saber que resultado esperar cuando apliques esta forma de asignar o remover permisos, en lo personal no me gusta mucho para mí es mas fácil la otra forma que te explico en seguida.

This entry was posted in Comandos Linux and tagged , , . Bookmark the permalink.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.