Diferencia entre revisiones de «Ejercicios boletín 1 y 2»
De Wiki de Sistemas Operativos
m (Pneira trasladó la página Ejercicios laboratorio de Sistemas Operativos a Ejercicios boletín 1 y 2) |
|||
| (No se muestran 7 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
| + | = Ejercicio 1 = | ||
| + | |||
* Cree una máquina virtual | * Cree una máquina virtual | ||
* Obtenga dirección IP, compruebe conectividad, actualice paquetes | * Obtenga dirección IP, compruebe conectividad, actualice paquetes | ||
| Línea 23: | Línea 25: | ||
* Muestre todos los directorios que hay en el home del usuario prueba | * Muestre todos los directorios que hay en el home del usuario prueba | ||
* Cuenta el número de directorios que hay en el home del usuario prueba | * Cuenta el número de directorios que hay en el home del usuario prueba | ||
| + | * Instale el paquete python3-hug. | ||
| + | * Edite el fichero example.py que contenga lo siguiente: | ||
| + | |||
| + | import hug | ||
| + | |||
| + | @hug.get() | ||
| + | def hello(): | ||
| + | return "hello world!" | ||
| + | |||
| + | |||
| + | * lance el programa con: | ||
| + | |||
| + | hug -f example.py | ||
| + | |||
| + | * Con wget, envíe una petición a http://127.0.0.1:8000/hello | ||
| + | |||
| + | * Averigue el PID del proceso ''hug'' y termine su ejecución de manera no abrupta. | ||
| + | * Edite el fichero example.py y añada en la primera línea del fichero: | ||
| + | |||
| + | #!/usr/bin/hug -f | ||
| + | |||
| + | - NOTA: Esta nomenclatura se denomina [https://es.wikipedia.org/wiki/Shebang ''shebang''] e indica el binario que permite ejecutar el programa descrito en dicho fichero. | ||
| + | |||
| + | * Dé permisos de lectura, escritura y ejecución a ''example.py'' al propietario, no dé ningún permiso al grupo y al resto del mundo | ||
| + | * Pruebe a lanzar el programa ''example.py'' mediante: | ||
| + | |||
| + | ./example.py | ||
| + | |||
| + | = Ejercicio 2 = | ||
| + | |||
| + | * Cree una máquina virtual | ||
| + | * Obtenga dirección IP, compruebe conectividad, actualice paquetes | ||
| + | * Cree dos usuarios 'prueba1' y 'prueba2' | ||
| + | * Cree el grupo 'prueba' | ||
| + | * Añada 'prueba1' y 'prueba2' al grupo 'prueba' | ||
| + | * Cree el siguiente árbol de carpetas y ficheros en el home de 'prueba1' | ||
| + | |||
| + | | | ||
| + | |--a | ||
| + | | |_ x.txt | ||
| + | | |_ y.txt | ||
| + | | | ||
| + | |__b | ||
| + | * copie la carpeta a al temporal. | ||
| + | * mueva el contenido de la carpeta 'a' a la carpeta 'b' | ||
| + | * Dé permiso al grupo prueba para que prueba2 pueda acceder a las carpetas a y b en el home de prueba1. | ||
| + | * Instale el paquete 'cowsay' | ||
| + | * Ejecute el programa 'cowsay' con: | ||
| + | |||
| + | cowsay "Hola amigos" | ||
| + | |||
| + | * Vuelque la salida de cowsay al fichero "prueba.txt" | ||
| + | * Cree el fichero example.py con el siguiente contenido: | ||
| + | |||
| + | import http.server | ||
| + | import socketserver | ||
| + | |||
| + | PORT = 8080 | ||
| + | Handler = http.server.SimpleHTTPRequestHandler | ||
| + | |||
| + | with socketserver.TCPServer(("", PORT), Handler) as httpd: | ||
| + | print("serving at port", PORT) | ||
| + | httpd.serve_forever() | ||
| + | |||
| + | * Láncelo con: python3 example.py | ||
| + | * Averigue el PID del proceso 'python3 example.py' lanzado anteriormente y termine la ejecución del proceso mediante la señal abrupta | ||
Revisión actual del 17:17 7 abr 2022
Ejercicio 1
- Cree una máquina virtual
- Obtenga dirección IP, compruebe conectividad, actualice paquetes
- Cree un usuario 'prueba' y úselo
- Cree el siguiente árbol de carpetas y ficheros en el home de 'prueba', como usuario 'prueba'
| |--a | |--b | |--c | |--d | |--e
donde haya un fichero x.txt en a y un fichero y.txt en b.
- Copie la carpeta c al temporal
- Renombre b a w
- Establezca permisos de sólo lectura para el propietario del fichero x
- Como root, cree el fichero prueba.txt en el temporal y cambie el propietario y el grupo al usuario prueba
- Muestre todos los directorios que hay en el home del usuario prueba
- Cuenta el número de directorios que hay en el home del usuario prueba
- Instale el paquete python3-hug.
- Edite el fichero example.py que contenga lo siguiente:
import hug @hug.get() def hello(): return "hello world!"
- lance el programa con:
hug -f example.py
- Con wget, envíe una petición a http://127.0.0.1:8000/hello
- Averigue el PID del proceso hug y termine su ejecución de manera no abrupta.
- Edite el fichero example.py y añada en la primera línea del fichero:
#!/usr/bin/hug -f
- NOTA: Esta nomenclatura se denomina shebang e indica el binario que permite ejecutar el programa descrito en dicho fichero.
- Dé permisos de lectura, escritura y ejecución a example.py al propietario, no dé ningún permiso al grupo y al resto del mundo
- Pruebe a lanzar el programa example.py mediante:
./example.py
Ejercicio 2
- Cree una máquina virtual
- Obtenga dirección IP, compruebe conectividad, actualice paquetes
- Cree dos usuarios 'prueba1' y 'prueba2'
- Cree el grupo 'prueba'
- Añada 'prueba1' y 'prueba2' al grupo 'prueba'
- Cree el siguiente árbol de carpetas y ficheros en el home de 'prueba1'
| |--a | |_ x.txt | |_ y.txt | |__b
- copie la carpeta a al temporal.
- mueva el contenido de la carpeta 'a' a la carpeta 'b'
- Dé permiso al grupo prueba para que prueba2 pueda acceder a las carpetas a y b en el home de prueba1.
- Instale el paquete 'cowsay'
- Ejecute el programa 'cowsay' con:
cowsay "Hola amigos"
- Vuelque la salida de cowsay al fichero "prueba.txt"
- Cree el fichero example.py con el siguiente contenido:
import http.server import socketserver
PORT = 8080 Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
- Láncelo con: python3 example.py
- Averigue el PID del proceso 'python3 example.py' lanzado anteriormente y termine la ejecución del proceso mediante la señal abrupta