You are on page 1of 7

PERMISOS EN LINUX

El sistema de permisos en Linux se basa en un esquema de usuarios/grupos que lo convierte en la base


principal de la seguridad en Linux, a estos usuarios y grupos se les asignan distintos derechos sobre los
archivos y directorios.
Esta es una de las caractersticas que ayudan a que Linux sea casi inmune a los Virus de computadora,
los virus deben ser capaces de escribir sobre un archivo para poder infectarlo y ejecutarse de alguna
manera para poder infectar mas archivos, con el sistema de permisos de Linux los virus no pueden
copiarse a cualquier archivo, si el usuario carece de permisos el virus no podr infectar ms archivos y
por lo tanto no podr reproducirse.
Todos los archivos y directorios en Linux tienen permisos que verifican quien puede hacer o no alguna
accin con l.

Cules son los permisos?


Los permisos propiamente dichos son tres:
r: read (lectura):

Cuando el permiso de lectura est activo sobre un directorio significa


que se podr listar los recursos almacenados en l, si est asignado a un archivo se podr leer
su contenido.
w: write (escritura): Cuando el permiso de escritura est activo sobre un directorio
significa que se podr crear y borrar archivos en su interior, si esta activado para un archivo
significa que se podr modificar su contenido.
x: execute (ejecucin): Si el permiso de ejecucin est activo sobre un directorio
significa que el usuario podr realizar otras funciones dentro de l mediante los otros permisos
de lectura y escritura, y si est activo sobre un archivo se podr ejecutarlo desde la lnea de
comandos.

Y donde estn los permisos?


Para poder ver los permisos de los archivos y directorios es necesario ejecutar el siguiente comando:
$ ls l

Este comando nos dar una salida similar a la siguiente:


drwxr-xr-x
drwxr-xr-x
-rw-r--r--rw-r--r--rw-r--r-drwxr-xr-x

3
5
1
1
1
2

raul
raul
raul
raul
raul
raul

raul
raul
raul
raul
raul
raul

4096 2005-02-16 14:47 Desktop


4096 2005-02-16 12:42 GNUstep
246417 2005-03-03 13:13 foto1.png
232505 2005-03-03 13:14 carta2.abw
239618 2005-03-03 13:14 informe.abw
4096 2005-02-16 12:42 tmp

Ahora describamos la salida que hemos obtenido:

Con la siguiente lnea interpretamos la informacin as:


- rw- r-- r-- 1 raul raul 246417 2005-03-03 13:13 foto1.png

1 2
3
4
5 6
7
8
9
10
11

1 : Tipo de archivo = es un archivo regular


2 : Permisos = los permisos para el propietario son de lectura y escritura
3 : Permisos = el grupo tiene permiso de slo lectura
4 : Permisos = los otros usuarios tienen el permiso de slo lectura
5 : Enlace Fsico = tiene un enlace fsico
6 : Propietario = el usuario raul es el propietario de este archivo
7 : Grupo = este archivo pertenece al grupo raul
8 : Tamao = su tamao es de 246417 bytes
9 : Fecha = fue creado el 03 de marzo de 2005
10 : Hora = a 13:13 horas
11 : Nombre = el archivo se llama foto1.png
Como habrs apreciado los permisos estn asignados en grupos de 3 (rwx) y corresponde al:
propietario (owner: dueo del archivo o directorio), grupo (group: grupo del archivo o directorio) y
otros (others: otro usuario diferente del propietario).

En la siguiente imagen resaltamos nuevamente la ubicacin de los permisos en caso no lo hayamos


notado:

COMANDOS RELACIONADOS
Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el grupo de un
archivo y/o directorio respectivamente:
Comando chmod : se utiliza para cambiar los permisos del archivo o directorio
$ chmod [permisos] [archivo/directorio] [opciones]

Comando chown : se utiliza para cambiar el propietario del archivo o directorio


# chown [nuevo usuario propietario] [archivo/directorio] [opciones]

Comando chgrp : utilizado para cambiar el grupo del archivo o directorio


# chgrp [nuevo grupo] [archivo/directorio] [opciones]

COMO SE CAMBIAN LOS PERMISOS?


Para cambiar los permisos se puede hacer de 2 maneras:
1. Utilizando taquigrafa basada en caracteres, o
2. Utilizando nmeros.

1. CAMBIO DE PERMISOS UTILIZANDO TAQUIGRAFA DE CARACTERES


Para poder utilizar la taquigrafa basada en caracteres tomemos en cuenta la siguiente lista con su
respectiva correspondencia:
Smbolo

Identidades

Permisos

Acciones

Descripcin

Es el usuario propietario del archivo o directorio

Es el grupo al que pertenece el archivo o directorio

Otros usuarios, el resto del mundo, ni el propietario ni su grupo

Todo el mundo propietario, grupo y otros

Acceso de lectura

Acceso de escritura

Acceso de ejecucin

Aade los permisos

Elimina los permisos

el nico permiso

Vamos a practicar con el comando chmod, para ello lo primero que haremos ser crear el archivo
foto1.png para ver los cambios de permisos, as que les recomiendo seguir la secuencia:
Ejemplo

Descripcin
creamos el archivo foto1.png

foto1.png

$ chmod a-rwx
foto1.png

quitamos todos los permisos al archivo foto1.png

---------

$ chmod u+rwx
foto1.png

aadimos todos los permisos para el propietario

rwx------

$ chmod g+x
foto1.png

aadimos el permiso de ejecucin para el grupo

rwxx---

$ chmod o+r
foto1.png

aadimos el permiso de lectura para los otros usuarios

rwxxr--

$ chmod u-rw
foto1.png

eliminamos los permisos de lectura y escritura para el


propietario

--xxr--

establecemos como unico permiso de lectura para los 3


grupos

rrr--

establecemos los permisos de lectura y ejecucin para los 3


grupos

r-xr-xr-x

$ touch foto1.png

$ chmod a=r
foto1.png
$ chmod a=rx
foto1.png

Resultado

$ chmod a=foto1.png

quitamos todos los permisos

----------

$ chmod u+rx,o+x
foto1.png

aadimos los permisos de lectura y ejecucin al propietario y


ejecucin a otros

r-x-----x

$ chmod g+rx,o-x
foto1.png

aadimos permiso de lectura y ejecucin al grupo y


eliminamos permiso de ejecucin a otros

r-xr-x---

aadimos permiso de escritura y ejecucin al propietario y


grupo, y eliminamos permiso de ejecucin a otros

rwxrwx---

permite a cualquiera modificar el contenido e incluso


eliminar el archivo

rw-rw-rw-

$ chmod ug+wx,o-x
foto1.png
$ chmod a=rw
foto1.png

Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan efecto sobre todos
sus subdirectorios y archivos slo deberemos aadir la opcin R. Ejemplo:
$ chmod a=rw DIRECTORIO R

2. CAMBIO DE PERMISOS UTILIZANDO NMEROS


Cada permiso tienen asignado un valor, incluso cuando el permiso no est activo. Para poder utilizar
los nmeros tendremos que tener en cuenta la siguiente tabla con sus respectivos valores:
r
w
x
-

=
=
=
=

4
2
1
0

(lectura)
(escritura)
(ejecucion)
(sin permisos)

Cuando asignamos los permisos utilizando nmeros debemos tener en cuenta que primero se sumarn
los valores y dicho resultado ser el que se coloque, aqu una tabla que muestra dichos valores:
Valor Permisos

Descripcin

---

El valor cero significa que no se han asignado permisos

--x

slo se ha asignado el de ejecucin

-w-

slo permiso de escritura

-wx

permisos de escritura y ejecucin

r--

slo permiso de lectura

r-x

permisos de lectura y ejecucin

rw-

permisos de lectura y escritura

rwx

permisos: lectura, escritura y ejecucin

Los permisos por nmeros se asignan en grupos de 3, es decir, para el propietario-grupo-otros, no


es factible asignar solo para uno o dos de ellos.

Ejemplos:
rw------- (600)
rw-r--r-- (644)

Slo el propietario tiene el derecho de leer y escribir.


Slo el propietario tiene los permisos de leer y escribir; el grupo y los
dems slo pueden leer.
rwx------ (700) Slo el propietario tiene los derechos de leer, escribir y ejecutar el
archivo.
rwxr-xr-x (755) El propietario tiene los derechos de leer, escribir y ejecutar; el grupo y
los dems slo pueden leer y ejecutar.
rwx--x--x (711) El propietario tiene los derechos de lectura, escritura y ejecucin; el
grupo y los dems slo pueden ejecutar.
rw-rw-rw- (666) Todo el mundo puede leer y escribir en el archivo. No es una buena
eleccin!
rwxrwxrwx (777) Todo el mundo puede leer, escribir y ejecutar.
Tampoco es buena eleccin!
Utilizaremos el mismo ejercicio anterior para poder practicar con los permisos utilizando nmeros, el
nico cambio que haremos ser utilizar otro archivo llamado foto2.png:
Ejemplo
Descripcin
Resultado
$ touch foto2.png

creamos el archivo foto2.png

foto2.png

$ chmod 000
foto2.png

quitamos todos los permisos al archivo foto2.png

----------

$ chmod 700
foto2.png

aadimos todos los permisos para el propietario

-rwx------

$ chmod 710
foto2.png

aadimos el permiso de ejecucin para el grupo

-rwxx---

$ chmod 714
foto2.png

aadimos el permiso de lectura para los otros usuarios

-rwxxr--

$ chmod 114
foto2.png

eliminamos los permisos de lectura y escritura para el


propietario

---xxr--

$ chmod 444
foto2.png

establecemos como unico permiso de lectura para los 3


grupos

-rrr--

$ chmod 555
foto2.png

establecemos los permisos de lectura y ejecucin para los 3


grupos

-r-xr-xr-x

$ chmod 000
foto2.png

quitamos todos los permisos

-----------

$ chmod 501
foto2.png

aadimos los permisos de lectura y ejecucin al propietario y -r-x-----x


ejecucin a otros

$ chmod 550
foto2.png

aadimos permiso de lectura y ejecucin al grupo y


eliminamos permiso de ejecucin a otros

-r-xr-x---

$ chmod 770
foto2.png

aadimos permiso de escritura y ejecucin al propietario y


grupo, y eliminamos permiso de ejecucin a otros

-rwxrwx---

$ chmod 666
foto2.png

permite a cualquiera modificar el contenido e incluso


eliminar el archivo

-rw-rw-rw-

CAMBIANDO PROPIETARIOS Y GRUPOS


Otra de los puntos a la hora de establecer permisos es la necesidad de poder cambiar el propietario y
grupo del archivo o directorio, para hacer esta operacin debe estar como root y los usuarios y grupos
que utilizar deben haber sido creados previamente.

Cambiando el propietario
Utilizamos el comando chown explicado lneas arriba:
# chown clases foto1.png

# estamos cambiando el propietario del archivo, ahora el usuario


clases ser el propietario del archivo foto1.png
# chown raul foto2.png

# el usuario raul ser el propietario del archivo foto2.png

Si vamos a cambiar el propietario de un directorio y con todos sus subdirectorios y archivos en forma
recursiva utilizaremos la opcin R:
# chown clases datos/ R

# el usuario clases sera el nuevo propietario de todos los archivos y


subdirectorios que estn dentro del directorio datos/

Cambiando el grupo
Utilizamos el comando chgrp explicado lneas arriba:
# chgrp clases foto1.png
foto1.png ser del grupo clases

# estamos cambiando el propietario del archivo, ahora el archivo

# chgrp raul foto2.png

# el archivo foto2.png ser del grupo raul

Si vamos a cambiar el grupo de un directorio y con todos sus subdirectorios y archivos en forma
recursiva utilizaremos la opcin R:
# chgrp clases datos/ R

del grupo clases

# todos los archivos y sub directorios del directorio datos/ sern