Laboratorio 1 62/100

Anuncio
62/100
Programación Bajo Plataformas Abiertas
Prof. Francisco Siles
Hugo Zúñiga Calvo
A96988
Laboratorio 1
Primera parte: 0/20 Segunda parte: 42/50
1. Usuarios, Grupos y Permisos:
1) Agregar 2 usuarios denominados usuario1 y usuario 2:
Para agregar usuarios desde la consola en ubuntu se utiliza la instrucción
adduser, la cual tiene la sintaxis adduser [opción] “usuario” para el caso que se solicita se utilizó la
siguiente instrucción.
ubuntu@ubuntu:~$ sudo adduser usuario1
Adding user `usuario1' ...
Adding new group `usuario1' (1000) ...
Adding new user `usuario1' (1000) with group `usuario1' ...
Creating home directory `/home/usuario1' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for usuario1
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
Al utilizar el mismo comando para crear el usuario2 se da la misma respuesta
en la consola.
2) Agregar un grupo llamado ie0117 y agregarle el usuario1:
Para agregar un grupo desde la consola se utiliza el comando addgroup, ya
que ésta es la forma predeterminada para llevar a cabo esta operación en la consola de ubuntu y la
instrucción que se creó para probarla fue la siguiente:
ubuntu@ubuntu:~$ sudo addgroup ie0117
addgroup: The group `ie0117' already exists.
Para agregar al usuario1 a este grupo se utiliza la siguiente instrucción:
ubuntu@ubuntu:~$ sudo adduser usuario1 ie0117
The user `usuario1' is already a member of `ie0117'.
3) Crear una jerarquía de archivos en el directorio temporal:
Para crear una jerarquía de memoria se utiliza la instrucción mkdir, el cual
crea un directorio vacío y para crear los archivos vacíos se utiliza la instrucción touch:
ubuntu@ubuntu:/tmp$ mkdir DirectorioBase
ubuntu@ubuntu:/tmp$ cd DirectorioBase
ubuntu@ubuntu:/tmp/DirectorioBase$ mkdir Directorio1 Directorio2 Directorio3
ubuntu@ubuntu:/tmp/DirectorioBase$ cd Directorio1
ubuntu@ubuntu:/tmp/DirectorioBase/Directorio1$ touch Archivo1 Archivo2 Archivo3
ubuntu@ubuntu:/tmp/DirectorioBase/Directorio1$ cd ..
ubuntu@ubuntu:/tmp/DirectorioBase$ cd Directorio2
ubuntu@ubuntu:/tmp/DirectorioBase/Directorio2$ mkdir Directorio2-1 Directorio22ubuntu@ubuntu:/tmp/DirectorioBase/Directorio2$ touch Archivo4
Para comprobar que realmente funcionó la jerarquía de directorios se utilizó
el comando ls de manera recursiva como se observa en la siguiente instrucción:
ubuntu@ubuntu:/tmp/DirectorioBase$ ls -R
Directorio1 Directorio2 Directorio3
./Directorio1:
Archivo1 Archivo2 Archivo3
./Directorio2:
Archivo4 Directorio2-1 Directorio2-2
./Directorio2/Directorio2-1:
./Directorio2/Directorio2-2:
./Directorio3:
4) Cambiar los dueños de los directorios/archivos:
Falta a)
Para cambiar los dueños de los archivos o directorios se utiliza el comando
chown, el cual tiene la siguiente sintaxis chown [OPCIONES] UserOwner File. Para probar la
utilidad de esta instrucción se utilizó la siguiente linea:
ubuntu@ubuntu:/tmp/DirectorioBase$ sudo chown usuario1 Directorio1 Directorio2
ubuntu@ubuntu:/tmp/DirectorioBase$ ls -l
total 0
drwxr-xr-x 2 usuario1 ie0117 100 2012-03-20 03:04 Directorio1
drwxr-xr-x 4 usuario1 ie0117 100 2012-03-20 03:05 Directorio2
drwxr-xr-x 2 ubuntu ie0117 40 2012-03-20 03:04 Directorio3
Para el caso de las segunda asignación que era poner ciertos archivos como
pertenecientes al usuario 2 se obtuvo el siguiente resultado.
ubuntu@ubuntu:/tmp/DirectorioBase$ sudo chown
Directorio1/Archivo2 Directorio2/Directorio2-1
usuario2
ubuntu@ubuntu:/tmp/DirectorioBase$ ls -l Directorio1 Directorio2
Directorio1:
total 0
-rw-r--r-- 1 usuario2 ie0117 0 2012-03-20 03:04 Archivo1
-rw-r--r-- 1 usuario2 ie0117 0 2012-03-20 03:04 Archivo2
-rw-r--r-- 1 ubuntu ie0117 0 2012-03-20 03:04 Archivo3
Directorio1/Archivo1
Directorio2:
total 0
-rw-r--r-- 1 ubuntu ie0117 0 2012-03-20 03:05 Archivo4
drwxr-xr-x 2 usuario2 ie0117 40 2012-03-20 03:05 Directorio2-1
drwxr-xr-x 2 ubuntu ie0117 40 2012-03-20 03:05 Directorio2-2
5) Realizar las asignaciones de permisos:
En ubuntu existe una opción para que el supersusuario asigne los permisos de
un archivo y de esta forma se pueda definir cuales son las libertades que tiene un usuario ya sea el
dueño, perteneciente al grupo o cualquier otro. Para llevar a cabo estas asignaciones se utiliza el
comando chmod, para el cual se realizó la siguiente línea en la consola:
ubuntu@ubuntu:/tmp$ ls -l DirectorioBase
Comandos específicos?
total 0
drwxr-xr-x 2 usuario1 ie0117 100 2012-03-20 03:04 Directorio1
drwxr-xr-x 4 usuario1 ie0117 100 2012-03-20 03:05 Directorio2
drwxr-xr-x 2 ubuntu ie0117 40 2012-03-20 03:04 Directorio3
En este pedazo de código se puede observar que el cambio de los permisos en
el Directorio1 fue efectivo. Falta b) y c) .
6) Respuesta a las preguntas:
a) El usuario1 puede editar únicamente el archivo3, ya que éste es el único en
el cual el usuario tiene permiso por ser parte del grupo ie0117.
b) El usuario2 puede editar el archivo1 y el archivo2 debido a que él es el
dueño de los archivos y por lo tanto puede modificarlos de acuerdo con sus facultades.
c) El usuario1 puede agregar directorios al Directorio1, Directorio2 y
Directoriio 2-2. Esto debido a que en los primeros dos es owner y en el último forma parte del grupo
ie0117.
d) El usuario2 puede agregar archivos en el directorio Directorio2-1 debido a
que es el dueño de este directorio.
Falta 7.
2. Manejo de Procesos: 20/30
7) Comando ps con opciones a, ax y aux:
Al utilizar el comando ps se despliega la siguiente información, la cual
designa los procesos que se estan llevando a cabo en el sistema y además se muestra la
identificación del proceso:
Faltan preguntas.
PID TTY
TIME CMD
4082 pts/0
00:00:01 bash
5370 pts/0
00:00:00 ps
Si se utiliza el comando ps -a se cambia lo que muestra la consola por la
siguiente información:
ubuntu@ubuntu:/tmp$ ps -a
PID TTY
TIME CMD
3364 tty3
00:00:01 bash
3365 tty5
00:00:01 bash
3366 tty2
00:00:01 bash
3367 tty6
00:00:01 bash
3368 tty4
00:00:01 bash
3654 tty1
00:00:00 bash
5397 pts/0
00:00:00 ps
La diferencia entre esta opción y la pasada es que cuando se utiliza -a, la
ventana de comandos muestra todos los procesos de todos los usuarios y no únicaente los del
usuario actual.
Si se utiliza el comando ps -aux se despliega en la pantalla la información de
todos los procesos que se están llevando a cabo en la computadora, incluyendo los procesos del
root.
8) Ejecución del programa programa1:
La ejecución del programa1 muestra un ciclo infinito que se repite
infinitamente sin detenerse. Cuando se utiliza el comando CTRL-Z el programa detiene su
ejecución, estto se sabe debido a que el comando jobs muestra que el programa está detenido.
Cuando se utiliza el comando bg, el programa vuelve a ejecutarse, sin embargo todavía se puede
usar la consola debido a que el programa se ejecuta en el background. Cuando se ejecuta el
comando fg, el programa vuelve a mostrar la frase ciclo infinito en la pantalla de la consola y ésta
no se puede seguir usando.
9) Ejecución del programa programa2:
La ejecución del programa2 muestra una pantalla en blanco, que no hace
nada. Cuando se le envían las señales USR1, TERM y HUP lo que indica la ventana es que se
recibió la señal pero no hace nada específico con ello. Cuando se presiona CRTL-C lo único que
hace es imprimir en pantalla que se recibió la señal de CRTL-C. Cuando se le envía -KILL el
proceso se detiene por completo.
Descargar