La mayor comunidad de Debian en español

Permisos de ficheros


Creo que para un novato en GNU/Linux esto podría ser un buen comienzo y no he visto nada al respecto, salvo la lista de comandos, así que dejo esto para los recién iniciados. Sólo comentar que todo lo de este minimanual es aplicable a cualquier sistema *nix (que yo conozca).

BREVE DESCRIPCIÓN DE LOS PERMISOS DE ARCHIVOS EN GNU/LINUX
Santos Martínez Estrada – 6 de junio de 2007

Este documento puede copiarse, modificarse y redistribuirse de acuerdo a la licencia GNU Free Documentation License versión 1.2 o posterior. Se puede encontrar la licencia completa en la dirección: http://www.gnu.org/licenses/fdl.txt.

Permisos generales

Todos los archivos GNU/Linux tienen tres grupos de permisos generales: los permisos de propietario, los de grupo y los del resto. Estos permisos están representados por las letras w, x y r, para cada miembro, de tal forma que tendríamos tres grupos con estas letras o guiones en caso de faltar el permiso. La salida estándar para comprobar estos permisos es mediante el comando ls -l y nos daría algo así:

#-rw-r----- 1 santos users 80 2007-05-28 15:10 firmasantos

Esta es la salida al comando ls -l firmasantos, el cual nos proporciona también la información de propietario y grupo, así como el tamaño del archivo y la fecha y hora de la última modificación del mismo. Observaréis que no coinciden los dígitos, tres letras por tres grupos son nueve y sin embargo hay diez; esto es por que el primer dígito se reserva para agregar la opción d cuando se trata de un directorio. Lo primero es explicar a qué corresponde cada letra:

w- Este dígito da permisos de modificación al usuario/grupo/resto
x- Permiso de ejecución al usuario/grupo/resto
r- Permiso de lectura al usuario/grupo/resto

Ahora pasamos a explicar los grupos de dígitos:
Tenemos el primer grupo de tres (rw-) que serían los permisos del propietario (santos), equivalentes a lectura y escritura (read-write). Los siguientes tres dígitos (r--) corresponden al grupo (users), que solamente pueden leer el archivo; el tercero (---) es para el resto, con ningún permiso sobre el archivo.

Comandos de modificación de permisos

Entendido lo básico, veamos cómo se pueden hacer cambios en los permisos de los archivos. Por supuesto, sólo el propietario del archivo (si tiene los permisos adecuados) y el usuario root puede hacerlos. El comando chmod es el encargado de hacer estos cambios de varias formas:

A) Ejecutando el comando seguido de una secuencia de tres números, que corresponden a cada uno de los grupos y cada número a una escala de permisos. Estos números son:
El 7 – permisos totales
El 6 – lectura y escritura
El 5 – lectura y ejecución
El 4 – lectura
El 3 – escritura y ejecución
El 2 – escritura
El 1 – ejecución
El 0 – sin permisos

Esta es la forma más habitual de hacer los cambios; vamos a poner un ejemplo para comprenderlo mejor:

#chmod 730 firmasantos
#ls -l firmasantos
#-rwx-wx--- 1 santos users 80 2007-05-28 15:10 firmasantos

Hemos cambiado los permisos al propietario (7) a “todos” y al grupo (3) a escritura y ejecución. El resto de los usuarios sigue sin permisos de ninguna clase (0).

B) Ejecutando el comando seguido de tres dígitos: El indicativo de usuario (u), grupo (g) resto (o) y todos (a), seguido de los signos (+) ó (-) y el bit de control de permisos (w,x,r) de esta forma:

#chmod g+r firmasantos
#ls -l firmasantos
#-rwxrwx--- 1 santos users 80 2007-05-28 15:10 firmasantos
Con lo que hemos dado permisos de lectura al grupo users.

Otro ejemplo:
#chmod u-x firmasantos
#ls -l firmasantos
#-rw-rwx--- 1 santos users 80 2007-05-28 15:10 firmasantos
Ahora hemos quitado el permiso de ejecución al propietario del archivo. De la misma forma podríamos dar permisos de lectura a todos los usuarios con el comando:
#chmod a+r firmasantos

Como no podía ser de otra manera, también es posible cambiar el propietario y grupo de los archivos. Esto se hace a través de los comandos chown (cambio de propietario) y chgrp (cambio de grupo) de la forma:
#chown usuario nombre_archivo ; para verlo de forma real:
#chown troll firmasantos
#ls -l firmasantos
#-rw-rwx--- 1 troll users 80 2007-05-28 15:10 firmasantos
Hemos cambiado el propietario del archivo que ahora es troll.

En el caso de chgrp sería lo mismo aplicado al grupo:
#chgrp admins firmasantos
Si deseamos hacer los cambios de forma recursiva (un directorio con todo lo que contiene) agregaremos la opción -R en cualquiera de los comandos utilizados.

Permisos especiales

Existen una serie de permisos especiales sobre los ficheros GNU/Linux, que son los bits SUID, SGID y STYcky.

Los dos primeros indican un permiso especial de ejecución en ciertos binarios, que han de ejecutarse como root aunque los lance un usuario. Esto es peligroso, pero necesario (pues no, los sistemas unix no son perfectos) en algunos casos. Cuando los bits SUID y SGID están activados, veremos un cambio en el bit de ejecución, habrá una s en vez de una x. Esto dará permisos de ejecución a un usuario/grupo aunque no lo tenga. Son los casos de los comandos mount, umount, passwd, etc.

El tercero es el bit STIcky ó de permanencia. Esta opción se utilizaba en sistemas antiguos (que no se van a comentar aquí), hoy en día su uso se reduce al efecto del STIcky bit activado sobre un directorio: en este caso se indica al sistema operativo que, aunque los permisos normales sean de lectura y escritura para cualquier usuario (777), sólo el propietario de cierto archivo y el administrador pueden borrar un archivo guardado en un directorio con estas características.

Creo que no es necesario decir que los bits SUID y SGID no deben tocarse a menos que se sepa lo que se hace.

Por supuesto, hay más opciones en estos comandos, pero son las básicas para comenzar con el uso de un sistema GNU/Linux.

Relacionado con Permisos de ficheros



Buscador

Búsqueda avanzada

Inicio de sesión

Encuesta

¿Que haces cuando tienes un problema?
Utilizo google hasta para encontrar la hora
70%
Leo los manuales hasta hartarme
8%
Utilizo esDebian que para algo está
15%
Esto con windows no pasaba
3%
Formateo
0%
Mirar en las listas de correo y bug tracker
0%
Ninguna de las anteriores
5%
Total de votos: 66

En línea

En este momento hay 12 usuarios y 35 invitados en línea.