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!
Cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.