04 comandos permisos de archivos y carpetas

Anuncio
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
Descargar