educación, informática y demás

GNU/Linux bash

Permisos, propietario y grupo

Vamos a realizar una serie de ejercicios con comandos de GNU/Linux para practicar con los comandos de gestión de permisos, propietario y grupo.

Puedes usar como referencia el Documento resumen de comandos de GNU/Linux en formato PDF y tienes material didáctico más completo en el apartado Comandos de GNU/Linux Bash.

Caso práctico

Abre una terminal en modo gráfico utilizando el acelerador de teclado CTRL+ALT+T o WND+T.

Crea un fichero cuyo contenido sea la cadena de texto: «Sistemas rules»

Muestra el contenido del fichero que acabamos de crear

Crea un directorio llamado compartido en el directorio actual

Muestra el contenido del directorio compartido

Muestra información extendida del fichero saludo.txt.

Vamos a analizar la información.

  • ¿Quién es el propietario del fichero?. El usuario alumno.
  • ¿Quién es el grupo del fichero?. El grupo alumno.
  • ¿Qué permisos tiene el propietario, en este caso el usuario alumno? rw- Tiene permiso de lectura (r) y escritura (w) pero no el de ejecución, lo cual es lógico porque este fichero no es un ejecutable.
  • ¿Qué permisos tiene el grupo, en este caso el grupo alumno? rw- Tiene permiso de lectura (r) y escritura (w) pero no el de ejecución, lo cual es lógico porque este fichero no es un ejecutable.
  • ¿Qué permisos tienen los otros usuarios?. r–, es decir solo permiso de lectura.

Muestra información extendida de permisos, propietario y grupo del directorio compartido, no de su contenido.

Vamos a analizar los permisos:

  • Propietario: alumno
  • Grupo: alumno
  • Permisos
    • Propietario: rwx. Lectura, escritura y acceso. Es decir, puede acceder para realizar operaciones de lectura y escritura.
    • Grupo: rwx. Lectura, escritura y acceso. Es decir, puede acceder para realizar operaciones de lectura y escritura.
    • Resto: r-x. Lectura y acceso. Es decir, puede acceder solo para realizar operaciones de lectura.

Muestra la ayuda del comando chown.

Podemos cambiar el propietario y si queremos a la vez el grupo.

Muestra las tres últimas líneas del fichero que contiene información de configuración de las cuentas de usuario del sistema.

El fichero es el fichero /etc/passwd.

Cambia el propietario del fichero saludo.txt, para que el nuevo propietario sea marinapg. Como es una tarea administrativa, lo vamos a hacer con el usuario root.

Trata de añadir al fichero saludo.txt la fecha y hora actual. No cambies de usuario.

¡Parece que ha funcionado y no debería! Le hemos cambiado el propietario! Sin embargo el grupo asignado al fichero tiene permiso de escritura y nuestro usuario pertenece a dicho grupo.

Cambia el grupo del fichero saludo.txt para que el nuevo grupo sea educatica. Podemos utilizar el comando chgrp o el comando chown.

Trata de añadir al fichero saludo.txt la lista de usuarios conectados al sistema actualmente. Para mostrar los usuarios conectados al sistema utilizamos el comando who.

No podemos porque el usuario alumno no tiene permiso de escritura. El usuario alumno no es el propietario ni pertenece al grupo educatica, por tanto tendrá los permisos de los otros.

Cambia los permisos del fichero saludo.txt de forma que el grupo educatica no pueda realizar operaciones de escritura. Para ello utilizaremos el comando chmod.

Primero vamos a mirar la ayuda del comando chmod

Cambia los bits de permisos del fichero. Es decir, los permisos están guardados como bits. Podemos cambiar los permisos utilizando modos simbólicos o bien en octal.

Si usamos octal para cambiar los permisos, se cambian obligatoriamente los permisos de propietario, grupo y otros. Si utilizamos los modos simbólicos podemos cambiar los permisos que queramos sin necesidad de alterar el resto.

Quita al propietario permiso de escritura.

Añade al propietario y al grupo permiso de escritura.

Asegurate de que todos los usuarios del sistema tienen permiso de lectura sobre el fichero saludo.txt

¿Que hará el siguiente comando?

Establece permiso de lectura y solo de lectura a todos: propietario, grupo y otros.

Establece permiso de lectura y escritura a todos los usuarios del sistema sobre saludo.txt

Hemos decidido que saludo.txt será confidencial, tan solo podrá ser accedido con los permisos actuales por el propietario y el grupo. Los otros usuarios no tendrán ningún tipo de permiso.

Esto funcionará pero hemos escrito mucho… podemos asignar a los otros nada.

A los otros (o) le establecemos (=) los permisos que vienen a continuación… ninguno sobre el fichero saludo.txt.

Quita los permisos de los otros y del grupo, que no tengan ningún permiso, sobre el fichero saludo.txt

Establece para el grupo los mismos permisos que para el propietario.

Ahora vamos a cambiar permisos en octal. Primero sin pensar mucho… ejecuta el siguiente comando:

Estamos usando permisos en octal. Cada dígito del número en octal, y tenemos tres digitos, representa los bits de permisos de propietario, grupo y otros.

Establece los siguientes permisos utilizando modos en octal al fichero saludo.txt:

  1. 644 –> rw-r–r–
  2. 400 –> r– — —
  3. 640 –> rw- r– —
  4. 770 –> rwx rwx —

Crea un directorio llamado educatica en el directorio raíz . Como es un directorio del sistema tendremos que utilizar el usuario root.

Muestra la configuración de permisos, propietario y grupo del directorio /educatica, no de su contenido.

El único usuario que podrá acceder para realizar operaciones de escritura es el propietario, root. El resto de usuarios del sistema podrá acceder solo para realizar operaciones de lectura. En realidad, root puede hacer lo que le de la gana siempre, así que los usuarios del sistema solo podrán acceder para leer.

Configura este directorio de forma que los únicos usuarios del sistema que puedan acceder para realizar operaciones de lectura y escritura (control total, si queréis) sean los miembros del grupo educatica.

Para obtener esa configuración tenemos que modificar el grupo del directorio /educatica y los permisos tanto del grupo como de los otros.

¿Y qué pasa con el propietario? El propietario de este directorio es root, root va a poder hacer lo que quiera esté en los permisos o no, por tanto lo vamos a usar como comodín, dejándolo como propietario.

De esta forma, podemos usar tanto el usuario root como el grupo root para configurar permisos de un fichero o directorio como comodín, completando la configuración de permisos, propietario y grupo. Todo fichero debe tener un propietario y un grupo asignado.

Así que, primero cambiamos el grupo del directorio.

Ya tenemos propietario y grupo configurado, puesto que vamos a dejar al usuario root como propietario de este directorio, puesto que ningún otro usuario del sistema tendrá permisos especiales de acceso sobre el directorio /educatica.

Ahora configuramos los permisos para que cumplan con el enunciado: solo el grupo educatica podrá acceder con permisos completos. Tendremos que cambiar grupo y otros. ¿y el propietario? No hace falta tocarlo porque el propietario es root y root puede hacer lo que quiera lo pongan o no los permisos.

Tenemos dos opciones, modos en octal, aunque en este caso actualizamos los permisos del propietario (que nos da un poco igual porque es root)

La segunda opción, sería cambiar solo los permisos del grupo y otros.

Crea un nuevo directorio llamado marinapg dentro del directorio usuarios dentro del directorio educatica.

Creo que el directorio usuarios no existe dentro de /educatica. Vamos a comprobarlo.

Tenemos que utilizar al usuario root para ver el contenido del directorio /educatica.

Vamos a utilizar el comando mkdir para crear los directorios necesarios dentro de /educatica. No obstante, tendremos que utilizar la opción -p de mkdir, salvo que queramos crear el árbol de directorios necesarios a mano, porque el directorio /educatica/usaurios no existe y queremos crear dentro el directoroio marinapg: /educatica/usuarios/marinapg.

Configura el directorio /educatica/usuarios/marinapg de forma que marinapg pueda acceder con control total al directorio, el grupo educatica pueda acceder para realizar operaciones de solo lectura y el resto de usuarios del sistema no pueda hacer nada.

Leyendo esto sabemos que tenemos que poner a marinapg, que es un usuario del sistema, como propietario del directorio. Configurar educatica como grupo del directorio. Por último, configurar los permisos para que el propietario tenga todos, el grupo solo lectura y acceso y los otros nada.

PermisosPropietarioGrupoFichero
drwxr-x—marinapgeducatica/educatica/usuario/marinapg

Vamos a ver los permisos que tiene actualmente el directorio.

Primero establecemos propietario y grupo: marinapg y educatica.

Ejecutamos el comando y comprobamos cómo han cambiado propietario y grupo.

Cambiamos propietario y grupo del directorio

Ahora cambiamos los permisos para que se ajusten a lo solicitado. Cómo propietario y grupo ya tienen los permisos que nos pedían, tan solo tenemos que modificar los permisos de los otros. En este caso, quitar todos los permisos o asignarles ningún permiso.

Configuramos los permisos del directorio para que cumpla con el enunciado. En este caso, le asignamos a los otros ningún permiso

Dejar una respuesta