«

»

11th mayo 2012

Como cambiar de dueño y/o los permisos de archivos en Linux desde la terminal

Los administradores, usuarios o programadores que estén acostumbrados a sistemas Unix la migración a Linux no les sera nada complicada, sin embargo todos los usuarios noveles que provienen de Windows o demás sistemas no Unix, los conceptos de permisos les parecerá algo desconocido y abstracto.

El tutorial pretende ser de lectura fácil y con varios ejemplos para algunos de los casos mas comunes. Se puede aplicar a cualquier distribución GNU/Linux y en la gran mayoría de sistemas Unix como BSD, FreeBSD, Solaris, Irix, AmigaOS, AIX, Mac OS X, Haiku OS etc..

Como todos sabemos (o casi todos), en Unix el concepto es que todo es un único archivo gigante, donde solo cambian las rutas y los permisos. El sistema nos muestra los archivos como si estuviesen en carpetas o particiones cuando en realidad los archivos se encuentran en el mismo lugar y el kernel muestra al sistema como ha de mostrar las rutas dando la ilusión que tenemos los datos en lugares diferentes. Este concepto no solo mejora la seguridad si no también el rendimiento y evita en mayor medida problemas como la fragmentación de datos en los discos duros. Cuando creamos una carpeta o archivo desde nuestro usuario, el archivo por defecto podrá ser leído y escrito por el dueño (nuestro usuario en este caso) y el resto de grupos podrán leer sin permisos a escritura. Por supuesto root podrá leer y escribir nuestro archivo. El problema viene si el archivo o carpeta fue creado por root entonces nuestro usuario no podrá modificar ni escribir el archivo, así que en estos casos lo mejor no es cambiar los permisos, si no cambiar el dueño del archivo. Para ello debemos invocar al comando “chown”. Supongamos que tenemos una carpeta o archivo en el escritorio creado por el superusuario, abrimos una terminal y escribimos ls para poder visualizar una lista de archivos o carpetas en la ruta donde nos encontremos.

Como vemos, la carpeta test se muestra en azul mientras que test1 se muestra en verde. Esto nos indica los permisos disponibles de lectura y escritura por parte de nuestro usuario, independientemente del dueño del archivo en test1 podemos escribir o modificar el contenido mientras que en test solo podremos ver el contenido sin derecho a tocar nada. Si hacemos clic derecho en la carpeta y nos dirigimos a “permisos”, como podemos ver el dueño es mi usuario y por tanto puedo modificar los permisos o cualquier parte del contenido.

Sin embargo en la carpeta test el dueño es root por lo que no podemos modificar permisos.

Si queremos cambiar de dueño tenemos que ejecutar el siguiente comando siguiente el orden de sintaxis que se muestra a continuación:

sudo chown <usuario>:<grupo> nombredearchivo

Por ejemplo para cambiar de dueño a test el comando quedaría así:

sudo chown leanux:leanux test/

Si comprobamos el resultado, efectivamente ahora somos nosotros los dueños. Si queremos cambiar de permisos el archivo tendremos que invocar el comando “chmod”. Es importante tener claro el esquema de permisos, por eso os dejo con la siguiente tabla basada en números:

La primera columna de color verde hace mención a la u de user, la segunda columna hace referencia a g de group, y la tercera columna hace referencia a o de owner. Por tanto el orden siempre es el mismo, usuario, grupo y dueño. Para modificar los permisos de la carpeta test y todo su contenido deberíamos escribir lo siguiente:

sudo chmod 755 -R test/

755 indica que el dueño y usuario pueden leer y escribir, el resto solo podrán leer o ejecutar el contenido, si escribiésemos 777, entonces todo el mundo podría leer y escribir el contenido (no recomendable en la mayoría de los casos, a menos que sea una necesidad temporal).

Deja un comentario