Vamos a ver cómo utilizar el comando chmod para añadir o quitar permisos de un archivo o carpeta/directorio, a un usuario o grupo en Linux.

Una de las características de Linux es que es un sistema operativo multiusuario, por lo que tiene seguridad para evitar que las personas accedan a los archivos confidenciales de los demás. Veamos como administrar estos permisos.

1. Introducción a los Permisos en Linux

Al ejecutar un comando “ls”, no se le da ninguna información sobre la seguridad de los archivos, ya que por defecto “ls” sólo lista los nombres de los archivos. Puede obtener más información utilizando un parámetro “-l” al lado del comando “ls”. Ejecute lo siguiente y mire la imagen a continuación:

ls -l

Por supuesto, si eres principiante con los comandos puedes echar un vistazo al siguiente post donde también mencionamos el comando chmod, el cuál utilizaremos:

También te recomendamos el siguiente libro:

Comando ls en Linux

Comando ls en Linux

Fíjese en el archivo que he creado Geek.txt. Hay mucha información en esas líneas (-rw-rw-r–…..). Vamos a analizarlo.

  1. El primer carácter casi siempre será un ‘-‘, lo que significa que es un archivo, o un ‘d’, en caso sea un directorio.
  2. Los nueve caracteres siguientes (rw-rw-r–) muestran la seguridad; hablaremos de ellos más adelante.
  3. La siguiente columna muestra el propietario del archivo. En este caso soy yo, mi userID es “alexynior”.
  4. La siguiente columna muestra el propietario del grupo del archivo. En mi caso quiero darle al grupo de personas “alexynior” un acceso especial a estos archivos.
  5. La siguiente columna muestra el tamaño del archivo en bytes.
  6. La siguiente columna muestra la fecha y hora en que se modificó por última vez el archivo.
  7. Y, por supuesto, la columna final muestra el nombre de archivo.

2. Permisos de Seguridad a Archivos y Carpetas

En primer lugar, debe pensar en esos nueve caracteres como tres conjuntos de tres caracteres (ver el cuadro en la parte inferior). Cada uno de los tres caracteres “rwx” se refiere a una operación diferente que puede realizar en el archivo.

 –  –  – –  –  – –  –  –
 r w x r w x r w x
user (usuario)group (grupo)other (otros)


2.1. Leer, Escribir y Ejecutar (Read, write, execute)

  • ‘r’ significa que usted puede “leer” el contenido del archivo.
  • ‘w‘ significa que usted puede “escribir“, o modificar, el contenido del archivo.
  • La ‘x’ significa que usted puede “ejecutar” el archivo. Este permiso se da sólo si el archivo es un programa o un script.

Si alguno de los caracteres “rwx” es reemplazado por un ‘-‘, entonces ese permiso ha sido revocado.

2.2. Usuario, Grupo y Otros (User, group, others)

  • u“: User- Los permisos de usuario se aplican sólo al propietario del archivo o directorio, no afectarán las acciones de otros usuarios.
  • g“: Group – Los permisos de grupo se aplican sólo al grupo que se ha asignado al archivo o al directorio, no afectarán las acciones de otros usuarios.
  • o“: Otros – Los otros permisos se aplican a todos los demás usuarios del sistema, éste es el grupo de permisos que le debe interesar.

2.3. Ejemplo de Permisos de Seguridad

Por ejemplo, considere que los permisos del usuario para algunos archivos son “rw-” como los tres primeros caracteres. Esto significa que el propietario del fichero (“alexynior”, es decir, yo) puede “leer” (mirar su contenido) y “escribir” (modificar su contenido). No puedo ejecutarlo porque no es un programa, sino un archivo de texto.

Si “rx-” es el segundo conjunto de 3 caracteres significa que los miembros del grupo “alexynior” sólo pueden leer y ejecutar los archivos.


Los tres últimos caracteres muestran los permisos permitidos a cualquiera que tenga un UserID en el sistema Linux. Digamos que tenemos el permiso “r–“. Esto significa que cualquier persona del sistema Linux puede leer, pero no pueden modificar el contenido del archivo ni ejecutarlo.

3. Cambiar los Permisos de Seguridad: chmod

El comando que se utiliza para cambiar los permisos de seguridad en los archivos se denomina “chmod“, que significa “cambio de modo”, porque los nueve caracteres de seguridad se denominan colectivamente “modo” de seguridad del archivo.

  1. El primer argumento que da al comando “chmod” es “u”, “g”, “o”. Utilizamos:
    u para el usuario
    g para el grupo
    o para otros,
    también puede utilizar una combinación de ellos (u, g, o).
    Esto especifica cuál de los tres grupos desea modificar.
  2. Después de esto debe utilizar:
    un ‘+’ para agregar o añadir permiso
    un ‘-‘ para la eliminar o revocar permiso
    y un “=” para asignar un permiso.
  3. A continuación, especifique el permiso r, w o x que desea cambiar.
    Aquí también se puede utilizar una combinación de r, w, x.
    Esto especifica cuál de los tres permisos “rwx” es el que desea modificar
  4. También puede utilizar comas para modificar varios permisos
  5. Finalmente, el nombre del archivo cuyo permiso está cambiando

3.1. Ejemplo de uso del comando chmod

Un ejemplo lo hará más claro.  Por ejemplo, si desea revocar el permiso de “leer” al usuario para el archivo “Geek.txt”, empezaría escribiendo:

chmod u-r Geek.txt

4. Las Notaciones Octales

También puedes usar notaciones octales como las siguientes:

 OctalBinarioModo de Archivo
0000
1001–x
2010-w-
3011-wx
4100r–
5101r-x
6110rw-
7111rwx

Utilizando la tabla de notación octal en lugar de ‘r’, ‘w’ y ‘x’. Cada numeración octal de dígitos se puede utilizar para cualquier tipo de grupo ‘u’, ‘g’, ‘o’.

Por lo tanto, los siguientes comandos serían los mismos.

  • Para proporcionar permiso de escritura, lectura y ejecución (código = 7) a todos los grupos.
chmod ugo + rwx [nombre_archivo] 
chmod 777 [nombre_archivo]
  •  Para proporcionar permiso de leer (código = 4) para el usuario, permiso de escribir y ejecutar (código = 3) para el grupo y, permiso de leer y ejecutar (código = 5) para otros.
chmod u=r, g=wx, o=rx [nombre_archivo] 
chmod 435 [nombre_archivo]
  • El siguiente comando dan todos los permisos (código = 7) al usuario y al grupo, y permiso de leer y ejecutar (código = 5) para otros.
Chmod 775 [nombre_archivo] 
chmod ug+rwx,o=rx [nombre_archivo]

5. Aprendizaje Adicional

El modelo de seguridad predeterminado de Linux es un poco inflexible. Para dar un acceso especial (como privilegios de modificación) a un grupo de personas, tienes que conseguir que el administrador del sistema cree un grupo con esas personas.

Además, si desea dar un conjunto diferente de privilegios de acceso (como acceso de lectura) a otro grupo de personas, no puede hacerlo porque sólo puede asignar un propietario de grupo por archivo o directorio. Para resolver este problema, puede utilizar las Listas de Control de Acceso -o ACL (Access Control Lists)-. Puede obtener más información de ello a través de este enlace: ACLs

Si te gustado el artículo por favor comparte 😉

¡Mantente actualizado!

Suscríbete a nuestro boletín semanal...

Suscríbete a nuestro boletín electrónico para recibir artículos útiles y ofertas especiales. No te perderás absolutamente de nada!

Enviaremos solamente boletines al email y no compartiremos su email.