Introducción a los Sistemas Operativos
Trabajo Práctico Nº 2
GNU/Linux - Comandos
1.- Usuarios
1) ¿Qué archivos son utilizados en un sistema GNU/Linux para guardar la
información de los usuarios?
2) ¿A que hacen referencia las siglas UID y GID? ¿Pueden coexistir UIDs
iguales en un sistema GNU/Linux? Desarrolle.
3) ¿Qué es el usuario root? ¿Puede existir más de un usuario con este perfil
en GNU/Linux? ¿Cuál es la UID del root?
4) Investigue la funcionalidad y parámetros de los siguientes comandos:
useradd o adduser usermod
Userdel o deluser su
groupadd who
groupdel passwd
2.- FileSystem
1) ¿Cómo son definidos los permisos sobre archivos en un sistema
GNU/Linux?
2) Investigue la funcionalidad y parámetros de los siguientes comandos
relacionados con los permisos en GNU/Linux:
chmod
chown
chgrp
3) Explique los conceptos de “full path name” y “relative path name”. De
ejemplos claros de cada uno de ellos.
4) ¿Con qué comando puede determinar en qué directorio se encuentra
actualmente? ¿Existe alguna forma de ingresar a su directorio personal sin
necesidad de escribir todo el path completo? ¿Podría utilizar la misma idea
para acceder a otros directorios? ¿Cómo? Explique con un ejemplo.
5) Investigue la funcionalidad y parámetros de los siguientes comandos
relacionados con el uso del FileSystem:
cd
df
mkdir
ln
rmdir
ls
mount
pwd
umount
cp
du
mv
3.- Otros comandos de Linux (Indique funcionalidad y parámetros):
tar wc
gzip grep
Introducción a los Sistemas Operativos
4.- Indique que acción realiza cada uno de los comandos indicados a continuación
considerando su orden. Suponga que se ejecutan desde un usuario que no es root ni
pertenece al grupo de root. (Asuma que se encuentra posicionado en el directorio de
trabajo del usuario con el que inició sesión). En caso de no poder ejecutarse el
comando indique la razón:
1) ls -l > prueba
2) ps > PRUEBA
3) chmod 710 prueba
4) chown root:root PRUEBA
5) chmod 777 PRUEBA
6) chmod 700 /etc/passwd
7) passwd root
8) rm PRUEBA
9) man /etc/shadow
10) find / -name *.conf
11) usermod root –d /home/newroot -L
12) cd /root
13) rm *
14) cd /etc
15) cp * /home –R
16) shutdown
5.- Indique que comando seria necesario ejecutar para realizar cada una de las
siguientes acciones:
1) Buscar todos los archivos de usuarios en los que su nombre contiene la
cadena “.conf”
2) Cambiar los permisos del archivo /home/<su nombre de usuario>/xxxx a:
1. Usuario: Lectura, escritura, ejecución
2. Grupo: Lectura, ejecución
3. Otros: ejecución
3) Cambiar los permisos del archivo /home/<su nombre de usuario>/yyyy a:
1. Usuario: Lectura, escritura.
2. Grupo: Lectura, ejecución
3. Otros: Ninguno
4) Borrar todos los archivos del directorio /tmp ¿que resultado obtuvo?
5) Guardar en el archivo /home/<su nombre de usuario>/donde el directorio
donde se encuentra en este momento. En caso de que el archivo exista no
se debe eliminar su contenido anterior.
6.- Indique que comando seria necesario ejecutar para realizar cada una de las
siguientes acciones:
1) Ingrese al sistema como usuario “root”
2) Cree un usuario. Elija para nombre, por convención, la primer letra de su
nombre seguida de su apellido. Asígnele una contraseña de acceso.
3) ¿Qué archivos fueron modificados luego de crear el usuario y qué directorios
se crearon?
4) Crear un directorio en /tmp llamado cursada_ISO
5) Copiar todos los archivos de /var/log al directorio antes creado.
6) Para el directorio antes creado (y los archivos y subdirectorios contenidos en
él) cambiar el propietario y grupo al usuario creado y grupo users.
Introducción a los Sistemas Operativos
7) Agregue permiso total al dueño, de escritura al grupo y escritura y ejecución a
todos los demás usuarios para todos los archivos dentro de un directorio en
forma recursiva.
8) Acceda a otra terminal virtual para iniciar sesión con el usuario antes creado.
9) Una vez que ingresó al sistema con el usuario antes creado, averigüe cuál es
el nombre de su terminal.
10) Verifiqué la cantidad de usuarios conectados al sistema.
11) Vuelva a la terminal del usuario root y envíele un mensaje al usuario
anteriormente creado, avisándole que el sistema va a ser apagado.
12) Apague el sistema.
7.- Indique que comando seria necesario ejecutar para realizar cada una de las
siguientes acciones:
1) Cree un directorio cuyo nombre sea su número de legajo e ingrese a él.
2) Cree un archivo utilizando el editor de textos vi, e introduzca su información
personal: Nombre, Apellido, Número de alumno y dirección de correo
electrónico. El archivo debe llamarse LEAME
3) Cambie los permisos del archivo LEAME, de manera que se puedan ver
reflejados los siguientes permisos:
Dueño: ningún permiso
Grupo: permiso de ejecución
Otros: todos los permisos
4) Vaya al directorio /etc y verifique su contenido. Cree un archivo dentro de su
directorio personal cuyo nombre sea leame donde el contenido del mismo sea
el listado de todos los archivos y directorios contenidos en /etc. ¿Cuál es la
razón por la cuál puede crear este archivo si ya existe un archivo llamado
LEAME en este directorio?
5) ¿Qué comando utilizaría y de qué manera si tuviera que localizar un archivo
dentro del file system? ¿Y si tuviera que localizar varios archivos con
características similares? Explique el concepto teórico y ejemplifique
6) Utilizando los conceptos aprendidos en el punto 5), busque todos los archivos
cuya extensión sea .sh y almacene el resultado de esta búsqueda en un
archivo dentro del directorio creado en 1). El archivo deberá llamarse
ejercicio_7
8.- Indique que acción realiza cada uno de los comandos indicados a continuación
considerando su orden. Suponga que se ejecutan desde un usuario que no es root ni
pertenece al grupo de root. (Asuma que se encuentra posicionado en el directorio de
trabajo del usuario con el que se logueó). En caso de no poder ejecutarse el comando
indique la razón:
1) mkdir iso
2) cd ./iso; ps > f0
3) ls > f1
4) cd /
5) echo $HOME
6) ls -l > $HOME/iso/ls
7) cd $HOME; mkdir f2
8) ls –ld f2
9) chmod 341 f2
10) touch dir
Introducción a los Sistemas Operativos
11) cd f2
12) cd ~/iso
13) pwd >f3
14) ps | grep 'ps' | wc -l >> ../f2/f3
15) chmod 700 ../f2; cd ..
16) find . -name etc/passwd
17) find / -name etc/passwd
18) mkdir ejercicio10
1) Inicie 2 sesiones utilizando su nombre de usuario y contraseña. En una sesión
vaya siguiendo paso a paso las órdenes que se encuentran escritas en el
cuadro superior. En la otra sesión, cree utilizando algún editor de textos un
archivo que se llame ejercicio8_explicación dentro del directorio creado en el
ejercicio 7.1) y, para cada una de las órdenes que ejecute en la otra sesión,
realice una breve explicación de los resultados obtenidos.
2) Complete en el cuadro superior, los comandos 19 y 20, de manera tal que
realicen la siguiente acción:
19: Copiar el directorio iso y todo su contenido al directorio
creado en el inciso 7.1)
20: Copiar el resto de los archivos y directorios que se crearon
en este ejercicio al directorio creado en el ejercicio 7.1)
3) Ejecute las órdenes 19 y 20 y coméntelas en el archivo creado en el inciso 8.1).
9.- Cree una estructura desde el directorio /home que incluya varios directorios,
subdirectorios y archivos, según el esquema siguiente. Asuma que “usuario” indica
cuál es su nombre de usuario. Además deberá tener en cuenta que dirX hace
referencia a directorios y fX hace referencia a archivos:
Utilizando la estructura de directorios anteriormente creada, indique que comandos son
necesarios para realizar las siguientes acciones:
Mueva el archivo f3 al directorio de trabajo /home/usuario
Copie el archivo f4 en el directorio dir11
Haga los mismo que en el inciso anterior pero el archivo de destino, se
debe llamar f7
Cree el directorio copia dentro del directorio usuario y copie en él, el
contenido de dir1
Introducción a los Sistemas Operativos
Renombre el archivo f1 por el nombre archivo y vea los permisos del mismo
Cambie los permisos del archivo llamado archivo de manera de reflejar lo
siguiente:
Usuario: Permisos de lectura y escritura
Grupo: Permisos de ejecución
Otros: Todos los permisos
Renombre los archivos f3 y f4 de manera que se llamen f3.exe y f4.exe
respectivamente.
Utilizando un único comando cambie los permisos de los dos archivos
renombrados en el inciso anterior, de manera de reflejar lo siguiente:
Usuario: Ningún permiso
Grupo: Permisos de escritura
Otros: Permisos de escritura y ejecución
10.- Indique que comando/s es necesario para realizar cada una de las acciones de la
siguiente secuencia de pasos (considerando su orden de aparición):
1) Cree un directorio llamado logs en el directorio /tmp.
2) Copie todo el contenido del directorio /var/log en el directorio creado en el
punto anterior.
3) Empaquete el directorio creado en 1, el archivo resultante se debe llamar
misLogs.tar
4) Empaquete y comprima el directorio creado en 1, el archivo resultante se
debe llamar misLogs.tar.gz
5) Copie los archivos creados en 3 y 4 al directorio de trabajo de su usuario
6) Elimine el directorio creado en 1 (logs)
7) Desempaquete los archivos creados en 3 y 4 en 2 directorios diferentes.
11.- Proceso de Arranque
1) Enumere los pasos del proceso de inicio de un sistema GNU/Linux, desde
que se prende la PC hasta que se logra obtener el login en el sistema.
2) Proceso INIT. ¿Quién lo ejecuta? ¿Cuál es su objetivo?
3) RunLevels. ¿Qué son? ¿Cuál es su objetivo? Cite los estándares definidos.
¿Dónde se define que Runlevel ejecutar? ¿todas las distribuciones
respetan estos estándares?
4) Indique como haría para cambiar de un runlevel a otro.
6) Scripts RC. ¿Cuál es su finalidad? ¿Dónde se almacenan? Cuando un
sistema GNU/Linux arranca o se detiene se ejecutan scripts, indique como
determina que script ejecutar ante cada acción. ¿Existe un orden para
llamarlos? Desarrolle.
12.- Procesos
1) ¿Qué es un proceso? ¿A que hacen referencia las siglas PID y PPID?
¿Todos los procesos tienen estos atributos en GNU/Linux? Justifique.
Indique que otros atributos tiene un proceso.
2) Para investigar: ¿Qué significa que un proceso se esta ejecutando en
Background? ¿Y en Foreground?
Introducción a los Sistemas Operativos
3) ¿Cómo puedo hacer para ejecutar un proceso en Background? ¿Como
puedo hacer para pasar un proceso de background a foreground y
viceversa?
4) Comando Kill. ¿Cuál es su funcionalidad?
5) Indique el comando para terminar el proceso con PID 23
6) Termine el proceso llamado init. ¿Qué resultados obtuvo?
7) Guardar una lista de procesos en ejecución en el archivo /home/<su
nombre de usuario>/procesos
8) Investigue la funcionalidad y parámetros de los siguientes comandos
relacionados con el manejo de procesos en GNU/Linux. Además
compárelos entre ellos:
ps kill
pstree killall
top nice
9) Para investigar: Pipe ( | ). ¿Cual es su finalidad? Cite ejemplos de su
utilización.