Propiedad de los ficheros y permisos en Linux

Los permisos se refieren a lo que un usuario puede hacer con un fichero. Hay tres tipos de permisos:

  • Read: r, el usuario puede ver el contenido del archivo.
  • Write: w, el usuario puede escribir en el archivo o bien borrarlo.
  • Execute: x, cuando el fichero es un programa el usuario puede ejecutarlo.

Cuando se trata de directorios, los permisos tienen un significado distinto:

  • El permiso read indica que podemos listar el contenido del directorio.
  • El permiso write significa que podemos añadir al o borrar ficheros del directorio.
  • Con execute podemos consultar información de los archivos del directorio.

Hay más tipos de ficheros: los especiales de dispositivo, los enlaces simbólicos, las entradas de comunicación, cada tipo tiene sus propias reglas de interpretación de los permisos.

¿A quién se le dan estos permisos?

Existen tres categorías de permisos:

  • Owner: Esta categoría la obtiene el propietario del archivo.
  • Group: La idea del grupo es la de establecer equipos de trabajo que necesitan acceso a recursos comunes.
  • Others: Son aquellos usuarios que no forman parte ni del primer grupo ni del segundo.
Ejemplo de un ls -l mostrando propietarios, grupos y permisos
Ejemplo de un ls -l mostrando propietarios, grupos y permisos

En este caso el propietario del fichero es quijote, el grupo se llama quijote igualmente.

Para el archivo tarea4 encontramos que el primer carácter de la línea es una letra d, lo que indica que es un directorio.

Los primeros tres bits pertenecientes al propietario indican que éste tiene todos los permisos. Los tres siguientes bits son para los miembros del grupo: que tienen permiso de lectura y ejecución. Los últimos tres bits se aplican al resto de los usuarios, los que tienen los mismos permisos que el grupo.

Para el archivo tarea4.tar.bz2 encontramos que el primer carácter de la línea es un guión - lo que indica que es un archivo normal.

Cambiando propietarios y grupos

Para cambiar el propietario de un archivo disponemos del comando chown (change owner) y del chgrp (change group) para cambiar el grupo. En Linux, sólo root puede usar chown, pero cualquier usuario puede emplear chgrp para cambiar el grupo de un fichero a algún otro grupo al que pertenezca el usuario.

Tenemos la carpeta verano cuyo grupo y propietario son ambos quijote. Queremos cambiar la propiedad y el grupo a bin:

chown y chgrp
chown y chgrp

Podemos abreviar los comandos chown bin verano y chgrp bin verano escribiendo simplemente chown bin.bin verano.

Cambiando permisos con el modo simbólico

La forma de cambiar los permisos es algo más complicada. A los permisos se les suele llamar el modo de un archivo. Para cambiarlos se emplea el comando chmod (change mode)

chmod +x
chmod +x

En la imagen de arriba el signo más + indica que se añade un permiso y la x que el permiso añadido es el de ejecución. Si queremos hacer la operación inversa escribiríamos: chmod -x program.py.

De esta forma asignamos permisos a todos los niveles: propietario, grupo y terceros. Si lo que queremos es asignar permisos de ejecución sólo al propietario lo hacemos con la letra u(usuario), para especificar el grupo se utiliza la letra g(group) y los otros con la o(others). De tal forma que si queremos quitar todos los permisos a todos los usuarios escribimos: chmod ugo-rwx.

Una forma de abreviar ugo es a(all). Entonces: chmod ugo-rwx = chmod a-rwx. Podemos ver que todo lo que vaya adelante del signo más es el nivel al que se aplican los permisos, todo lo que vaya detrás es el tipo de permisos.

Cambiando permisos con el modo absoluto

Para comprender el modo absoluto primero debemos pensar en cómo se escriben los números en base 2 (o visto desde otro punto de vista en base 8).

Owner Group Others
r w x r w x r w x
4 2 1 4 2 1 4 2 1

La tabla de arriba nos puede ayudar a comprender como apagar y encender bits. Para dar los derechos de lectura y escritura a un archivo llamado work.odt a todo el mundo activamos los bits correspondientes. Tendríamos que ejecutar el comando chmod 666 work.odt. Es decir activamos los bits 4 de lectura y 2 de escritura y los sumamos.

Modo absoluto de chmod
Modo absoluto de chmod

Referencia

Lo anterior lo tomé del libro:

  • Linux: Guía de Referencia y aprendizaje. Anaya Multimedia O’Reilly. Matt Welsh, Matthias Kalle Dalheimer y Lar Kaufman.

Cabe aclarar que este post no está 100% completo, nos faltó explicar sobre el comando umask y además de las opciones - y + del comando chmod existe la opción = para el cambio de permisos en el modo absoluto.

Touché🙂

Un comentario sobre “Propiedad de los ficheros y permisos en Linux

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s