Permisos en Linux

Para quien ha usado Windows 9X/ME, esto puede ser un poco complicado. En Windows puedes copiar, mover, borrar, renombrar y sobre escribir cualquier archivo en cualquier momento. Esto es muy diferente en Linux y puede ser un poco difícil de entender y de manejar al principio, pero una vez que se ha entendido es muy sencillo y sobre todo útil, por que gracias a éstos permisos no hay virus que puedan hacer daño al sistema.

¿Y qué son los permisos?

Todo archivo y directorio en Linux tiene permisos establecidos que determinan que y quien puede o no hacer alguna acción con el archivo o directorio. Estas acciones son: leer, escribir y ejecutar.

Los permisos son la base principal en la seguridad en Linux y es una de las características que ayudan a que Linux sea casi inmune a los Virus de computadora. Te preguntaras ¿porqué? por que un virus debe escribir sobre un archivo para poder infectarlo y ejecutarse de alguna manera para poder infectar mas archivos. Con el sistema de permisos, los virus no pueden infectar cualquier archivo como lo hacen en Windows, si el usuario no tiene permisos, el virus simplemente no puede infectar los archivos y por tanto no puede reproducirse.

¿Dónde están los permisos?

Los permisos se registran en el sistema de archivos, es decir cada archivo tiene su tabla de permisos y los puedes ver con el comando ls -l

luis@kamaleon $ ls -l 

-rw-r--r--

     1 luis usuario 587 may 23 17:17 README

-rwxr-x---

     1 luis usuario 1508208 jun 18 14:07 Xvnc*

drwxr-xr-

x       2 alberto usuario 8192 abr 30 08:43 install/

Para entender los permisos debes conocer como se establecen, esto se puede hacer de tres maneras: para el Propietario (owner), Para el Grupo (group) y para los Otros usuarios (Others), Y los permisos son lectura(r), escritura(w) y ejecución(x).

Los permisos son las letras y guiones que están a la izquierda, el ejemplo muestra los permisos de dos archivos y un directorio (install) este se identifica porque la primera letra es una "d", cuando es un archivo es un guión "-".

Las siguientes tres letras son los permisos del propietario (owner), luego las tres del grupo (group) y por último las de otros usuarios (others).

Así, los permisos para el archivo README son:

-rw-r--r--

1 luis usuario 587 may 23 17:17 README

rw- Propietario .- puede leer y escribir en el archivo. 

r-- Grupo .- los usuarios del mismo grupo que el propietario pueden leerlo. 

r-- Otros .- usuario que no son del grupo, pueden leerlo.

Veamos el otro archivo de ejemplo:

-rwxr-x--- 1 luis usuario 1508208 jun 18 14:07 Xvnc*

rwx Propietario .- puede leer, escribir y ejecutar el archivo.

r-x Gurpo .- pueden leerlo y ejecutarlo. --- Otros .- no lo pueden leer, ni escribir, ni ejecutar.

Cambiando los permisos

Para determinar los permisos de un archivo o directorio se utiliza el comando chmod, este comando puede utilizar dos métodos para establecerlos pero utilizaremos el más sencillo llamado Absoluto. Este asigna un valor a cada permiso:

4 r-lectura 

2 w-escritura 

1 x-ejecución

Dependiendo los permisos que se quieran asignar se sumaran los valores y se utilizará un valor del 0 al 7 para cada modo (propietario, grupo, otros). Por ejemplo si se quiere cambiar los permisos del archivo README dándole permisos de lectura y escritura al propietario y al grupo, pero solo lectura a Otros, se haría de la siguiente manera:

luis@kamaleon $ ls -l README 

-rw-r--r-- 

1 luis usuario 587 may 23 17:17 README 

                                 r w x       r w x       r w x 

Permisos Actuales 4+2+0     4+0+0     4+0+0     

                                    6             4             4 

                     r w x        r w x        r w x 

Cambiar a: 4+2+0     4+2+0     4+0+0 

                        6             6             4

luis@kamaleon $ chmod 664 README

luis@kamaleon $ ls -l README 

-rw-rw-r-- 

        1 luis usuario 587 may 23 17:17 README

Ahora demos permisos de lectura y ejecución a Otros en el Archivo Xvnc

luis@kamaleon $ ls -l Xvnc -rwxr-x--- 1 luis usuario 1508208 jun 18 14:07 Xvnc*

                                            r w x             r w x             r w x 

Permisos Actuales:             4+2+1            4+0+1         0+0+0 

                                                7                     5                    0

                                             r w x            r w x             r w x 

Cambiar a:                         4+2+1            4+0+1         4+0+1 

                                                7                     5                 5

luis@kamaleon $ chmod 755 Xvnc

luis@kamaleon $ ls -l Xvnc 

-rwxr-xr-

x      1 luis usuario 1508208 jun 18 14:07 Xvnc*

Por último aquí esta una tabla que permite saber rápidamente que valor asignar como permiso a cualquiera de los tres modos.

Val. Permisos 

0 --- 

1 --x 

2 -w- 

3 -wx 

4 r-- 

5 r-x 

6 rw- 

7 rwx