8.3.3.9. Permisos y atributos
Al igual que en Windows, en Linux, los usuarios disponen de ciertos permisos o privilegios que limitan su control sobre el sistema.
Como ya hemos visto en apartados anteriores, para saber los permisos que un usuario tiene sobre determinados directorios, no tenemos más que observar el primer atributo que aparece en cada caso al ejecutar la orden ls -l.
Si, además añadimos -d, y el nombre del directorio que queremos, veremos exclusivamente los permisos que tenemos sobre ese directorio. Así, si ejecutamos $ ls -ld Fotos, veremos qué permisos tenemos sobre él.
Los tipos de permisos sobre archivos en Linux son los siguientes:
- Lectura: Permite fundamentalmente visualizar el contenido del archivo con órdenes como ls, cat, etc. También permite el uso de órdenes como cp.
- Escritura: Permite modificar el contenido del archivo. El archivo se puede editar, por ejemplo, con gedit y modificar su contenido sin ningún problema.
- Ejecución: Permite ejecutar el archivo como si de un programa ejecutable se tratase. Estos permisos se suelen asignar a archivos Shell, es decir, archivos que realizan funciones propias del sistema operativo, como copias de seguridad, análisis de la integridad del sistema, etc.
La asignación, modificación y eliminación de permisos o atributos sobre los archivos en entorno gráfico se realiza de forma análoga a Windows (botón derecho sobre el directorio o archivo, en Propiedades, en la pestaña de Permisos).
Cuando creamos un archivo o directorio nuevo, se definen unos permisos concretos. Tienen la siguiente apariencia.
rwx rwx rwx -> Donde para dar permiso o no, consideraremos 0 ó 1.
111 111 100 -> El propietario y su grupo, tienen permisos de lectura, escritura y ejecución. El resto de usuarios, de lectura.
7 7 4
Existen varios comandos en linux que nos permiten modificar los permisos:
- chmod: Se utiliza para cambiar los permisos del archivo o directorio. Tenemos distintas formas de hacerlo. Por ejemplo:
- Ejecutando la orden $ chmod 777 Ejercicios/Ejer1.txt asignamos permisos de lectura, escritura y ejecución (control total) a todos los usuarios sobre el fichero Ejer1.txt dentro del directorio Ejercicios.
- Ejecutando la orden $ chmod ugo+rwx Ejercicios/Ejer1.txt, conseguimos los mismo. Aquí, podemos variar el significado de la orden según utilicemos + (añadimos los permisos que se indican a ese usuario), - (le quitamos los permisos indicados), = (le asignamos los permisos).
- chown: Esta orden se utiliza para cambiar el propietario del fichero o directorio. Como parámetro, le pasaremos el nombre del propietario y el nombre del archivo o directorio. Por ejemplo: $ chown alumno Cosas, haremos que el propietario del directorio Cosas pase a ser el usuario alumno.
Existe la opción -R, que hace que el propietario de la carpeta cambie de forma recursiva, es decir, que también afectará el cambio al contenido de ésta.
- chgrp: Es análoga a la anterior, sólo que aquí, en lugar de cambiar el propietario, cambiamos el grupo.
Actividad 1: Crea un directorio en /home/alumno con el nombre Prueba. Describe los permisos que se han asignado para dicho directorio por defecto.
Actividad 2: Crea un fichero en /home/alumno con el nombre texto.txt. Describe los permisos que se han asignado para dicho directorio por defecto.
Actividad 3: ¿Qué diferencia has podido apreciar entre los permisos asignados a un nuevo directorio y a un nuevo fichero?
Actividad 4: Modifica los privilegios de tu usuario sobre el fichero texto.txt de tal forma que ahora pueda ser ejecutado por el propietario y su grupo. Comprueba que los cambios han surtido efecto.
Actividad 5: Quita a todos los usuarios del fichero texto.txt los permisos de ejecución y escritura. Comprueba el resultado.
Actividad 6: Abre desde la consola el fichero texto.txt con gedit. ¿Qué observas?
Actividad 7: Otorga permisos de lectura, escritura y ejecución al propietario y grupo del fichero anterior, y permiso sólo de lectura a los demás usuarios. Utiliza la codificación decimal.
Actividad 8: Rellena la siguiente tabla sobre permisos.
ORDEN | RESULTADO |
$ chmod g+x doc1 | |
Asigna los privilegios de lectura, escritura y ejecución a todos los usuarios del archivo doc1 | |
$ chmod go-wx doc1 | |
Asigna a todos los usuarios el permiso de ejecución sobre doc1 | |
$ chmod ugo+x doc1 | |
Quita todos los privilegios a todos los usuarios del archivo doc1 | |
$ chmod 764 doc1 |