SSOO GNUBash 03 Permisos Propietario y Grupo A01
SSOO GNUBash 03 Permisos Propietario y Grupo A01
SSOO GNUBash 03 Permisos Propietario y Grupo A01
1. - Introducción.............................................................................. 1
2. - Preguntas.................................................................................. 2
3. - Solución..................................................................................... 4
Informaciónsobreeldocumento
1. - Introducción
El objetivo de esta actividad es trabajar con el interprete de comandos bash utilizando
comandos de gestión de permisos, propietario y grupo de ficheros y directorios, para
configurar ficheros y directorios según unas especificaciones dadas. También se trabajará
la consulta y análisis de permisos dada la información de permisos, propietario y grupo de
un fichero o directorio.
Para hacer más interesante las preguntas, también trabajaremos con otra serie de
comandos, como comandos básicos, de gestión de ficheros y de gestión de usuarios y
grupos por lo que sería interesante que el lector los conociera y hubiera practicado
previamente con ellos.
2. - Preguntas
Inicia una nueva terminal desde GNOME.
1. Muestra el contenido del directorio actual con información extendida de permisos.
2. Muestra los permisos del directorio actual, no de su contenido.
3. Crea los directorios publico, privado y compartido en tu directorio personal.
4. Muestra los permisos de los tres directorios creados en tu directorio personal, publico,
privado y compartido, no de su contenido. Solo esos tres directorios.
5. Configura los permisos del directorio publico para que el propietario tenga permisos
de acceso, lectura y escritura, el grupo solo pueda acceder para leer y los otros
usuarios no puedan realizar ninguna acción.
6. Configura los permisos del directorio privado para que el propietario tenga permisos
de acceso, lectura y escritura, el grupo y el resto no puedan realizar ninguna acción.
7. Configura los permisos del directorio compartido para que el propietario y el grupo
tengan permisos de acceso, lectura y escritura y los otros usuarios solo puedan
acceder para leer.
8. Muestra información extendida de estos directorios.
9. Comprueba si existe la cuenta de usuario alfredoff en el sistema. Si no existe, créala.
10. Comprueba si existe la cuenta de usuario marinapg en el sistema. Si no existe, créala.
11. Comprueba si existe la cuenta de usuario ramonam en el sistema. Si no existe, créala.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 2/15
12. Crea los grupos educatica, contabilidad y ventas. Si existe alguno de estos grupos no
importa.
13. Asegúrate que los usuarios alfredoff, marinapg y ramonam pertenecen al grupo
educatica. Si no pertenecen, añádelos al grupo.
14. Asegúrate que los usuarios alfredofff y marinapg pertenecen al grupo contabilidad.
15. Asegúrate que los usuarios marinapg y ramonam pertenecen al grupo ventas.
16. Crea los directorios contabilidad, ventas y personal en el directorio /educatica. Utiliza
un solo comando.
17. Muestra el contenido del directorio /educatica con información extendida de permisos.
18. Muestra los permisos del directorio /educatica, no de su contenido.
19. Configura el directorio /educatica de forma que tan solo los miembros del grupo
educatica puedan acceder para realizar operaciones de lectura.
20. Cambia el propietario del directorio /educatica/contabilidad para que el propietario sea
alfredoff.
21. Cambia el grupo del directorio directorio /educatica/contabilidad para que el grupo sea
contabilidad.
22. Muestra información de permisos, propietario y grupo del directorio
/educatica/contabilidad, no de su contenido.
23. Configura los permisos del directorio /educatica/contabilidad de forma que alfredoff
pueda acceder para realizar cualquier operación, los miembros del grupo contabilidad
puedan acceder para realizar operaciones de lectura y los otros usuarios no puedan
hacer nada.
24. Configura el directorio /educatica/ventas para que el propietario sea marinapg y el
grupo sea ventas.
25. Configura los permisos del directorio /educatica/ventas para que el usuario marinapg
pueda acceder para realizar operaciones de lectura y escritura, el grupo ventas pueda
acceder para realizar operaciones de solo lectura y el resto de usuarios, los otros, no
puedan realizar ningún tipo de operación.
26. Configura el directorio /educatica/personal para que los miembros del grupo educatica
puedan acceder solo para realizar operaciones de lectura, el resto de usuarios no podrá
acceder a este directorio. Tendrás que ejecutar, en este caso, un par de
comandos.
27. Crea, dentro del directorio /educatica/personal un directorio para cada cuenta de
usuario creada en este ejercicio: alfredoff, marinapg y ramonam.
28. Configura los permisos del directorio de alfredoff en el directorio /educatica/personal
para que tan solo este usuario pueda acceder a dicho directorio pudiendo realizar
operaciones de lectura y escritura. Puede que tengas que ejecutar más de un
comando.
29. Configura los permisos del directorio de marinapg en el directorio /educatica/personal
para que tan solo este usuario pueda acceder a dicho directorio pudiendo realizar
operaciones de lectura y escritura. Puede que tengas que ejecutar más de un
comando.
30. Configura los permisos del directorio de ramonam en el directorio /educatica/personal
para que tan solo este usuario pueda acceder a dicho directorio pudiendo realizar
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 3/15
Simplemente utilizamos el comando mkdir y pasamos por parámetro las rutas relativas de
los directorios a crear.
Como vamos a cambiar todos los permisos del directorio - no nos importa mucho los
permisos que tuviera antes – vamos a utilizar el modo octal que es más simple. Para ello,
pensamos en la máscara de permisos en binario que expresan los permisos a establecer
en el orden correcto: propietario, grupo y resto.
• Permisos: rwx r-x ---
• Máscara de permisos: 111 101 000
Ahora transformamos la máscara de permisos a octal, 3b por dígito, así que un dígito por
permisos para propietario, otro para grupo y otro para el resto u otros.
También podemos hacerlo utilizando los modos simbólicos con las opciones ugo y
estableciendo (=) los permisos para cada uno de los grupos.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 5/15
6. Configura los permisos del directorio privado para que el propietario tenga
permisos de acceso, lectura y escritura, el grupo y el resto no puedan
realizar ninguna acción.
De nuevo podemos utilizar los modos en octal puesto que vamos a cambiar los permisos
de propietario, grupo y otros.
También podríamos utilizar el modo simbólico, en este caso el grupo y los otros comparten
permisos, así que podemos agruparlos “go” y la asignación es a vacío, no se escribe nada,
puesto que no le vamos a asignar ningún permiso.
De nuevo podemos utilizar los modos en octal puesto que vamos a cambiar los permisos
de propietario, grupo y otros.
Comprobamos si existe la cuenta con el comando id seguido del nombre del usuario. Como
no existe, creamos la nueva cuenta utilizando el comando adduser con sudo, puesto que
es una tarea de administración.
Comprobamos si existe la cuenta con el comando id seguido del nombre del usuario. Como
no existe, creamos la nueva cuenta utilizando el comando adduser con sudo, puesto que
es una tarea de administración.
Comprobamos si existe la cuenta con el comando id seguido del nombre del usuario. Como
no existe, creamos la nueva cuenta utilizando el comando adduser con sudo, puesto que
es una tarea de administración.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 7/15
12. Crea los grupos educatica, contabilidad y ventas. Si existe alguno de estos
grupos no importa. Tendrás que utilizar más de un comando.
Para crear los tres grupos ejecutamos el comando addgroup pasando por parámetro el
nombre del grupo a crear. Tenemos que ejecutar el comando tres veces, puesto que, para
crear grupos, este comando tan solo recibe el nombre de un grupo a crear por vez.
Como no pertenecen ninguno de los tres usuarios al grupo, los añadimos uno a uno con el
comando adduser. No se pueden añadir varios usuarios a la vez a un grupo con el
comando adduser.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 8/15
Sabemos que las cuentas de usuario no pertenecen al grupo contabilidad porque las
acabamos de crear. Si quisiéramos comprobarlo, podemos utilizar el comando id.
Para añadir una cuenta de usuario a un grupo utilizamos el comando adduser con dos
parámetros, el primero el nombre de la cuenta de usuario que queremos añadir al grupo,
y el segundo parámetro el nombre del grupo al que queremos añadir al usuario.
Ahora si, podemos comprobar, asegurándonos de que todo está como esperábamos, que
los usuarios pertenecen al grupo contabilidad utilizando el comando id.
Como en el caso anterior, añadimos las cuentas a ventas con adduser y después
comprobamos que realmente se han añadido con el comando id.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 9/15
Podemos observar como los usuarios se han añadido a la lista de miembros de los grupos
educatica, contabilidad y ventas.
16. Crea los directorios contabilidad, ventas y personal en el directorio
/educatica. Utiliza un solo comando.
Para crear los directorios dentro de educatica, tenemos que ejecutar el comando con sudo,
puesto que tenemos que tener permisos de root. Además, tenemos que utilizar la opción p,
puesto que el directorio /educatica no existe. Para no tener que escribir las rutas tres
veces, utilizamos las llaves.
Para mostrar permisos del directorio y no de su contenido, además de la opción -l, tenemos
que utilizar la opción -d, seguida de la ruta del directorio.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 10/15
19. Configura el directorio /educatica de forma que tan solo los miembros del
grupo educatica puedan acceder para realizar operaciones de lectura.
Necesitarás ejecutar más de un comando.
Según los permisos mostrados en la pregunta anterior, tenemos que realizar un par de
pasos para conseguir la configuración indicada, ejecutando un par de comandos.
Primero cambiamos el grupo del directorio, para que los miembros del grupo educatica
tengan una serie de permisos específicos.
Después, cambiamos los permisos tan solo de los otros, puesto que la configuración de
permisos para el grupo está como queríamos.
No hacemos nada con el propietario puesto que es el usuario root y este usuario siempre
podrá realizar cualquier acción sobre cualquier fichero o directorio.
20. Cambia el propietario del directorio /educatica/contabilidad para que el
propietario sea alfredoff.
Para cambiar el grupo de un fichero o directorio utilizamos el comando chgrp seguido del
nombre del nuevo grupo y la ruta del fichero o directorio al que realizar el cambio.
Para mostrar información de permisos utilizamos ls con la opción -l, pero si queremos
mostrar información del directorio en sí y no de su contenido, además tenemos que usar la
opción -d.
Atendiendo a los permisos que tenía el directorio previamente, como hemos podido
observar en la pregunta anterior, tan solo tenemos que quitar los permisos que tienen los
otros usuarios. Para ello, utilizamos el comando chmod con el modo simbólico indicando
que a los otros (o) les asignamos (=) ningún permiso (nada) después pasamos la ruta del
directorio al que queremos realizar el cambio.
25. Configura los permisos del directorio /educatica/ventas para que el usuario
marinapg pueda acceder para realizar operaciones de lectura y escritura, el
grupo ventas pueda acceder para realizar operaciones de solo lectura y el
resto de usuarios, los otros, no puedan realizar ningún tipo de operación.
Usamos el comando chmod para cambiar los permisos. Como vamos a cambiar todos los
permisos de un directorio utilizamos el modo octal. En este caso será 7 (rwx), 5(r-x) y
0(---).
26. Configura el directorio /educatica/personal para que los miembros del grupo
educatica puedan acceder solo para realizar operaciones de lectura, el resto
de usuarios no podrá acceder a este directorio. Tendrás que ejecutar, en este
caso, un par de comandos.
Primero comprobamos los permisos del directorio. Tenemos que cambiar el grupo del
directorio para que sea educatica. Esto lo hacemos con chgrp. Después, atendiendo a los
permisos que ya tenemos configurados, tan solo quitamos los permisos de los otros. Para
ello usamos chmod con el modo simbólico y asignamos a los otros ningún permiso. (o=)
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 12/15
Para crear los directorios dentro del directorio /educatica/personal vamos a utilizar las
llaves. El comando a usar será mkdir y debemos ejecutarlo como root, puesto que no
tenemos permisos como usuario normal.
Para que solo alfredoff pueda realizar operaciones en este directorio, primero tenemos
que ponerlo como propietario del directorio y después alterar los permisos para
que solo el propietario tenga permisos de acceso con lectura y escritura.
En este caso se han utilizado los modos simbólicos por practicar con ellos, pero se podría
haber utilizado perfectamente los modos en octal, con 700 (111 000 000 – rwx --- ---)
Estamos en el mismo caso que en la pregunta anterior, pero en este caso el propietario
será marinapg, así que hacemos los mismos pasos. Establecemos como propietario del
directorio a marinapg y cambiamos los permisos.
Exactamente igual que las dos preguntas anteriores. Cambiamos propietario del directorio
y establecemos los permisos para que solo el propietario pueda acceder para realizar
operaciones de lectura y escritura.
31. Añade permiso de lectura y acceso al grupo a todos los directorios que están
en /educatica/personal.
No obstante, la mejor opción sería utilizar el * para seleccionar todos los ficheros y
directorios dentro del directorio. En este caso concreto, como solo tenemos directorios
que además son los directorios a los que queremos cambiar los permisos, podemos
utilizar el comodín * sin problemas. Esta sería la mejor opción en este caso.
Para algo más elaborado deberíamos utilizar el comando find, con una tubería y el
comando xargs, pero por ahora esta solución nos viene bien. Como siempre, si queremos
hacer algo más elaborado todavía, podemos emplear scripts como veremos más adelante.
32. Cambia el grupo de todos los directorios que están dentro del directorio
/educatica/personal para que el grupo sea educatica.
Igual que en la pregunta anterior, podemos hacer uso de las llaves y seleccionamos uno a
uno los directorios a los que queremos cambiar el grupo.
La mejor opción, en este caso en el que lo único que hay en el directorio son los
directorios a los que queremos cambiar los grupos sería utilizar el * para seleccionar
todo el contenido del directorio, pero no el directorio en sí.
Podemos seleccionar con llaves los directorios dentro de los cuales queremos crear los dos
directorios: pub y priv. También, como es lógico, podemos utilizar llaves para crear los
directorios pub y priv dentro de los directorios personales de cada usuario.
También podríamos pensar en utilizar el * pero en este caso, para crear directorios dentro
de todos los directorios no funciona.
34. Configura todos los directorios priv dentro de los directorios que están
dentro del directorio /educatica/personal para que nadie, excepto el
propietario pueda acceder para realizar operaciones de lectura y escritura.
De esta forma, estos directorios serán
Igual que en la pregunta anterior, aquí no podemos utilizar * para seleccionar todos los
directorios y acceder a un directorio dentro de ellos. Tendríamos que utilizar algún tipo de
comando avanzado o un script.
35. Configura todos los directorios pub dentro de los directorios que están
dentro del directorio /educatica/personal para que el propietario y el grupo
puedan acceder para realizar operaciones de lectura y escritura. Los otros
usuarios no podrán realizar ninguna acción.
Igual que en la pregunta anterior, aquí no podemos utilizar * para seleccionar todos los
directorios y acceder a un directorio dentro de ellos. Tendríamos que utilizar algún tipo de
comando avanzado o un script.
36. Muestra el contenido del directorio del usuario alfredoff dentro del
directorio /educatica/personal. Analiza la información. ¿crees que los
directorios pub y priv cumplen su cometido?
Según la configuración de permisos, propietario y grupo estos directorios tan solo podrán
ser accedidos para realizar operaciones de lectura y escritura por el usuario root, pub y
priv, y por los miembros del grupo root en el caso del directorio pub.
pueda acceder a él. En el caso del directorio pub posiblemente queramos tener un
directorio de acceso para un grupo de usuarios, de forma que sea fácil compartir
información.
37. Configura el directorio priv del usuario
alfredoff,
/educatica/personal/alfredoff, de forma que tan solo alfredoff pueda acceder
para realizar operaciones de lectura y escritura. ¿Qué tendrás que hacer
Simplemente cambiamos el propietario del directorio para que solo alfredoff pueda realizar
accesos de lectura y escritura.
Cambiamos propietario y grupo con un solo comando, chown, para que el propietario sea
alfredoff y el grupo educatica. Con los permisos que teníamos configurados previamente se
cumplen las restricciones que se piden en el enunciado.
Se podría hacer algo así con un bucle for, usando la shell directamente. Si queremos algo
más elaborado, podemos crear un pequeño script.