Cambiando los permisos a archivos y carpetas en Linux Mint y Ubuntu

Valoración del Usuario:  / 9
MaloBueno 

Logo Linux Mint

Logo Ubuntu

Una cuestión fundamental que tendrás que conocer en el mundo GNU/Linux es la cuestión de los permisos de archivos y carpetas. Es muy posible que, en alguna ocasión, te encuentres con archivos o carpetas que de alguna forma están bloqueados, bien para leerlos o bien para modificarlos, o para ambas tareas. Estos estados de lectura o modificación es lo que se conoce como permisos.

Conocer los permisos en archivos y carpetas es extremadamente útil. Supón que tienes un determinado archivo que te ha costado mucho trabajo completar y que no quieres que accidentalmente alguien pueda estropearlo. Sólo con denegar los permisos de escritura ya estarás salvaguardándolo, ya que así el archivo no guardará ningún cambio realizado en él a continuación del establecimiento de este permiso. Supón que tienes un archivo que no quieres que nadie vea su contenido, si deniegas el permiso de lectura a ese archivo, o a la carpeta en donde está ubicado, nadie podrá visualizarlo a no ser que tenga la posibilidad de cambiar el permiso al archivo y tenga el permiso necesario para hacerlo. O supón que no puedas acceder al contenido de un disco duro externo o de una memoria USB al no ser el propietario de las carpetas y archivos en ellos contenidos e incluso que no puedas ejecutar un determinado programa o herramienta porque sólo puede hacerlo el usuario root del sistema.

Para solventar todas estas dificultades no tendrás más remedio que modificar el sistema de permisos del archivo o directorio en cuestión.

¿Por qué el sistema utiliza estas opciones?

Los sistemas GNU/Linux como Ubuntu y Linux Mint son sistemas multiusuario. Esto significa que está pensado para que pueda ser utilizado por muchas personas, incluso trabajando simultáneamente, garantizando así la confidencialidad de la información y la estabilidad del sistema. Precisamente uno de los mecanismos más importantes para conseguir este objetivo es el referente a los niveles de acceso de los usuarios a la información del sistema. En un sistema GNU /Linux, no todos los usuarios del sistema pueden hacer el mismo uso de los recursos que éste dispone. Esto se encuentra regulado por los derechos de acceso o permiso.

Aunque respecto a la configuración de usuarios y grupos, Windows y GNU / Linux utilizan procedimientos muy parecidos, lo cierto es que el tratamiento de los derechos de acceso es bastante diferente. En Linux cada usuario está identificado por un nombre y una contraseña y cada archivo es de la exclusiva propiedad de un usuario y de un grupo. Cada usuario posee su propio directorio personal (el que ya conoces que se encuentra en la carpeta /home), y él, y nadie más que él, es el dueño de esa carpeta (aparte, claro está del root o superusuario, que tiene libre acceso a todo el sistema y, por tanto, puede acceder a las carpetas personales de los diferentes usuarios del sistema). Por tanto, los sistemas GNU/Linux garantizan la confidencialidad de los archivos de todos los usuarios y su intimidad.

Al margen del superusuario administrador o root, el resto de usuarios tendrá siempre privilegios limitados y únicamente serán soberanos en su carpeta personal pero no en las carpetas o directorios del sistema, lo cual garantiza la estabilidad del mismo. Sólo el usuario root o superusuario podrá establecer o modificar los permisos que corresponden a cada archivo y carpeta del sistema lo que supone que nada cambiará salvo que interaccione con el sistema como usuario root (de ahí que, por ejemplo, siempre se te solicite tu contraseña de superadministrador cuando quieras instalar una aplicación nueva en el sistema).

Los tipos de permisos en directorios y archivos

Puedes encontrar esto de los permisos un poco confuso, pero en realidad es realmente bastante simple de entender. Los permisos pueden ser permitidos o denegados al propietario del archivo o carpeta (tú), a un grupo específico o a otros (cualquier otro).

Tradicionalmente, estos permisos se nombran como sigue:

  • Permisos de lectura. Permiso para ver el contenido de los archivos guardados en una carpeta – directorio o el contenido de un archivo. En el modo de texto, por ejemplo, en una consola o terminal este atributo se identifica como una R (de Read, leer).
  • Permisos de escritura. Permiso para modificar el contenido de un archivo, o copiar y borrar ficheros del contenido de una carpeta o directorio. También será posible crear ficheros dentro de una carpeta o directorio. Se le asigna la letra W (de Write, escribir).
  • Permisos de ejecución. Permiso para ejecutar archivos, un programa o un script. En el caso de las carpetas o directorios, es posible entrar en ellas, pero no ver su contenido. Es identificado por el atributo X (de eXecute, ejecutar).

Puedes comprobar que dispones de archivos o carpetas en tu sistema con alguna restricción de permisos. En la mayoría de los casos, el icono que los represente irá acompañado de una cruz o un pequeño candado como puedes ver en las siguientes capturas de pantalla:

Linux Mint - permisos de archivo  Linux Mint - permisos de archivos  Linux Mint - permisos de carpeta  Linux Mint - permisos de carpeta

Y si quieres acceder a ellos el sistema te avisará, con algún mensaje informativo, de que no puedes hacerlo.

Linux Mint - aviso de no acceso a archivo

Linux Mint - aviso de no acceso a archivo o carpeta

Cambia los permisos de archivos y carpetas en modo gráfico

Para cambiar los permisos de un archivo o carpeta haz clic con el botón derecho del ratón en el archivo o carpeta en cuestión y después selecciona Propiedades en el menú emergente:

Linux Mint - Ubuntu 12.04 - propiedades de archivo y carpeta

Una vez se muestre la ventana en pantalla, haz clic en la pestaña Permisos y verás quién es el propietario del archivo o carpeta y lo que otros pueden o no pueden hacer con él.

Linux Mint y Ubuntu 12.04 - permisos de archivos y carpetas

Permisos de un archivo

Como puedes ver en la captura de pantalla anterior los permisos pueden ser permitidos o denegados al propietario del archivo o carpeta (Propietario), a un grupo específico (Grupo) o a cualquier otro (Otros). Si necesitas cambiar los permisos de este archivo en cuestión puedes desplegar las opciones presentes en cada apartado y seleccionar la que te interese.
Una vez hecho, haz clic en el botón Cerrar y continúa con tu trabajo.

¡¡Atención!!

Cambiar permisos a archivos y carpetas puede ser algo arriesgado porque podrías dejar a algún usuario sin acceso a él. Utiliza estas opciones con precaución.

Haz que tu carpeta personal sea privada

Observa la siguiente captura de pantalla. Es la ventana Propiedades – pestaña Permisos de mi carpeta personal:

Linux Mint y Ubuntu 12.04 - permisos de la carpeta personal

Como puedes ver, el propietario de la carpeta (yo misma) puede leer y escribir los archivos contenidos en ellas (evidentemente, como si no podría editarlos), pero los usuarios que pertenezcan a mi grupo o a otros grupos del sistema no podrán editar los archivos contenidos en ella sólo podrán verlos.

¿Significa esto que cualquier persona que acceda al ordenador con otras cuentas de usuario establecidas en el equipo pueden acceder a mis documentos? La respuesta es sí, cualquier usuario que entre con su cuenta en el equipo podrá usar tu carpeta personal y ver sus contenidos.

Pero esto es sencillo de solucionar y así comprobarás la importancia de conocer cómo puedes trabajar con el sistema para cambiar los permisos de aquellas carpetas y archivos que desees.

Navega por el sistema de archivos del ordenador. Para ello localiza la entrada Equipo en Lugares en el menú Menú (Linux Mint) o bien localízalo desde el bash del Escritorio Unity en Ubuntu 12.04.

En la ventana que se muestra en pantalla haz doble clic en Sistema de archivos en el panel lateral. El contenido completo del disco aparece en el panel derecho de la ventana.

Localiza y haz doble clic en la carpeta home. Puedes ver su contenido en el panel derecho de la ventana. Es muy probable que sólo veas una carpeta con tu nombre de usuario (es tu carpeta personal), si no hay más usuarios configurados en el sistema. En caso de que sí haya usuarios configurados en el sistema verás una carpeta personal de cada usuario (denomina con su mismo nombre de usuario).

Haz clic con el botón derecho del ratón en tu carpeta personal y selecciona Propiedades – pestaña Permisos.

Localiza las secciones Grupo y Otros y selecciona la entrada Ninguno, en ambos casos, en los menús desplegables al lado de los términos Acceso a carpeta.

Linux Mint y Ubuntu 12.04 - carpeta personal privada

Cuando finalices haz clic en el botón Cerrar de la ventana. ¡Ahora tu carpeta personal ya no estará visible a ojos curiosos!

Cambia los permisos de archivos y carpetas desde el terminal

Ya has visto qué procedimiento tan simple puedes utilizar para cambiar los permisos de acceso a tus archivos y carpeta. Ahora bien, ¿es posible modificar y cambiar los permisos de archivos y carpetas o directorios que no te pertenecen? ¿Es posible utilizar este mismo procedimiento, tan intuitivo, para modificar los permisos de acceso a carpetas y/o archivos del sistema? La respuesta es no.

Ineludiblemente, tendrás que hacerlo como root y el terminal será el instrumento necesario para lograrlo.

Observa la siguiente captura de pantalla. En ella puedes visualizar los permisos asignados por el sistema a un archivo que pertenece al propio sistema, del cual tú no eres el propietario. En concreto es el archivo gimp-2.6 localizado dentro de la carpeta del sistema /usr/bin/ que te permite ejecutar el programa Gimp. Como puedes ver es un archivo de sistema del que no puedes modificar sus permisos directamente desde la ventana gráfica porque, como ves, se encuentran desmarcados. Además, en la propia ventana puedes ver un mensaje informativo advirtiéndote que no eres el propietario del archivo y que, por dicha razón, no puedes cambiar los permisos asociados al mismo.

Linux Mint y Ubuntu 12.04 - permisos de una carpeta o archivo del sistema

Fíjate también que el archivo en cuestión pertenece al usuario root. Eso significa que el root y sólo el root podrá cambiar los permisos asignados al archivo. Y para ello tendrás que indicarle al sistema que tú eres el usuario root y que deseas asignar permisos diferentes a dicho archivo.

¡¡¡ATENCIÓN!!!

No cambies los permisos asignados por el sistema a los archivos y carpetas que le pertenecen. Podrías generar consecuencias nefastas en tu equipo, como que una aplicación dejase de funcionar, algún programa funcionara incorrectamente o incluso que no tuvieras acceso a parte del mismo. Extrema las precauciones cuando modifiques los permisos y los niveles de acceso y, sobre todo, no hagas nada si no sabes qué estas haciendo o bien si no es estrictamente imprescindible.

Para las prácticas que vas a realizar a continuación no trabajarás directamente sobre ningún archivo de sistema sino sobre uno creado por ti mismo para la ocasión. Los procedimientos serán los mismos en todos los casos que necesites: sea un archivo o carpeta de tu propiedad, que pertenezcan a otros o que pertenezcan al propio Sistema Operativo.

Utiliza el Terminal para cambiar los permisos a archivos y carpetas

Existen instrucciones concretas que permiten modificar desde la línea de comandos los derechos de acceso asociados a un archivo o carpeta y directorio. Por tanto, inicia el Terminal ya que todos los comandos serán escritos directamente en él:

  • En Linux Mint acude al menú Menú – clic en la entrada Terminal.
  • En Ubuntu 12.04 localiza el término Terminal o consola directamente desde el bash del Escritorio Unity.

Tienes que tener en cuenta en todo momento que todos los comandos que vas a introducir a continuación deberás hacerlo como root . Para ello utilizarás el comando sudo, un comando especial que te permitirá obtener los privilegios de root.

Para practicar no vamos a utilizar ningún archivo del sistema (ya te hemos dicho que puede ser muy peligroso). Necesitas para ello un archivo prueba_de_permisos que crearás en tu carpeta personal. Para ello, acude a tu carpeta personal y, en un lugar vacío de la misma, haz clic con el botón derecho del ratón. Selecciona la entrada Crear un documento – Archivo vacío. Cuando se muestre en pantalla denomínalo prueba_de_permisos.odt escribiendo su nombre directamente con el teclado.

Cambia el usuario propietario de un archivo: chown

El comando siguiente cambia el usuario propietario de un archivo. Recuerda que tienes abierta la sesión en el Terminal y que, de manera predeterminada, te encuentras en tu carpeta personal (en caso contrario, tienes que establecer la ruta completa al archivo al que quieras modificar su propietario). Teclea el siguiente comando:

sudo chown root prueba_de_permisos.odt

donde

sudo – comando que te permite obtener los privilegios de root en el sistema

chown – change own – cambiar el propietario
root – el nuevo propietario del archivo
prueba_de_permisos.odt – el archivo sobre el que va actuar el comando.

El sistema te solicitará la contraseña de root para identificarte. En breves segundos, el usuario "root" pasará a ser el dueño del archivo "prueba_de_permisos.odt".

Compruébalo acudiendo a tu directorio personal y observa como el archivo prueba_de_permisos.odt muestra un pequeño candadito para indicarte que tú no eres ya el propietario del archivo.

Linux Mint y Ubuntu 12.04 - archivos sin permisos

Si utilizas ahora el menú contextual del botón derecho del ratón sobre este archivo y seleccionas Propiedades – pestaña Permisos puedes ver en la ventana que el archivo ya no te pertenece y que, desde ella, no podrás cambiar los permisos del archivo.

Linux Mint y Ubuntu 12.04 - permisos del archivo

Nota – El comando chgrp

Si necesitas cambiar el grupo de un archivo utiliza el comando chgrp (change group). Por ejemplo, si quieres cambiar el grupo del archivo prueba_de_permisos.odt al grupo root

sudo chgrup root prueba_de_permisos.odt

Si quieres revertir los cambios y asignar el archivo de nuevo a ti mismo, como propietario del grupo, y a los usuarios que pertenecen a tu mismo grupo puedes utilizar:

sudo chown edisue.edisue prueba_de_permisos.odt

sustituyendo edisue.edisue por tu nombre de usuario y grupo en cada apartado.

Modifica los permisos de acceso al fichero – el comando chmod

Este será uno de los comandos que más utilices habitualmente así que acostúmbrate a su sintaxis. Es muy probable que tengas que hacer uso de él en muchas ocasiones, sobre todo, en aquellas que necesites realizar la instalación de aplicaciones cuando no utilices los gestores de paquetes automatizados que tanto Linux Mint como Ubuntu ponen a tu disposición para instalar programas en el sistema.

Con el comando chmod puedes cambiar los permisos de acceso a un fichero o archivo. Pero, atención, sólo el dueño del archivo o el usuario root pueden cambiar los permisos.
Su sintaxis puede variar mucho, ya que existen varias formas de utilizarlo, siendo la fórmula inicial chmod {categoría} +-. {permisos} {archivo].

Te mostramos cómo utilizar este comando:

sudo chmod {u, g, a, o} {+, - } {r, w, x } nombre del archivo

donde:

u: corresponde al dueño del archivo

g: corresponde al grupo

o o a: corresponde al resto de los usuarios, a para todos (all) y o para otros (others)

Para autorizar o desautorizar el permiso:

+: autoriza

-: desautoriza

=: resetea los permisos

y donde los tipos de permisos son:

r: lectura

w: escritura y

x: ejecución

Así a simple vista puede parecerte complicado pero con ejemplos concretos lo entenderás mejor:

sudo chmod u-r prueba_de_permisos.odt

(se eliminan los derechos de lectura del propietario del archivo "prueba_de_permisos.odt") - Ahora el propietario no podrá ni siquiera abrirlo. Haz doble clic sobre él en tu carpeta personal y comprueba cómo, en efecto, no podrás acceder a él y el sistema te informa de ello.

Linux Mint y Ubuntu 12.04 - sin acceso a un archivo o carpeta

sudo chmod u+rwx prueba_de permisos.odt

(incluye permisos de lectura, escritura y ejecución para el propietario del archivo "prueba_de_permisos.odt"). Ahora el propietario tiene permisos totales sobre el archivo.

sudo chmod uoag+rwx prueba_de_permisos.odt

(establece permisos totales sobre el archivo para todos los usuarios del sistema). Ahora cualquiera puede acceder a él, editarlo y borrarlo – eliminarlo – cortarlo. Observa que ahora el archivo ya no dispone del candadito que indicaba la limitación en los privilegios de acceso al mismo.

Pero con este comando, los derechos de acceso también pueden expresarse mediante números. Es probable que hayas visto algo así como:

sudo chmod 751 {nombre del archivo}

Es otro modo de gestionar los permisos: de forma octal. El sistema es muy simple y cómodo: se considera un bit para lectura (r), otro para escritura (w) y otro para ejecución (x). Las combinaciones posibles son ocho y se muestran en la tabla siguiente:
0 = Ningún permiso (Lectura = 0 + Escritura = 0 + Ejecución = 0)
1 = Permiso de Ejecución (Lectura = 0 + Escritura = 0 + Ejecución = 1)
2 = Permiso de Escritura (Lectura = 0 + Escritura = 2 + Ejecución = 0)
3 = Permiso de Escritura y Ejecución (Lectura = 0, Escritura = 2, Ejecución = 1)
4 = Permiso de Lectura (Lectura = 4 + Escritura = 0 + Ejecución = 0)
5 = Permiso de Lectura y Ejecución (Lectura = 4 + Escritura = 0 + Ejecución = 1)
6 = Permiso de Lectura y Escritura (Lectura = 4 + Escritura = 2 + Ejecución = 0)
7 = Permiso de Lectura, Escritura y Ejecución (Lectura = 4 + Escritura = 2 + Ejecución = 1)

Luego, por cada identidad, puedes obtener un número comprendido entre 0 y 7 que será el que establezca cuáles son los derechos o permisos configurados para dicha identidad.

Por ejemplo:

644: propietario 6 (lectura-escritura), grupo 4 (solo lectura), otros 4 (solo lectura)

751: propietario 7 (lectura-escritura-ejecución), grupo 5 (lectura y ejecución) y otro 1 (sólo ejecución)

y así sucesivamente, hasta completar todas las combinaciones necesarias hasta el 777 (permisos totales de lectura, escritura y ejecución para todos los usuarios).

Como ves, dentro de los tres dígitos el primero corresponde al dueño o propietario del archivo, el segundo dígito para el grupo y el último dígito para el resto de los usuarios.

¿Y si se necesitan modificar los permisos de acceso sobre una determinada carpeta o directorio? Es muy simple, sólo añade la opción -R para dar permisos recursivamente a todas las carpetas y ficheros en ella contenidos (se aplican los permisos correspondientes a todas las carpetas y archivos que contenga un determinado directorio).

Por ejemplo,

sudo chmod -R 777 "nombredelacarpeta"

establece permisos totales de lectura, escritura y ejecución tanto a la carpeta como a todas las subcarpetas y archivos incluidos dentro de ella.

Y si necesitas aún más información que la que te ofrecemos el comando chmod contiene muchas más opciones y formas de asignar permisos. Puedes consultarlas mediante el manual del comando. Para ello, en el Terminal escribe:

man chmod

Aunque esta manera de asignar niveles de acceso a los recursos te pueda parecer muy elemental, no la infravalores, tras su sencillez se esconde una tremenda potencia y eficacia.

Descarga nuestro tutorial en formato PDF - 370 kb - Descargar

 

Comentarios   

 
+1 #10 andres 04-11-2013 07:39
Y cual de todos me sirve para permitir a un programa que escriba en el lugar en que esta instalado??
Citar
 
 
+1 #9 Patricia 07-09-2013 20:44
Muy buen tutorial! habia estado leyendo sobre permisos en varias paginas pero esta es donde lo explican mas claramente. Gracias! :)
Citar
 
 
0 #8 yuri coicca 22-05-2013 15:36
Les comento amigos, que nuestro servidor con Linux CentOS solo lee archivos PHP de un tamaño determinado, no todos…por ejemplo, no ejecuta archivos con tamaños:
1.5 a 3.5 Kb
3.6 a 4.8 Kb
4.9 a 6.8 Kb
6.9 a 7.1 Kb
7.2 a 8.6 Kb
8.7 a 30.0 Kb
31.1 a 100 Kb

Que crees que está sucediendo?
Citar
 
 
+1 #7 pablo 23-04-2013 00:26
que mierda para los que venimos de windows y caimos en este monto de cosas.
Citar
 
 
0 #6 Daniel 19-04-2013 01:09
¡¡¡¡Muchas gracias!!!! ¡¡muy completo y muy claro tutorial!!

Cordiales saludos ;-)
Citar
 
 
-3 #5 Joani 25-02-2013 09:24
necesito saber como puedo desactivar el cortafuegos sin tener la contraseña para privilegios muchas gracias, es muy importante ya que no me funciona el windows y tengo que descargar en linkat algunos programas como msn, ares, ect...por favor es muy importante :eek:
Citar
 
 
-1 #4 Juan 20-02-2013 17:32
Hola muy completo tu tutorial, pero aun así no me atrevo hacer nada, después de lo que me sucedió, te cuento, descargue un set de iconos que es KDE y lo instale en mi sistema Xfce, justamente todos los iconos de mi home cambiaban excepto la carpeta imágenes y estuve modificando los permisos de la carpeta que realmente nunca supe que estaba haciendo, la cosa que al volver a utilizar iconos GTK2 la carpeta de imágenes no muestra el típico símbolo de imagen, estuve ocupando Thunar pero ahora ocupo PCMANFM, tengo dudas si he dejado algun vacio de seguridad.
Saludos
Citar
 
 
-1 #3 George 02-12-2012 16:32
Hola, he estado viendo todos estos tutoriales y esta buenisimos!! mil gracias me han ayudado con todo! (mi dist. es linux mint 9)

Por otro lado, tengo un problema con los directorios root y lost&found me aparecen marcados con una X, aparentemente acceso resgtringido, permiso denegado.

Cuando pongo en ropiedades, no puedo cambiar los permisos y en la pestaña "General" me aparece (en la parte de tamaño) un msj que dice: Fallo al leer el contenido del directorio.

Qué significa esto?

Muchas gracias! abrazo.
Citar
 
 
-1 #2 Gaston 22-11-2012 04:46
Excelente!!!
Me sirvió muchísimo y lo más importante, es que me servirá siempre.
Saludos!
Citar
 
 
-1 #1 Paco Carpena 19-07-2012 15:18
Un tutorial estupendo! Estaba un poco perdido tras instalar grive y con la penúltima línea de código ya puedo abrir cualquier documento local de mi carpeta de google drive.
Muchas gracias, Edita!
Citar
 

Escribir un comentario


Código de seguridad
Refescar

Información adicional