Вы находитесь на странице: 1из 13

Conoce la Estructura de Permisos de

Linux al Detalle
Unix, al igual que Linux, naci como un sistema multiusuario, concebido
teniendo en mente que el sistema sera utilizado por mltiples usuarios. Seguro
que muchas veces has odo hablar del famoso esquema o estructura de
permisos de Linux, y de que es uno de los pilares sobre el que descansa la
seguridad del sistema. En este post te intentare explicar todo lo que se
respecto al tema, con el mximo grado de detalle que pueda, pero con
palabras simples para que que sea entendible para cualquier persona que
tenga las ganar de conocerlo, as que, sin ms entretenimiento, te dejo con el

ndice del post para que tu mismo te organices. Espero que lo disfrutes y nos

vemos en los comments

Como Funcionan los Permisos en Linu


Los permisos en Linux funcionan segn el mismo esquema que en Unix.
Bsicamente se aplican sobre archivos y sobre directorios, van asociados a
usuarios o grupos de usuarios, y pueden ser de lectura, de escritura o de
ejecucin
Dicho de otro modo, todos los archivos y directorios en Linux tienen asociado
un grupo de permisos que debe definir las posibilidades de lectura, escritura y
ejecucin que se aplican al usuario propietario del archivo, al grupo de usuario
al que pertenece, y al resto del mundo
Estructura de Usuarios y Grupos en Linu
Usuario
Linux es un sistema multiusuario en el que conviven simultneamente
diferentes usuarios desempeando roles muy diversos. Cada usuario se
identifica por un User ID o UID. A continuacin tienes explicado de un modo
sencillo los principales usuarios que podemos encontrar en Linux
Por un lado tenemos al usuario root o superusuario (UID = 0), que es el nico
que tiene permisos sobre todo el sistema, y el responsable de las tareas de
administracin del sistema, lates como la gestin y creacin de usuario, la
instalacin y desinstalacin de software, etc. Para cualquier accin que
necesite permisos de superusuario, el sistema requerir las credenciales de
root

Aparte, estn los que podramos denominar usuarios de sistema o usuarios


especiales. Son usuarios que van vinculados a ciertos servicios, y que pueden
asumir ciertos permisos relativos a este servicio. Se crean automticamente e
la instalacin del sistema operativo o con la instalacin de ciertas aplicaciones,
como es el caso del antivirus ClamAV. Algunos ejemplos de estos usuarios son
bin, mail, apache, clamav, pulse, avahi, syslog, colord, etc., pero realmente

hay muchos ms en cualquier instalacin estndar.


Por ltimo tenemos a los usuarios estndar, que representan las cuentas de
usuarios individuales y pueden haber tantos como se requiera. Cada cuenta de
usuario estndar posee su directorio personal dentro de la /home, en donde
quedan almacenados todos sus archivos personales, adems de las
preferencias de usuario de varias aplicaciones, archivos temporales, etc.
Todos los usuarios en Linux suelen estar contenidos en el archivo /etc/passwd.
Puedes visualizar el contenido del archivo con el comando que tienes a
continuacin (como ves, para visualizar el archivo necesitas permisos de
superusuario).
$ sudo cat /etc/passwd
Grupos
Para simplificar la gestin de permisos entre tantos usuarios, Linux agrupa
todos los usuarios dentro de grupos. De este modo, a la hora de especificar
ciertos permisos sobre un conjunto de usuarios, se pueden establecer los
permisos directamente sobre el grupo. Cada grupo se identifica por un Group
ID o GUID.
Cada usuario pertenece por defecto a un grupo con el mismo nombre, que se
conoce como grupo principal de usuario o grupo primario de usuario. Adems,
un mismo usuario puede estar dentro de otros grupos, que seran los grupos
secundarios.
Y de forma similar a los usuarios, los grupos en Linux quedan registrados en el
archivo /etc/group, y puedes visualizar su contenido con el siguiente comando:
$ sudo cat /etc/group
Todos y cada uno de los archivos en Linux son propiedad de un usuario y de un
grupo, y sobre cada archivo recaen unos permisos relativos al usuario, al
grupo, y al resto de usuarios o de grupos. Y con esto enlazamos directamente
con las siguientes lineas
Tipos de Permisos
Usuario, Grupo y Otros
De entrada, en cualquier fichero o carpeta hay tres tipos o niveles de permisos,
los que se aplican al propietario del archivo o carpeta, los que se aplican a
todos los usuarios del grupo al que pertenece el propietario, y los que se
aplican a todos los dems. A continuacin tienes explicado con ms detalle en
que consiste cada uno de ellos.
Permisos del Usuario: El primer nivel de permisos es el de usuario, y
bsicamente representa los permisos que se aplican al usuario o propietario de

un archivo.
Permisos del Grupo: El segundo nivel de permisos es el del grupo, que en
definitiva define los permisos de lectura, escritura y ejecucin que se aplican
solo a aquellos usuarios que pertenecen al mismo grupo de usuarios que el
propietario del archivo.
Permisos de Otros: Por ltimo, otros es el ultimo mbito sobre el que se pueden
establecer los permisos de archivos y carpetas, y representan la capacidad de
lectura, escritura y ejecucin por parte del resto de usuarios que no entran en
ninguno de los niveles anteriores
Permisos de Lectura, Escritura y Ejecucin
Como hemos dicho, sobre un archivo podemos definir bsicamente tres tipos
de permisos, los de lectura, los de escritura y los de ejecucin. Los permisos
funcionan sobre archivos o sobre directorios, pero existen algunas diferencias
de matiz que vers si sigues leyendo.
Lectura: Los permisos de lectura representan la posibilidad de poder acceder a
un archivo o carpeta y leer su contenido. En un directorio hacen referencia a la
posibilidad visualizar su contenido.
Escritura: Los permisos de escritura definen la posibilidad de acceder y
modificar el contenido de un archivo, o en caso de un directorio, la capacidad
de borrar o aadir archivos dentro de l.
Ejecucin: Los permisos de ejecucin indican la posibilidad de ejecutar un
determinado archivo en el sistema. Estos son los ms crticos, y solo deberan
conceder sobre aquellos usuarios y archivos para los que sea absolutamente
indispensable. En el caso de un directorio, los permisos de ejecucin
representan la capacidad de entrar dentro del directorio.
Permisos Especiales
Adicionalmente, existen tres bits de permisos especiales denominados setuid,
setgid y sticky bit. Bsicamente tratan de determinar ciertos tipos de permisos
que no quedan cubiertos con los anteriores. De forma resumida, podramos
decir que:
El bit setuid se puede asignar a archivos ejecutables, y en este caso determina
la posibilidad de que el proceso vinculado al archivo pueda adquirir los
permisos del propietario del archivo en el momento de su ejecucin.
Normalmente se utiliza para que un usuario normal pueda ejecutar un cierto
archivo ejecutable con permisos elevados. Un claro ejemplo lo tenemos en su.
El bit setgid, de forma anloga al caso de setuid, lo que determina es que el
proceso se pueda ejecutar con los permisos del grupo al que pertenece el

archivo
Por ltimo, sticky bit se puede asociar a directorios en los que tienen acceso
varios usuarios con permisos de escritura, y bsicamente permite evitar que un
usuario pueda borrar archivos de otro usuario dentro del mismo directorio.
Tienes informacin ms detallada sobre estos tres tipos de permisos especiales
en el blog de rm-rf.
Visto ya todo esto, creo que es el momento de pasar a ver con ms detalle
como se representan los permisos, y como puedes conocer los permisos
asignados a un determinado archivo y directorio. Ahora empieza lo ms
interesante
Como se representan los Permisos
Representacin Estndar
Los permisos asociados a un archivo o carpeta se suelen representar en lnea.
El primer carcter se reserva para los denominados permisos especiales
(bsicamente hace referencia al tipo de archivo), seguido de tres caracteres
para los permisos del propietario del archivo, otros tres para los permisos del
grupo, y los tres ltimos para los permisos del resto de usuarios.

El primer bit indica el tipo de archivo. Generalmente pueden darse los


siguientes casos:
- | Se trata de un archivo regular
d | Se trata de un directorio
l | Se trata de un enlace simblico
b | Se trata de un archivo especial de bloques
El resto de los 9 bits que vienen a continuacin representan los permisos del
usuario propietario del archivo o directorio, los permisos del grupo al que
pertenece este usuario, y los permisos del resto de usuarios. Aqu tienes el
significado:
r | Se dan permisos de lectura
w | Se dan permisos de escritura
x | Se dan permisos de ejecucin
- | No se da el permiso de lectura, escritura o ejecucin
Representacin Numrica o en Octal
Tambin hay la representacin numrica de permisos, que parte bsicamente
de la representacin anterior, pero sustituye cada grupo rwx por un nmero.
Ese nmero se obtiene al sustituir cada tipo de permiso (r, w y x) por un 1 o 0,
dependiendo de si se da o no el permiso).

Al final, del nmero en binario obtenido, el nmero decimal que le corresponde


es el que se utiliza para representar las diferentes combinaciones rwx en cada
grupo o nivel de permisos (usuario, grupo y otros).
r-- | 100 | 4
-w- | 010 | 2
--x | 001 | 1
Teniendo en cuenta esto, por cada nivel de permisos (usuario, grupo u otros)
podemos sacar un nmero que es la suma de todos los anteriores,
dependiendo de los permisos que se tengan. Con esto podemos llegar a tener
las siguientes combinaciones:
rwx | 111 | 7
rw- | 110 | 6
r-x | 101 | 5
r-- | 100 | 4

-wx | 011 | 3
-w- | 010 | 2
--x | 001 | 1
--- | 000 | 0
Teniendo esto en cuenta, la representacin es igual que en el caso anterior,
pero para cada uno de los niveles de permisos (usuario, grupo y otros) se
sustituye la combinacin de los tres tipos de permisos por un numero del 1 al
7, en funcin de las combinaciones anteriores.
Si sigues leyendo, un poco ms adelante tienes varios ejemplos de archivos y
directorios, con sus permisos en formato estndar, y su equivalente en forma
octal.
Como puedo conocer los Permisos de un Archivo o Directorio
Hay varias formas de conocer los permisos de un archivo o directorio de tu
sistema. Una opcin es hacerlo desde el mismo navegador de archivos y
visualizndolo de forma grfica, pero es un poco lento y a la prctica resulta
mucho ms cmodo y rpido hacerlo desde la lnea de comandos.
Ver Permisos desde el Explorador de Archivos
Para ver los permisos de un archivo o directorio desde el mismo navegador de
archivos, en Ubuntu o derivados es tan sencillo como hacer clic derecho sobre
un archivo en cuestin, luego hacer clic en Propiedades, y dirigirte en la
pestaa Permisos.
Archivos de texto dentro de /home/user
En esta imagen tienes el aspecto que tienen los permisos por defecto de
cualquier archivo de texto (en este caso un archivo .odt) ubicado dentro de la
carpeta Documentos del directorio de usuario. Como puedes ver, el propietario
y el grupo tienen permisos de lectura y escritura sobre el archivo, mientras que
el resto de usuarios solo tienen permiso de lectura.

Directorios dentro de /home/user/


Ahora si te parece podemos visualizar los permisos de los directorios que se
encuentran dentro de /home. Como puedes ver en la captura de abajo (para
este ejemplo he cogido la carpeta Documentos), el usuario tiene permisos para
crear y eliminar archivos (seran permisos de lectura y escritura), mientras que
el grupo y el resto de usuarios tienen solo permisos para acceder a archivos
(permisos de lectura).

Ver Permisos desde la lnea de comandos con #ls -l


Otra forma mucho ms visual y precisa de ver los permisos que tienen los
archivos contenidos en un directorio es a travs de la lnea de comandos, con
el comando #ls -l. Esta opcin del comando te listar todos los archivos y
directorios dentro del directorio de trabajo actual, junto con los permisos
asociados.
$ ls -l
Archivos dentro de /home/user
Si aplicas el comando estando en un directorio cualquiera que contenga
archivos, vers un listado con todos los archivos y directorios, junto con sus
permisos. Si te parece vamos a analizar los permisos del archivo de texto que
hemos analizado antes:
$ ls -l Documentos
-rw-rw-r-- 1 user group 27057 jun 28 12:37 nombrearchivo

He puesto el mismo archivo del ejemplo de antes, para ver la equivalencia.


Como ves, el usuario y el grupo tienen permisos de lectura y escritura, y el
resto de usuarios permisos de solo lectura. Igual que antes pero de un modo
ms preciso. El equivalente en formato numrico seria:
664
Directorios dentro de /home/user/
Ahora, al igua que hemos hecho desde el explorador de archivos, podemos
analizar los permisos del directorio Documentos. Para ello, estando en la
terminal y aplicando #ls -l obtendrs un listado con todos los directorios dentro
de /home, incluida la carpeta Documentos.
$ ls -l
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x

2
2
2
2
2
2
2
2

user
user
user
user
user
user
user
user

group
group
group
group
group
group
group
group

4096
4096
4096
4096
4096
4096
4096
4096

jun
jun
jun
jun
jun
jun
jun
jun

28
28
28
28
28
28
28
28

12:42
12:42
12:42
12:42
12:42
12:42
12:42
12:42

Descargas
Documentos
Escritorio
Imgenes
Msica
Plantillas
Pblico
Vdeos

Realmente vers un listado con todo el contenido que tengas dentro de la


/home, pero solo he puesto el los directorios para compararlo con el resultado
obtenido a travs del navegador de archivos en el caso de Documentos. Como
ves, el usuario tiene permisos de lectura, escritura y ejecucin, mientras que el
grupo y el resto de usuarios solo lectura y ejecucin. El equivalente en forma
numrica es:
755
Recuerda que los permisos de ejecucin sobre un directorio representan la
capacidad de poder entrar dentro del directorio. En este caso, todos los
usuarios pueden entrar dentro los directorios de la /home de un usuario
concreto y ver su contenido, pero solo el usuario propietario puede modificar el
contenido de dentro.
Si quieres ms ejemplos
Si tienes curiosidad, con el comando #ls -l ya has visto que puedes visualizar
los permisos de todos los archivos y directorios que se te ocurren. Eso s, la
posibilidad de ejecutar este comando sobre un directorio lo determina el hecho
que tenga permisos de lectura, por lo que en algunos casos quiz no obtengas
resultado y debas hacerlo a travs de sudo utilizando los permisos de root.

Вам также может понравиться