Está en la página 1de 5

Los permisos de archivos en Linux explicados de manera sencilla

18/02/2016 de victorhck
Si usas GNU/Linux conocer los sistemas de permisos de este sistema
operativo es algo bsico, importante y ahora sencillo!!

Una de las cosas bsicas en GNU/Linux es el tema de los permisos de los


archivos. Comprender esto debera considerarse como algo esencial. El tema
de los permisos de archivos en GNU/Linux suele creerse que es algo
complicado, pero veremos que no es as, y trataremos de verlo de manera
sencilla y clara.
El sistema de permisos que utiliza GNU/Linux est directamente tomado de
los permisos de archivos que utiliza UNIX. Un sistema potente que apenas
ha sufrido variaciones durante todos estos aos y que sigue siendo totalmente
vigente.
Entender el sistema de archivos de GNU/Linux no es algo que sea para gurs,
ni algo que te vaya a llevar varios das de estudio.
Echando un vistazo a las piezas
La primera cosa que necesitas entender es a qu se aplican los permisos de
archivos. Efectivamente lo que haces con esto es aplicar permisos a un grupo.
Pero qu permisos son y a qu grupos se refieren?
Existen tres tipos de permisos que se pueden aplicar, estos son:
lectura: otorga al grupo el permiso de poder leer el archivo. Se indica
con la letra r (inicial de read, que significa leer en ingls)
escritura: otorga al grupo el permiso de poder editar el archivo
pudiendo escribir en l. Se indica con la letra w (inicial de write, que
significa escribir en ingls)
ejecucin: otorga al grupo el permiso de poder ejecutar el archivo. Se
indica con la tecla x (que viene de la palabra execute, que significa
ejecutar en ingls)
Para entender mejor cmo esto es aplicado a un grupo, podras, por
ejemplo, darle a un grupo de usuarios el permiso de leer y escribir en
un fichero, pero no la capacidad de poder ejecutarlo (si se trata por
ejemplo de un script). O podras darle los permisos de poder leer y ejecutar
un archivo, pero no de poder modificarlo. Incluso puedes darle a un grupo
todos los permisos de lectura, escritura y ejecucin de un archivo,o ningn
permiso quitndoselos todos.
Visto el tema de los tres permisos, veamos ahora el tema de los grupos, del
que has estado leyendo. Los grupos a los que nos podremos referir son cuatro:
usuario: el propietario actual del archivo (nos referimos a este grupo
con la letra u)
grupo: un grupo de usuarios de un archivo (nos referimos a este grupo
con la letra g)
otros: otros usuarios distintos que no se encuentran en el grupo (nos
referimos a este grupo con la letra o)
todos: todos los usuarios (nos referimos a este grupo con la
letra a de all, que significa todos en ingls)
En trminos generales, slo tendremos que trabajar con los tres primero
grupos. El grupo de usuarios todos es slo utilizado como un atajo (despus
veremos qu quiero decir con esto).
Si abres una terminal, y en la lnea de comandos, escribes el comando ls -l,
vers un listado de todos los archivos y directorios que hay dentro del
directorio de trabajo actual en el que nos encontremos. Yo he hecho eso y
puedes ver el resultado en la imagen que encabeza el artculo.
Vemos varios directorios y un archivo de texto. Fijmonos en los permisos de
este ltimo. Estn representados con las siguientes letras:
- rw- r-- r--
El primer guin lo vamos a desestimar. Si te fijas los directorios estn marcados
con una d inicial para indicar que son directorios, y el archivo no, ya que
evidentemente no es un directorio. Centrmonos en las letras posteriores,
y dividmoslas en tres apartados de tres letras/guiones cada uno:
rw-

El orden en el que se muestran es siempre el mismo y muy a tener en cuenta


tanto en los permisos como en los grupos. El orden es siempre el siguiente:
lectura / escritura / ejecucin | para los permisos

usuario / grupo / otros | para los grupos

Con lo explicado hasta ahora podemos ya saber que en el ejemplo del archivo
que se muestra en la captura el usuario tiene otorgados los permisos de lectura
y escritura, el grupo al que pertenece el usuario tiene otorgado el permiso de
lectura y otros tiene tambin permiso slo de lectura. Si alguno de los grupos
tuviera el permiso de ejecutar ese archivo (en el caso de que se pudiera porque
fuera un script) entonces como hemos visto estara representado con una
x. Sencillo, verdad?
Equivalente numrico
Hagmoslo ahora un poco ms complejo (no te asustes, que vers que no es
para tanto). Cada permiso que hemos expresado con letras, tambin
puede ser representado con nmeros, lo que en algn caso nos puede
resultar til. Estas equivalencias son:
lectura = 4

escritura = 2
ejecucin = 1

En el ejemplo del archivo que hemos visto anteriormente, la sustitucin de las


letras de los permisos por nmeros seran la siguiente:
- 42- 4-- 4--
Ahora podemos sumar los nmero de los distintos grupos entre s. Los permisos
del usuario sera 4+2 lo que da 6. Los permisos de grupo y otros son
simplemente 4, por tanto no hay nada que sumar. El equivalente
numrico quedara tal que as:
644
Manipulando los permisos
Para aadir, o quitar permisos a un archivo se utiliza el comando chmod, te
aconsejo que leas la pgina man de este comando. Para otorgar o quitar
derechos podremos utilizar tanto las letras referidas a permisos y
grupos que hemos visto como las equivalencias numricas, lo que nos
sea ms fcil o lo que necesitemos en cada momento.
Y ahora veamos cmo poder manipular esos permisos. Lo primero aclarar
que para poder manipular los permisos de un archivo debes ser el
propietario de ese archivo o debes tener el permiso de poder editar el
archivo, o tener acceso de superusuario con poderes totales (recuerda
que un gran poder conlleva una gran responsabilidad) mediante los comandos
su o sudo.
Debido a eso, no puedes ir de directorio en directorio cambiando los permisos
de todo lo que te apetezca!

Sigamos con nuestro archivo del ejemplo, y supongamos que ahora le


llamaremos script.sh y que es un script en bash y necesita poder ejecutarse
pero que slo quieres darte a ti mismo permiso de ejecucin.
Con todo lo que has leido quizs pienses necesito aadir una x de ejecucin al
primer grupo que es el usuario, osea, yo mismo. Correcto, ahora veamos
cmo aadir esa x a nosotros mismos mediante la lnea de comandos. Para
ello tan simple como:
chmod u+x script.sh
As de simple. Indicndole con la u de user que queremos aadir el permiso
de ejecucin con la x al archivo. Prubalo con un archivo tuyo, y vers que no
es difcil de entender y de ejecutar.
Ahora hagmoslo un poco ms interesante. Supongamos que por alguna razn
un archivo tiene el permiso de ejecucin para todos los grupos algo parecido a:
-rwx-r-x-r-x. Si quieres quitar el permiso de ejecutarlo al grupo de otros
tan sencillo como
chmod ugo-x script.sh
Efectivamente ugo=usuario/grupo/otros y con -x eliminas este permiso.
Otra manera de hacerlo sera con el siguiente atajo (te acuerdas lo que
coment al inicio del artculo?):
chmod a-x script.sh
Ten cuidado al quitar o dar permisos a un archivo si utilizas este mtodo.
Permisos a directorios
Tambin puedes otorgar o quitar permisos a directorios con el
comando chmod. Cuando creas un nuevo directorio como usuario, lo normal
es crearlo con los siguientes permisos
drwxrwxr-x
Cabe sealar que los archivos que creemos dentro del directorio no
tienen porque heredar estos permisos, pudiendo tener otros distintos.
Como ya hemos visto, la d inicial indica que es un directorio. Como
puedes ver en este ejemplo tanto el usuario como el grupo tienen plenos
poderes sobre el directorio. Pero supongamos que dentro de un directorio
queremos darles a todos los archivos que contiene unos permisos iguales para
eso aadiremos al comando chmod el parmetro -R que indica que
efectuar de manera recursiva la asignacin de permisos que estipulemos.
Imaginemos que tenemos un directorio llamando Pruebas con un montn de
scripts dentro. Todos esos archivos y el directorio en s tiene los siguientes
permisos -rwxrwxr-x. Si queremos quitar al grupo el permiso de escritura
tendremos que utilizar el siguiente comando:
chmod -R g-w TEST
Es decir de manera recursiva (-R) al grupo (g) le quitaremos el permiso de
escribir (-w) en los archivos que contiene el directorio (Pruebas).
Concluyendo
Espero que este pequeo tutorial bsico te sea til, y te haya servido para
conocer un poco ms al respecto. As podrs descifrar el significado de esas
letras que veas y no entendas muy bien. Tambin comprobars cmo poder
eliminar o otorgar derechos.
Te toca a t hacer tus pruebas, y seguir investigando, pero este es un
pequeo paso que puede ser til.

También podría gustarte