Mi Blog
Cómo asignar permisos con CHMOD en GNU/Linux

Cómo asignar permisos con CHMOD en GNU/Linux

(6 votos)

Si alguna vez te has preguntado como poder bloquear el acceso a un directorio en GNU/Linux a usuarios que no deben tener acceso ó si has tenido la curiosidad de saber como se usan los permisos en modo octal, este es tu tutorial para descubrir como funciona y su sencillo uso con diversos ejemplos. Un buen administrador de sistemas tendrá estos conceptos muy claros desde el primer día, es algo muy sencillo y obligatorio ;) Como es habitual, todo lo explicaré en modo consola, y no usaré para nada el entorno X-Window. ¿Quién necesita un entorno X en un servidor? :P

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

Cualquier duda, problema ó sugerencia, podéis dejar un comentario abajo del tutorial. ¡Allá vamos!

 

 

1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL

  • GNU/Linux Debian 8 64bits

 

 

2.- INTRODUCCIÓN

Los ficheros y directorios tienen una serie de permisos que pueden ser aplicados al propietario del grupo, a los usuarios del grupo al que pertenece el fichero y a otros usuarios. Podemos especificar permisos diferentes para cada uno de ellos para conseguir una versatilidad. Como se puede ver en la imagen, los atributos de los permisos de los ficheros y directorios, que podemos ver con "ls -l", se dividen en 4 "zonas".

La primera indica si es un fichero o directorio, la segunda (rojo) los permisos del propietario del archivo, la tercera (verde) los permisos del grupo del propietario y la última (azul) los permisos para el resto de usuarios.

CHMODAtributos de permisos

3.- PERMISOS BÁSICOS DE DIRECTORIOS Y FICHEROS Y COMO CAMBIARLOS

Existen 3 permisos básicos que se pueden aplicar sobre los ficheros y directorios:

Permiso de Lectura (r): Permite que el usuario pueda ver el contenido del fichero, por ejemplo, un fichero de texto ó una imagen. En los directorios significa que podemos acceder a ellos..

Permiso de Escritura (w): Permite que el usuario puede sobre escribir, editar ó modificar el contenido del fichero. En los directorios significa que se pueden crear o copiar ficheros dentro de él.

Permiso de Ejecución (x): Permite que el usuario ejecute el fichero si por ejemplo es un script de bash. En los directorios significa que podemos entrar en el directorio.

A continuación mostraré una serie de ejemplos con chmod de como cambiar los permisos de ficheros usando el método de GUO (Group, User, Owner):

SÍMBOLO USUARIO
u Usuario propietario del archivo
o Usuarios pertenecientes al mismo grupo que el propietario del archivo
g Usuarios ajenos al dueño y grupo del archivo
a Todos los tipos de usuarios mencionados anteriormente

Si omitimos el campo "símbolo" se aplicará por defecto "a".

OPERADOR ACCIÓN
+ Añadir un permiso
- Remover un permiso
= Establecer un permiso único

EJEMPLOS SOBRE UN FICHERO

A continuación una serie de ejemplos con chmod, partimos de un fichero inicial con los siguientes permisos (0644) :

# ls -l fichero_pruebas.txt
# -rw-r--r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Quitamos todos los permisos sobre el fichero:

# chmod = fichero_pruebas.txt
---------- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Permitimos la lectura solamente por el propietario del fichero:

# chmod u+r fichero_pruebas.txt
-r-------- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Permitimos lectura para todos los usuarios:

# chmod a+r fichero_pruebas.txt
-r--r--r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Permitimos lectura, escritura y ejecución al propietario del fichero, lectura y escritura para los usuarios del mismo grupo y solamente lectura para otros usuarios:

# chmod u+rwx,g+rw,o+r fichero_pruebas.txt
-rwxrw-r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Si queremos que el fichero tenga solo permisos de lectura y escritura para todo el mundo, ejecutaremos:

# chmod a+rw fichero_pruebas.txt
-rw-rw-rw- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Si queremos quitar un permiso, simplemente con el símbolo "-" en lugar de "+" podremos quitarlo, por ejemplo, partiendo del fichero anterior, si queremos quitarle el permiso de escritura a los miembros del grupo, ejecutaremos:

# chmod g-w fichero_pruebas.txt
-rwxr--r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

EJEMPLOS SOBRE UN DIRECTORIO

Partimos de un directorio inicial con los siguientes permisos (0755) :

# ls -l | grep directorio_pruebas
drwxr-xr-x 2 root root 4096 jun 22 21:01 directorio_pruebas

Permitimos solo acceso a root, todos los demás no podrán acceder:

# chmod u+rwx,g-rx,o-rx directorio_pruebas
# ls -l | grep directorio_pruebas
drwx------ 2 root root 4096 jun 22 21:01 directorio_pruebas

Como se puede ver, el funcionamiento de chmod en un directorio es exactamente igual al de un fichero.

4.- PERMISOS BÁSICOS EN MODO OCTAL

Tanto la asignación como la lectura de los permisos en modo octal es muy sencillo, solamente hay que memorizar la siguiente asignación de valores:

  • - 4 = r (read/lectura)
  • - 2 = w ( write/escritura)
  • - 1= x (execution/ejecución)

ATRIBUTOS VALOR PERMISOS
--- 0 Sin permisos
--x 1 Permiso de ejecución
-w- 2 Permiso de escritura
-wx 3 Permiso de escritura y ejecución
r-- 4 Permiso de lectura
r-x 5 Permiso de lectura y ejecución
rw- 6 Permiso de lectura y escritura
rwx 7 Permiso de lectura,escritura y ejecución

El VALOR es la suma de cada uno de los atributos, por ejemplo: rwx = 4+2+1=7 , r-x = 4 , wx = 3.

Por tanto, para asignar los permisos de los ficheros y directorios podemos realizar la siguiente tabla con sus correspondientes asignaciones:

ATRIBUTOS OCTAL PERMISOS PARA TODOS
--- chmod 000 Sin permisos
--x chmod 111 Permiso de ejecución
-w- chmod 222 Permiso de escritura
-wx chmod 333 Permiso de escritura y ejecución
r-- chmod 444 Permiso de lectura
r-x chmod 555 Permiso de lectura y ejecución
rw- chmod 666 Permiso de lectura y escritura
rwx chmod 777 Permiso de lectura,escritura y ejecución

EJEMPLOS SOBRE UN FICHERO

A continuación una serie de ejemplos, exactamente los mismos que los de arriba pero usando el método octal. Partimos de un fichero inicial con los siguientes permisos (0644) :

# ls -l fichero_pruebas.txt
# -rw-r--r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Quitamos todos los permisos sobre el fichero:

# chmod 000 fichero_pruebas.txt
---------- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Permitimos la lectura solamente por el propietario del fichero:

# chmod 0400 fichero_pruebas.txt
-r-------- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Permitimos lectura para todos los usuarios:

# chmod 0444 fichero_pruebas.txt
-r--r--r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Permitimos lectura, escritura y ejecución al propietario del fichero, lectura y escritura para los usuarios del mismo grupo y solamente lectura para otros usuarios:

# chmod 0764 fichero_pruebas.txt
-rwxrw-r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Si queremos que el fichero tenga solo permisos de lectura y escritura para todo el mundo, ejecutaremos:

# chmod 0666 fichero_pruebas.txt
-rw-rw-rw- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

Si queremos quitar un permiso, simplemente con el símbolo "-" en lugar de "+" podremos quitarlo, por ejemplo partiendo del fichero anterior, si queremos quitarle el permiso de escritura a los miembros del grupo, ejecutaremos:

# chmod 0744 fichero_pruebas.txt
-rwxr--r-- 1 root root 0 jun 22 20:22 fichero_pruebas.txt

EJEMPLOS SOBRE UN DIRECTORIO

Partimos de un directorio inicial con los siguientes permisos (0755) :

# ls -l | grep directorio_pruebas
drwxr-xr-x 2 root root 4096 jun 22 21:01 directorio_pruebas

Permitimos solo acceso a root, todos los demás no podrán acceder:

# chmod 0700 directorio_pruebas
# ls -l | grep directorio_pruebas
drwx------ 2 root root 4096 jun 22 21:01 directorio_pruebas

 

 

5.- ¿QUÉ MÉTODO ELEGIR?

Personalmente, prefiero el método octal antes que el normal, ya que es muchísimo más rápido y su dificultad es nula. Solamente debemos aprendernos la equivalencia de r=4, w=2, x=1 y ... ¡voilà!

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!