SSOO GNUBash 03 Permisos Propietario y Grupo A01

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 15

v1.

0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 1/15

A01 - Permisos propietario grupo


Información sobre el documento .............................................................................................................
1

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

operaciones de lectura y escritura. Puede que tengas que ejecutar más de un


comando.
31. Añade permiso de lectura y acceso a todos los directorios que están en
/educatica/personal.
32. Cambia el grupo de todos los directorios que están dentro del directorio
/educatica/personal para que el grupo sea educatica.
33. Crea, dentro de todos los directorios dentro del directorio /educatica/personal dos
directorios, uno llamado priv y otro llamado pub. Puedes usar comodines y llaves para
agilizar el comando.
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
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.
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?
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?
38. Configura el directorio pub del usuario alfredoff, /educatica/personal/alfredoff, de forma
que tan solo alfredoff y los miembros del grupo educatica puedan acceder para realizar
operaciones de lectura y escritura. ¿Qué tendrás que hacer?
3. -Solución
1. Muestra el contenido del directorio actual con información extendida de
permisos.

Para mostrar el contenido de un directorio con información extendida de permisos,


propietario, grupo, fecha y tamaño del fichero utilizamos la opción -l.

2. Muestra los permisos del directorio actual, no de su contenido.


v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 4/15

Si queremos mostrar la información extendida de permisos, propietario y grupo de un


directorio y no de su contenido, tenemos que utilizar, además de la opción -l, la opción -d.
De esta forma, indicamos al comando ls que queremos obtener información del directorio
en sí mismo, no de su contenido.

3. Crea los directorios publico, privado y compartido en tu directorio personal.

Simplemente utilizamos el comando mkdir y pasamos por parámetro las rutas relativas de
los directorios a crear.

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.

Para mostrar información de los directorios y no de su contenido, volvemos a utilizar las


opciones -ld.
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.

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.

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.

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 propietario y el grupo


comparten permisos, así que podemos agruparlos “ug”. Para los otros, le asignamos otros
permisos (o=rx), separando con una coma.

8. Muestra información extendida de estos directorios.

Para mostrar información extendida de los directorios y no de su contenido utilizamos la


opción -ld del comando ls.

9. Comprueba si existe la cuenta de usuario alfredoff en el sistema. Si no


existe, créala.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 6/15

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.

10. Comprueba si existe la cuenta de usuario marinapg en el sistema. Si no


existe, créala.

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.

11. Comprueba si existe la cuenta de usuario ramonam en el sistema. Si no


existe, créala.

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.

13. Asegúrate que los usuarios alfredoff, marinapg y ramonam pertenecen al


grupo educatica. Si no pertenecen, añádelos al grupo.

Para comprobar si los usuarios pertenecen a un grupo, podemos utilizar el comando id


pasando como parámetro el nombre del usuario para el que queremos consultar su
información.

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

Si en nuestro futuro profesional necesitamos añadir muchos usuarios a un grupo o crear


muchas cuentas de usuario en un sistema siempre tenemos la opción de crear un script
que se encargue de hacer. Uno de los principios básicos de GNU/Linux y de Unix en general
es mantener las cosas simples. Cada comando hace lo que tiene que hacer de forma
eficiente y simple, si necesitamos más podemos crear scripts o conectar varios
comandos con tuberías.
14. Asegúrate que los usuarios alfredofff y marinapg pertenecen al grupo
contabilidad.

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.

15. Asegúrate que los usuarios marinapg y ramonam pertenecen al grupo


ventas.

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

Vamos a echar un vistazo también al fichero de configuración de grupo del sistema,


mostrando las tres últimas líneas que es donde esta la información de los tres últimos
grupos creados en el sistema.

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.

17. Muestra el contenido del directorio /educatica con información extendida de


permisos.

Utilizamos ls con la opción -l.

18. Muestra los permisos del directorio /educatica, no de su contenido.

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.

Cambiamos de propietario de un fichero utilizando el comando chown seguido del nombre


del usuario que será el nuevo propietario y de la ruta del fichero o directorio para el que
queremos hacer el cambio.

21. Cambia el grupo del directorio directorio /educatica/contabilidad para que el


grupo sea contabilidad.

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.

22. Muestra información de permisos, propietario y grupo del directorio


/educatica/contabilidad, no de su contenido.

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.

23. Configura los permisos del directorio /educatica/contabilidad de forma que


alfredoff pueda acceder para realizar cualquier operación, los miembros del
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 11/15

grupo contabilidad puedan acceder para realizar operaciones de lectura y los


otros usuarios no puedan hacer nada.

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.

24. Configura el directorio /educatica/ventas para que el propietario sea


marinapg y el grupo sea ventas.

Con el comando chown podemos cambiar a la vez el propietario y el grupo de un fichero.

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

Comprobamos la configuración de permisos, propietario y grupo con el comando ls y las


opciones -ld. Si nos fijamos el propietario es root. Esto no es un problema,puesto que el
usuario root podrá hacer lo que quiera en el sistema, esté o no esté en los permisos del
fichero.

27. Crea, dentro del directorio /educatica/personal un directorio para cada


cuenta de usuario creada en este ejercicio: alfredoff, marinapg y ramonam.

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.

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.

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

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.

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.

El orden de las operaciones no afectaría al resultado. Podemos cambiar primero los


permisos y después cambiar el propietario del directorio. De nuevo, podríamos haber
utilizado el modo octal para establecer los permisos con 700.

30. Configura los permisos del directorio de ramonam en el directorio


/educatica/personal para que tan solo este usuario pueda acceder a dicho
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 13/15

directorio pudiendo realizar operaciones de lectura y escritura. Puede que


tengas que ejecutar más de un comando.

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.

Podemos hacer el cambio directorio a directorio utilizando las llaves.

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í.

33. Crea, dentro de todos los directorios dentro del directorio


/educatica/personal dos directorios, uno llamado priv y otro llamado pub.
Puedes usar comodines y llaves para agilizar el comando.
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 14/15

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.

Posiblemente, esto no es lo que queremos. Atendiendo a los nombres de los directorios


posiblemente queramos que el directorio priv sea privado y nadie más que el usuario
v1.0/09 Bash shell - Comandos de gestión de permisos, propietario y grupo 15/15

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.

38. Configura el directorio pub del usuario


alfredoff,
/educatica/personal/alfredoff, de forma que tan solo alfredoff y los miembros del
grupo educatica puedan acceder para realizar operaciones de lectura y
escritura. ¿Qué tendrás que hacer?

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.

Un pequeño detalle avanzado….

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.

También podría gustarte