Introducción
Ya hemos estudiado como se gestionan cuentas de usuario en un sistema GNU/Linux desde una terminal, utilizando comandos. También hemos estudiado como se almacena la información de cuentas de usuario y grupo en un sistema.
Esta información es utilizada por el sistema operativo para llevar a cabo el control de acceso: comprobar qué usuarios tienen permiso para acceder a qué recursos y con qué operaciones o permisos de acceso concretos tiene.
El control de acceso más básico que nos viene a la mente es el de poder acceder al sistema, iniciar sesión en el sistema. Sin embargo, también tenemos que tener en cuenta otro control de acceso importante en general y más aún en los sistemas de tipo Unix – GNU/Linux, en los que todo se representa con ficheros: el acceso a los ficheros y directorios.
Para ello, los sistemas de tipo Unix en general utilizan un sistema de permisos muy simple basado en que todo fichero debe tener un usuario propietario, un grupo y un conjunto de permisos que determinan el acceso que tiene el propietario, el grupo y el resto de usuarios que no son ni el propietario ni el grupo.
Toda la información está disponible en el documento sobre comandos de GNU/Linux proporcionado, que se facilita a continuación. Es necesario que el lector eche un vistazo a la sección dedicada a permisos de este documento, así como a los ejemplos de uso que se dan en la página siguiente.
También se proporciona un vídeo donde se explican los permisos, propietario y grupo, así como los comandos necesarios para cambiar los permisos, propietario y grupo de un fichero o directorio.
Actividades de comandos
En la página de actividades de permisos, propietario y grupo puedes encontrar varias actividades con multitud de ejercicios resueltos sobre comandos de gestión de permisos, propietario y grupo.
Resumen de comandos
Gestión de propietario, grupo y permisos | ||
ls -l y ls -ld | Lista ficheros o directorios | Con la opción -l y la opción -ld podemos mostrar la configuración de propietario, grupo y permisos de ficheros y directorios. |
chmod | Cambia los modos (permisos) de un fichero | Cambia los bits de modo, los permisos, de ficheros (y directorios) |
chown | Cambia propietario (o propietario y grupo) | Cambia el propietario y el grupo de un fichero o directorio. Se puede cambiar solo el propietario o cambiar a la vez propietario y grupo. |
chgrp | Cambia grupo | Cambia el grupo de un fichero o directorio. |
Video – Comandos de gestión de permisos, propietario y grupo de ficheros
Ejemplos de uso
Vamos a ver algunos ejemplos de uso de comandos de gestión de permisos, propietario y grupo.
Primero creamos un fichero con el que vamos a trabajar. El fichero se llamará saludo.txt y estará en el directorio actual. Lo vamos a crear con el comando echo mostrando la cadena de texto Hola que tal y una redirección de salida.
Vamos a cambiar el propietario de dicho fichero, asignándole como propietario el usuario alfredoff. Para ello utilizaremos el comando chown. Si no conocemos el comando lo suficiente, estaría bien consultar la página de manual del mismo con el comando man.
Ahora vamos a cambiar el propietario del fichero saludo.txt para que el nuevo propietario sea alfredoff.
Nos da un error al tratar de hacerlo. El administrador es el único usuario que puede cambiar el propietario de un fichero por motivos de seguridad. Así que utilizamos el comando sudo.
Como podemos observar, se ha cambiado el propietario del fichero correctamente.
Vamos a cambiar el propietario y el grupo del fichero saludo.txt de forma que el nuevo propietario sea marinapg y el grupo infopacense.
Vamos a cambiar solo el grupo del fichero saludo.txt de forma el nuevo grupo del fichero sea castelar.
Para cambiar los permisos de ficheros se utiliza el comando chmod. Si no sabemos como utilizarlo deberíamos consultar la página de manual, con el comando man pasándole chmod como parámetro.
Tenemos dos opciones a la hora de determinar los permisos que se cambiarán o aplicarán a un fichero, utilizando los modos en formato simbólico, una representación simbólica de los cambios a realizar, o en modo octal, representando los patrones de bits para los permisos (rwx) de propieario, grupo y otros.
La diferencia entre uno y otro es que el modo octal cambia todos los permisos de un fichero, puesto que se dan tres dígitos en octal que determinan el patrón de bits con los permisos a establecer. Es decir, se cambian todos los permisos con el patrón dado.
Por ejemplo, el modo octal 660, es el patrón de bits 110 110 000, que se correspondería con los permisos rw- (lectura, escritura), rw- (lectura y escritura) y — (ningún permiso).
- Modo octal: 660
- Patrón de bits: 110110000
- Permisos: rw-rw—-
Por tanto, si quremos cambiar todos los permisos de un fichero, la opción más sencilla es utilizar el modo octal.
Si tan solo queremos modificar, añadir, quitar o asignar, permisos concretos a propietario, grupo u otros usuarios, la mejor opción es utilizar el modo simbólico.
Añade permiso de escritura al grupo del fichero saludo.txt
Configura saludo.txt para que el resto de usuarios no puedan realizar ninguna operación en dicho fichero.
Configura el fichero saludo.txt de forma que solo el propietario pueda realizar operaciones sobre el mismo. No conocemos los permisos que tiene el fichero actualmente.
Añade permiso de lectura al grupo.
Solo los miembros del grupo castelar podrán acceder al fichero pudiendo realiza operaciones de lectura y escritura. El usuario marinapg no pertenece al grupo castelar. En este caso tenemos varias opciones. La primera que se nos puede venir a la mente es quitarle los permisos al propietario.
De esta forma, el propietario no podrá realizar ninguna acción sobre el fichero. Sin embargo, esta formula no es la más adecuada, puesto que no sabemos si el propietario alguna vez a lo largo de su ciclo de vida en el sistema será miembro del grupo del fichero.
En este tipo de casos, una buena opción es poner como propietario del fichero al usuario root. Este usuario, root, puede hacer lo que quiera en el fichero siempre, aunque los permisos del fichero no lo indiquen o indiquen lo contrario.
Configura los permisos, propietario y grupo del fichero saludo.txt de forma que el único usuario del sistema que pueda realizar operaciones sobre el mismo sea marinapg. Usa un comando.
La forma más sencilla, atendiendo a la configuración de propietario, grupo y permisos actuales es cambiar propietario y grupo del fichero.
Puedes consultar más actividades y casos prácticos en la página de Actividades de permisos, propietario y grupo.