Linux Mint Maya, la última versión de esta distribución GNU/Linux LOS PERMISOS DE ARCHIVOS Y CARPETAS: UTILIZA HERRAMIENTAS GRÁFICAS Y/O EL TERMINAL 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 Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 1 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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: Y si quieres acceder a ellos el sistema te avisará, con algún mensaje informativo, de que no puedes hacerlo. Cambia los permisos de archivos y carpetas en modo gráfico Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 2 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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: 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. 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 3 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux Haz que tu carpeta personal sea privada Observa la siguiente captura de pantalla. Es la ventana Propiedades – pestaña Permisos de mi 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 4 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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. 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 5 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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. 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 6 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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. 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 7 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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 cambiando 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]. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 8 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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. 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 9 Edita Sueiras Linux Mint Maya, la última versión de esta distribución GNU/Linux 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. Con el ordenador a cuestas http://www.lasticenelaula.es/portal/ 10 Edita Sueiras