PDA

Ver la Versión Completa : Ubuntu | permisos de archivos y carpetas



Xripox
07/05/2010, 15:09
[Only registered and activated users can see links]

Ubuntu es un sistema multiusuario. Esto quiere decir que está pensado para que pueda ser utilizado por muchos personas, incluso trabajando simultáneamente, garantizando así la confidencialidad de la información y la estabilidad del sistema. 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 de que éste dispone. Esto se encuentra regulado por los derechos de acceso o permisos.

Aunque respecto a la configuración de usuarios y grupos, Windows y 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, 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. Pero, al margen del root, el resto de usuarios tienen siempre privilegios limitados y únicamente serán soberanos en su carpeta personal.

Esto supone, en resumen, que para que otras personas puedan acceder a ellos, cada usuario deberá configurar los permisos de sus archivos y carpetas y, por supuesto, el usuario root o superusuario podrá establecer qué permisos corresponden a cada archivo y carpeta del sistema.

Puede darse la circunstancia, por ejemplo, de que no puedas acceder al contenido de un disco duro externo o de un lápiz 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 estas dificultades no tendrás más remedio que modificar el sistema de permisos del archivo o directorio en cuestión.

Tipos de permisos en directorios y archivos
Existen tres tipos de permisos:

De lectura. Permite ver el contenido de los archivos guardados en una carpeta - directorio o el contenido de un archivo. En el modo de texto, este atributo se identifica como una R (de Read, leer).

De escritura. Deja 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).

De ejecución. Permite que se ejecuten archivos. 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).

Tanto el root como el propietario de la carpeta pueden modificar los derechos de acceso a la misma. En este momento, ellos y sólo ellos dos, podrán realizar algún tipo de acción sobre la carpeta.

Usuarios y grupos de usuarios
Para simplificar la gestión del sistema se pueden crear grupos de usuarios, a fin de que sea más fácil la asignación de permisos y la posibilidad de compartir un determinado recurso. La configuración predeterminada de ubuntu hace que, cada vez que das de alta un usuario, se cree al mismo tiempo un grupo.

Un grupo se define como el conjunto de usuarios que disfrutan de los mismos derechos de acceso, y es muy útil cuando varias personas tienen que compartir archivos y carpetas.

Los grupos de usuarios se identifican con un nombre. Un usuario puede pertenecer a más de un grupo y al menos pertenece al grupo que lleva su nombre.

Para ver todos los grupos y usuarios de tu sistema debes acudir al menú Sistema - Administración - Usuarios y grupos. Observa en la lista la carpeta personal perteneciente a cada usuario.


[Only registered and activated users can see links]

Crear un nuevo usuario y crear un nuevo grupo
Para comenzar desbloquea la ventana que, por razones de seguridad, se encuentra bloqueada de forma predeterminada. Para ello haz clic sobre el botón Desbloquear. Aparece en pantalla una ventana que te solicita que te identifiques como root para continuar: introduce la contraseña de root que estableciste en la instalación del sistema.

Los diferentes usuarios pueden ser ahora editados y un botón nuevo aparece en la ventana: el botón Añadir usuario.


[Only registered and activated users can see links]

En la nueva ventana verás varias pestañas. En la primera de ellas, la pestaña Cuentas, te permitirá incluir los datos pertenecientes a la cuenta del nuevo usuario. Teclea como nombre invitado en el campo de texto Usuario, deja como perfil Usuario del escritorio (para que pueda hacer uso de todas las aplicaciones y programas instalados en el sistema) y cubre los siguientes parámetros que aparecen en la ventana si lo deseas, entre otros deberás asignarle una contraseña personalizada. En la pestaña Privilegios del usuario podrás ver los permisos por defecto asignados al nuevo usuario (y añadir otros si lo deseas) y en la pestaña Avanzado verás el directorio personal asignado al nuevo usuario (puedes editarlo si lo deseas) y podrás asignarlo a un grupo existente en el sistema de tu elección. ¡Así de sencillo!

El botón Gestionar grupos que se encuentra en este misma ventana te permite crear nuevos grupos o asignar usuarios ya existentes en el sistema a grupos ya creados haciendo clic sobre el botón Propiedades.

Volviendo al apartado de los permisos de usuarios y grupos, con un ejemplo más concreto lo verás más claro: cuando el administrador crea un usuario de nombre pedro, se crea al mismo tiempo un grupo cuyo nombre también es pedro y que tiene como único miembro al usuario pedro.

Y cada vez que el usuario pedro crea un archivo o carpeta determinada el sistema le asigna unos determinados permisos de acceso destinados al usuario que es su propietario, a uno de los grupos existentes y al resto de usuarios del sistema que no son el propietario, tal y como observas en la siguiente captura de pantalla:


[Only registered and activated users can see links]

Como aprecias el usuario propietario puede acceder, editar y borrar el archivo en cuestión pero los diferentes miembros del grupo al que pertenece el usuario sólo podrán acceder a él en modo lectura (es decir, podrán visualizar su contenido, pero no podrán editar el documento ni borrarlo) así como sucede con los otros usuarios del sistema que no son el propietario (que tendrán los mismos permisos sobre él).

A través de esta misma ventana el propietario del archivo o carpeta - directorio podrá modificar directamente y sin problemas ni limitaciones los permisos asignados al mismo seleccionando las opciones correspondientes en cada uno de los botones presentes en el apartado Acceso.


[Only registered and activated users can see links]

Ahora bien, ¿cómo modificar y cambiar los permisos de archivos y carpetas o directorios que no te pertenecen? ¿Es posible utilizar este mismo procedimiento, tan intuitivo? La respuesta es no. Ineludiblemente, tendrás que hacerlo como root y la consola o 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 perteneciente al propio sistema, del cual tú no eres el propietario. Las diferentes opciones para cambiar los permisos al archivo se encuentran desmarcadas y en la propia ventana un mensaje te advierte que no eres el propietario del archivo y que, por lo tanto, no puedes cambiar los permisos asociados al mismo.


[Only registered and activated users can see links]

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

Comandos en la consola o terminal para modificar permisos

Existen instrucciones que permiten modificar desde la línea de comandos los derechos de acceso asociados a un archivo o carpeta y directorio. Para ello abre la consola o terminal de Ubuntu (Accesorios - Teminal) pues todos serán tecleados en ella.

Tienes que considerar que todos los comandos que vas a introducir a continuación deberás hacerlo como root utilizando el comando sudo antes de los comandos propios de asignación y cambio de permisos y propietarios de archivos, tal y como verás en los ejemplos que te mostramos a continuación.

Vas a practicar sobre un archivo prueba_de_permisos que crees en tu carpeta personal. Utiliza para hacerlo el menú contextual del botón derecho del ratón sobre un espacio vacío de la carpeta personal y selecciona Crear un documento nuevo - Archivo vacío. Llámalo prueba_de_permisos.

Cambiar el usuario propietario de un archivo: chown
El comando siguiente cambia el usuario propietario de un archivo. En la consola o terminal teclea el siguiente comando:


sudo chown invitado prueba_de_permisos

El sistema te solicitará la contraseña de root para identificarte. En breves segundo, el usuario “invitado” pasará a ser el dueño del archivo “prueba_de_permisos”.

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


[Only registered and activated users can see links]

Si utilizas el menú contextual del botón derecho del ratón y seleccionas la entrada Propiedades, verás que la pestaña Permisos te advierte de esta circunstancia y no te permitirá cambiar los permisos del archivo porque ya no te pertenece.

Cambiar el grupo propietario del archivo. El comando chgrp
Puedes utilizar este comando para cambiar el grupo propietario del archivo.


sudo chgrp root prueba_de_permisos

Ahora el archivo prueba_de_permisos pertenece al grupo root. Compruébalo en la entrada Propiedades del archivo - Permisos.

Comandos para modificar los permisos de acceso a un fichero: chmod
Este será uno de los comandos que utilices más habitualmente así que debes acostumbrarte a su utilización. Sobre todo, harás uso de él en muchas ocasiones que necesites realizar la instalación de aplicaciones, herramientas y programas sin hacerlo a través de los gestores de paquetes automatizados que Ubuntu dispone para esta tarea.

Con el comando chmod podrás modificar los permisos de acceso a un fichero o archivo. Pero, ¡ojo!, sólo el dueño del archivo y el 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 {a, u, g, 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

(se eliminan los derechos de escritura del propietario del archivo “prueba_de_permisos”) - Ahora el propietario no podrá editarlo ni borrarlo.


sudo chmod u+rwx prueba_de permisos

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


sudo chmod uoag-rwx prueba_de_permisos

(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 en este comando, los derechos de acceso también pueden expresarse mediante números. Es probable que hayas visto algo 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, delimitarán por Identidad, claramente, sus privilegios en particular sobre un archivo o carpeta.

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, 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).

Y si necesitas aún más información que la que te ofrecemos pues el comando chmod contiene muchas más opciones y formas de asignar permisos, puedes consultarlas consultando el manual del comando. Para ello, abre una consola o terminal y teclea:


man chmod

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