Instituto Tecnológico de Las Américas
Centro De Excelencia De Redes y Seguridad
Sistemas Operativos III (TI-303)
Datos del estudiante:
Nombre: ________________________________________________________________
Matricula: _____________________________
Fecha: ____________________
Laboratorio 1 – Tareas básicas de gestión del sistema
Objetivo
• Conocimientos básicos de Shell
• Edición de archivos con vim
• Trabajar con la jerarquía del sistema de archivos
• Gestión de Archivos, uso de enlaces, trabajar con Archivos y Ficheros Comprimidos
• Uso de herramientas comunes relacionadas con archivos de texto
• Expresiones regulares, uso de grep y otras utilidades de procesamiento de texto
• Trabajar en consolas (SHELL), Uso de SSH
• Creación y gestión de cuentas de usuario y grupo
• Gestión de permisos
• Fundamentos de las redes
Requerimiento:
Descargar OS en la plataforma de PNETLAB con el comando ishare pull qemu ****
Nombre OS/Appliance Firmware
Rocky Linux 9.2 Correr Script
Switch Cisco L2 (qemu) Viosl2-adventerprisek9-
m.ssa.high_iron_20200929
Network Management (Cloud0)
Topología
Tabla de asignación de direcciones
Gateway
Dispositivo Interfaz IP Address / Prefix predeterminado
Server 1 E0 DHCP N/D
Server 2 E0 DHCP N/D
Switch E0/0 N/D N/D
Internet E0 DHCP N/D
1.0 Pre-instalación de Rocky Linux 9.2
A continuación, la idea de este script es tener nuestro sistema operativo para
trabajar en nuestro entorno virtual.
Pasos para la instalación de nuestro sistema operativo en PNETLAB:
1-Crear un script con el nombre de setup_rocky.sh y escribir lo siguiente:
#!/bin/bash
# Crear directorio
mkdir /opt/unetlab/addons/qemu/linux-Rocky-9.2/
cd /opt/unetlab/addons/qemu/linux-Rocky-9.2/
# Descargar Rocky Linux
wget https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.2-
x86_64-dvd.iso
# Renombrar el archivo descargado
mv Rocky-9.2-x86_64-dvd.iso cdrom.iso
# Crear primer disco
/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 30G
# Crear segundo disco
/opt/qemu/bin/qemu-img create -f qcow2 virtiob.qcow2 30G
# Corregir permisos
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
2- Guarda este script en un archivo y Luego, dale permisos de ejecución
utilizando el comando:
chmod +x setup_rocky.sh
3- Finalmente, ejecuta el script usando:
./setup_rocky.sh
1.1) Uso de comandos internos y externos desde el shell
1. Autenticarse en el servidor1.
2. Click Activities. En la barra de búsqueda que aparece, escriba term y haga
clic en el icono de terminal que aparece para abrir un terminal.
3. Escriba time ls. Esto ejecuta el comando ls donde el time muestra
información sobre el tiempo que tomó completar este comando.
4. Escriba which time. Esto muestra el nombre de archivo /usr/bin/time que
se encontró en la variable $PATH.
5. Escriba time, que muestra que time es una palabra clave de shell.
6. Escriba echo $PATH para mostrar el contenido de la variable $PATH. Puede
ver que /usr/bin está incluido en la lista, pero debido a que también hay un
time de comando interno, el comando time de la ruta no se ejecutará a menos
que le indique al shell específicamente que lo haga: el comando en el paso 2
tiene ejecutó el comando interno por usted debido a la prioridad del comando.
7. Escriba /usr/bin/time ls para ejecutar el comando /usr/bin/time al ejecutar
ls. Notará que la salida difiere por completo. Ignorar el significado de la salida;
Volvemos a eso más tarde. Lo que importa por ahora es que te des cuenta de
que estos son realmente dos comandos diferentes.
1.2) Utilización de la redirección de E/S y el Pipes
1. Abra un shell como usuario user y escriba cd sin ningún argumento. Esto
garantiza que el directorio principal de este usuario sea el directorio actual
mientras se trabaja en este ejercicio. Escriba pwd para comprobarlo.
2. Escriba ls. Verá la salida del comando ls en la pantalla.
3. Escriba ls > /dev/null. Esto redirige STDOUT al dispositivo nulo, con el
resultado de que no lo verá.
4. Escriba ls ilwehgi > /dev/null. Este comando muestra un mensaje "no such
file or directory" en pantalla. Verá el mensaje porque no es STDOUT, sino un
mensaje de error que se escribe en STDERR.
5. Escriba ls ilwehgi 2> /dev/null. Ahora ya no verá el mensaje de error.
6. Escriba ls ilwehgi /etc 2> /dev/null. Esto muestra el contenido de la carpeta
/etc mientras oculta el mensaje de error.
7. Escriba ls ilwehgi /etc 2> /dev/null > output. En este comando, aún escribe
el mensaje de error en /dev/null mientras envía STDOUT a un archivo con el
nombre de salida que se creará en su directorio principal.
8. Escriba cat output para mostrar el contenido de este archivo.
9. Escriba echo hello > output. Esto sobrescribe el contenido del archivo de
salida. Verifique esto utilizando cat output nuevamente.
10. Escriba ls >> output. Esto anexa el resultado del comando ls al archivo de
salida. Escriba cat output para verificar.
11. Escriba ls -R/. Esto muestra una larga lista de archivos y carpetas que se
desplazan sobre el monitor de su computadora. (Es posible que desee
presionar Ctrl-C para detener [o esperar algún tiempo]).
12. Tipo ls -R /. | less. Esto muestra el mismo resultado, pero en el
empaginador de less, donde puede desplazarse hacia arriba y hacia abajo
usando las teclas de flecha de su teclado.
13. Escriba q para cerrar less. Esto también pondrá fin al programa ls.
14. Escriba ls > /dev/tty1. Esto da un mensaje de error porque está ejecutando
el comando como un usuario normal y los usuarios normales no pueden
direccionar los archivos del dispositivo directamente (a menos que haya
iniciado sesión en tty1). Solo el usuario root tiene permiso para escribir
directamente en los archivos del dispositivo.
1.3) Trabajando con el comando history
1. Asegúrese de haber abierto un shell como user.
2. Escriba history para obtener una descripción general de los comandos que
ha utilizado anteriormente.
3. Type some commands, such as the following:
ls
pwd
cat /etc/hosts
ls –l
El objetivo es llenar un poco la historia.
4. Abra un segundo terminal en su servidor. Para ello, haga clic en Activities
en la esquina superior izquierda y, en la barra de búsqueda, escriba term. A
continuación, haga clic en la ventana del terminal para iniciarlo.
5. Escriba history desde esta segunda ventana del terminal. Observe que no ve
los comandos que acaba de escribir en el otro terminal. La razón es que el
archivo de historial aún no se ha actualizado.
6. Desde la primera sesión de terminal, presione Ctrl-r. En el mensaje que se
abre ahora, escriba ls. Verá el último comando ls que usó. Presione Ctrl-r de
nuevo. Ahora verá que está mirando hacia atrás y que el comando ls anterior
está resaltado. Pulse Intro para ejecutarlo.
7. Escribe history | grep cat. El comando grep busca en la salida del historial
cualquier comando que contenga el texto cat. Anote el número de comando
de uno de los comandos cat que ha utilizado anteriormente.
8. Escriba !nn, donde nn se sustituye por el número que anotó en el paso 7.
Verás que se repite el último comando cat.
9. Cierre este terminal escribiendo exit.
10. En la ventana de terminal restante, escriba history -c. Esto borra toda la
historia que está actualmente en la memoria. Cierre también esta sesión de
terminal.
11. Abra una nueva sesión de terminal y escriba history. El resultado puede
ser un poco inesperado, pero verá una lista de comandos de todos modos. La
razón es que history -c borra el historial en memoria, pero no elimina el archivo
.bash_history en su directorio de inicio.
1.4) Uso de Bash
1. Aún desde un shell de usuario, escriba gd y presione Tab. Verás que no pasa
nada.
2. Presione Tab nuevamente. Bash ahora muestra una breve lista de todos los
comandos que comienzan con las letras gd.
3. Para dejar claro a Bash lo que quieres, escribe i (para que tu prompt en este
punto muestre el comando gdi). Presione Tab nuevamente. Bash ahora
completa el comando a gdisk. Pulse Intro para iniciarlo y pulse Intro de nuevo
para cerrarlo.
4. Utilice cd /etc para ir al directorio /etc.
5. Escriba cat ps y presione Tab. Debido a que solo hay un archivo que
comienza con pas, Bash sabe qué hacer y completa automáticamente el
nombre del archivo a passwd. Pulse Intro para ejecutar el comando.
1.5) Práctica vim
1. Escriba vim ~/testfile. Esto inicia vim y abre un archivo con el nombre testfile
en ~, que representa su directorio de inicio actual.
2. Escriba i para ingresar al modo de entrada y luego escriba el siguiente texto:
cow
sheep
ox
chicken
snake
fish
oxygen
3. Presione Esc para volver al modo de comando y escriba :w para escribir el
archivo con el mismo nombre de archivo.
4. Escriba :3 para ir a la línea número 3.
5. Escriba dd para eliminar esta línea.
6. Escriba dd de nuevo para eliminar otra línea.
7. Escriba u para deshacer la última eliminación.
8. Escriba o para abrir una nueva línea.
9. Ingrese un poco más de texto en la posición actual del cursor:
tree
farm
10. Press Esc to get back into command mode.
11. Escriba :%s/ox/OX/g y observe los cambios en la línea que contenía ox.
12. Escriba :wq para escribir el archivo y salir. Si por alguna razón eso no
funciona, use :wq!
1.6) Managing the Shell Environment
1. Abra un shell en el que sea usuario user.
2. Escriba echo $LANG para mostrar el contenido de la variable que establece
la configuración de teclado e idioma de su sistema.
3. Escriba ls --help. Verá que la ayuda sobre el comando ls se muestra en la
configuración de idioma actual de su computadora.
4. Escriba LANG=es_ES. UTF-8. Esto establece temporalmente la variable de
idioma en español. Escriba ls --help de nuevo para verificar.
5. Escriba exit para cerrar la ventana de su terminal. Debido a que no ha
cambiado el contenido de ninguno de los archivos mencionados
anteriormente, cuando abra un nuevo shell, se utilizará el valor original de la
variable LANG.
6. Abra un shell como user nuevamente.
7. Verifique el valor actual de la variable LANG escribiendo echo $LANG.
8. Escriba vim .bashrc para abrir el archivo de configuración .bashrc.
9. En este archivo, agregue la línea COLOR = rojo para establecer una variable
con el nombre COLOR y asígnele el valor rojo. Tenga en cuenta que esta
variable realmente no cambia nada en su sistema; simplemente establece una
variable.
10. Cierre el shell de usuario y abra un nuevo shell de user.
11. Verifique que la variable COLOR se haya configurado, utilizando echo
$COLOR. Dado que el archivo .bashrc se incluye en el procedimiento de inicio
de sesión, la variable se establece después de iniciar sesión.
1.7) Usando man -k
1. Asegúrese de haber iniciado sesión como cuenta de user.
2. Debido a que man -k no da el resultado esperado, tiene sentido buscar en
la página man el comando man para obtener información adicional sobre man
-k. Escriba man man para abrir la página man de man. Una vez en la página
man, escriba /-k para buscar una descripción de la opción -k . Escriba n varias
veces hasta llegar a la línea que describe la opción. Verás que man -k es
equivalente a apropos y que puedes leer la página man de apropos para
obtener más detalles. Así que escriba q para salir de esta página man.
3. Escriba man apropos y lea los primeros párrafos de la descripción. Verá que
la base de datos buscada por apropos es actualizada por el programa mandb.
4. Escriba man mandb. Esta página man explica cómo ejecutar mandb para
actualizar la base de datos mandb. Como leerás, todo lo que necesitas hacer
es escribir mandb, que hace el trabajo por ti.
5. Escriba sudo mandb para actualizar la base de datos mandb. Tenga en
cuenta que no verá que se agreguen muchas páginas de manual si la base de
datos mandb ya estaba actualizada.
1.8) Uso de la info
1. Escriba man ls. Escriba G para ir al final de la página man y mire la sección
"Ver también". Le indica que la documentación completa para ls se mantiene
como un manual de Texinfo que se puede mostrar con el comando info. Salga
de la página man presionando q.
2. Escriba pinfo '(coreutils) ls invocation'. Esto muestra la información sobre
el uso de ls en la página pinfo. Léalo y presione q cuando haya terminado.
Alternativamente, puede usar el comando info, pero pinfo muestra un formato
más agradable.
1.9) Obtener una visión general de los montajes actuales
1. Inicie sesión como user y escriba mount. Observe que la salida del comando
es bastante abrumadora. Sin embargo, si lee cuidadosamente, verá algunos
directorios de la estructura de directorios de Linux y sus montajes
correspondientes.
2. Tipo df -hT. Tenga en cuenta que se muestran muchos menos dispositivos.
1.10) Trabajar con directorios
1. Abra un shell como user. Escriba cd. A continuación, escriba pwd, que
significa directorio de trabajo de impresión. Verá que actualmente está en su
directorio de inicio; es decir, name /home/<username>.
2. Escriba touch file1. Este comando crea un archivo vacío con el nombre file1
en el servidor. Dado que actualmente se encuentra en el directorio principal,
puede crear cualquier archivo que desee.
3. Escriba cd /. Esto cambia el directorio actual al directorio root (/). Escriba
touch file2. Verás el mensaje "permiso denegado". Los usuarios normales
pueden crear archivos solo en directorios donde tienen los permisos
necesarios para esto.
4. Escriba cd /tmp. Esto le lleva al directorio /tmp, donde todos los usuarios
tienen permisos de escritura. De nuevo, escriba touch file2. Verá que puede
crear elementos en el directorio /tmp (a menos que ya haya un archivo2 que
sea propiedad de otra persona).
5. Escriba cd sin argumentos. Este comando le devuelve al directorio de inicio.
6. Escriba mkdir files. Esto crea un directorio con los archivos de nombre en el
directorio actual. El comando mkdir utiliza el nombre del directorio que debe
crearse como un nombre de ruta relativo; es relativo a la posición en la que se
encuentra actualmente.
7. Escriba mkdir /home/$USER/files. En este comando, está utilizando la
variable $USER, que se sustituye con su nombre de usuario actual. El
argumento completo de mkdir es un nombre de archivo absoluto para el
directorio de archivos que está intentando crear. Debido a que este directorio
ya existe, recibirá un mensaje de error "el archivo existe".
8. Escriba rmdir files para eliminar el directorio de archivos que acaba de crear.
El comando rmdir le permite eliminar directorios, pero sólo funciona si el
directorio está vacío y no contiene ningún archivo.
1.11) Trabajar con archivos
La figura 1 proporciona información general sobre la estructura de directorios
con la que está trabajando en este ejercicio.
1. Abra un shell como un usuario normal.
2. Escriba pwd
Deberías estar en el directorio /home/$USER.
Figura 1 Información general sobre la estructura de directorios de ejemplo
3. Escriba mkdir newfiles oldfiles. Esciba ls Verá los dos directorios que acaba
de crear, así como algunos otros directorios que ya existían en el usuario
directorio de inicio.
4. Escriba touch newfiles/.hidden; touch newfiles/unhidden Esto crea dos
archivos en el directorio newfiles.
5. Escriba cd oldfiles
6. Escriba ls -al Esto muestra solo dos elementos: ., que se refiere a la corriente
directorio; y .., que se refiere al elemento anterior a este (el directorio
principal).
7. Escriba ls -al.. /newfiles En este comando, está utilizando un nombre de ruta
relativo para hacer referencia al contenido del directorio
/home/$USER/newfiles.
8. Utilice el comando cp -a .. /newfiles/ . (observe el espacio entre el / y el . al
final del comando).
9. Escriba ls -a Verá que ha creado el subdirectorio newfiles en el directorio
oldfiles.
10. Asegúrese de que todavía está en /home/$USER/oldfiles, y escriba rm -rf
newfiles
11. Ahora use el comando cp -a .. /newfiles/* . (observe el espacio entre * y .).
Escriba ls -al para ver lo que se ha copiado ahora. Verás que el archivo oculto
no se ha copiado.
12. Para asegurarse de copiar archivos ocultos, así como archivos normales,
use cp -a .. /newfiles/. .
13. Verifique que el comando funcionó esta vez, usando ls -al Notará que los
archivos ocultos, así como los archivos normales, se han copiado con éxito.
1.12) Trabajar con enlaces simbólicos y enlaces duros
Nota: En este ejercicio los puntos son importantes y se utilizan como parte de
los comandos. Para evitar confusiones, si normalmente se usaría un punto para
indicar el final de una oración, en este ejercicio lo he omitido si sigue
inmediatamente a un comando.
1. Abra un shell como usuario usuario.
2. Desde su directorio de inicio, escriba ln /etc/passwd . (¡Asegúrese de que el
comando termine con un punto que tenga un espacio delante!) Este comando
le da un error de "operación no permitida" porque no es el propietario de
/etc/passwd.
3. Escriba ln -s /etc/passwd . (De nuevo, ¡asegúrese de que el comando
termine con un espacio y un punto!) Esto funciona; No es necesario ser el
propietario para crear un enlace simbólico.
4. Escriba ln -s /etc/hosts (esta vez sin punto al final del comando). Notará que
este comando también funciona. Si no se especifica el destino, el vínculo se
crea en el directorio actual.
5. Escriba touch newfile y cree un enlace duro a este archivo utilizando ln
newfile linkedfile
6. Escriba ls -l y observe el contador de vínculos para newfile y linkedfile, que
actualmente está establecido en 2.
7. Escriba ln -s newfile symlinkfile para crear un enlace simbólico a newfile.
8. Escriba rm newfile
9. Escriba cat symlinkfile. Recibirá un mensaje de error "no hay tal archivo o
directorio" porque no se pudo encontrar el archivo original.
10. Escriba cat linkedfile. Esto no da ningún problema.
11. Escriba ls -l y observe la forma en que se muestra el archivo symlink. Mire
también linkedfile, que ahora tiene el contador de vínculos establecido en 1.
12. Escriba ln linkedfile newfile
13. Escriba ls -l de nuevo. Verás que la situación original ha sido restaurada.
1.13) Usando tar
1. Abra un shell root en su servidor. Cuando inicie sesión, el directorio de inicio
del usuario root se convertirá en el directorio actual, por lo que todos los
nombres de archivo relativos utilizados en este ejercicio se refieren a /root/.
2. Escriba tar cvf etc.tar /etc para archivar el contenido del directorio /etc.
3. Escriba file, etc.tar y lea la información proporcionada por el comando.
4. Escriba gzip, etc.tar para comprimir el archivo tar, que lo empaqueta en el
archivo, etc.tar.gz.
[root@server1 ~]# file etc.tartar: POSIX tar archive
5. Escriba tar tvf, etc.tar.gz Tenga en cuenta que el comando tar no tiene
problemas para leer un archivo comprimido gzip. Tenga en cuenta también
que el contenido del archivo consta de todos los nombres de archivo relativos.
6. Escriba tar xvf, etc.tar.gz etc / hosts
7. Escriba ls -R Observe que se ha creado un subdirectorio, etc. en el directorio
actual. En este subdirectorio, se han restaurado los hosts de archivos.
8. Escriba gunzip, etc.tar.gz Esto descomprime el archivo comprimido pero no
cambia nada más con respecto al comando tar.
9. Escriba tar xvf etc.tar -C /tmp etc/passwd Esto extrae el archivo de
contraseña, incluido su nombre de ruta relativo al directorio /tmp. Utilice ls -l
/tmp/etc/passwd para verificar.
10. Escriba tar cjvf homes.tar /home Esto crea un archivo comprimido del
directorio de inicio al directorio de inicio del usuario raíz.
11. Escriba rm -f *gz *tar para eliminar todos los archivos resultantes de los
ejercicios de este capítulo del directorio de inicio de /root.
1.14) Aplicación de habilidades básicas del comando less
1. Desde un terminal, escriba less /etc/passwd. Esto abre el archivo
/etc/passwd en el empaginador less.
2. Escriba /root para buscar la raíz del texto. Verá que todas las apariciones de
la raíz de texto están resaltadas.
3. Presione G para ir a la última línea del archivo.
4. Presione q para salir less.
5. Escriba ps aux | less. Esto envía la salida del comando ps aux (que muestra
una lista de todos los procesos) a less. Navegue por la lista.
6. Presione q para salir less.
1.15) Uso de operaciones básicas de head y tail
1. Desde root Shell, escriba tail -f /var/log/messages. Verá que se muestran
las últimas líneas de /var/log/messages. El archivo no se cierra
automáticamente.
2. Presione Ctrl-C para salir del comando anterior.
3. Escriba head -n 5 /etc/passwd para mostrar las primeras cinco líneas en
/etc/passwd.
4. Escriba tail -n 2 /etc/passwd para mostrar las dos últimas líneas de
/etc/passwd.
5. Escriba head -n 5 /etc/passwd | tail -n 1 para mostrar solo el número de
línea 5 del archivo /etc/passwd.
1.16) Uso de opciones grep comunes
1. Escriba grep ' #'/etc/services. Esto muestra que el archivo /etc/services
contiene una serie de líneas que comienzan con el signo de comentario, #.
2. Para ver las líneas de configuración que realmente importan, escriba grep -
v '^#' /etc/services. Esto muestra solo las líneas que no comienzan con un #.
3. Escriba grep -v '^#' /etc/services -B 5. Esto muestra las líneas que no
comienzan con un signo #, sino también las cinco líneas que están
directamente antes de cada una de esas líneas, lo cual es útil porque en las
líneas anteriores normalmente encontrará comentarios sobre cómo usar los
parámetros específicos. Sin embargo, también verá que se muestran muchas
líneas en blanco.
4. Escriba grep -v -e '^#' -e '^$'/etc/services. Esto excluye todas las líneas en
blanco y las líneas que comienzan con #.
1.17) Trabajar desde varias ventanas de terminal simultáneamente
1. Inicie su computadora y asegúrese de iniciar sesión como una cuenta de
usuario no root desde la ventana gráfica de inicio de sesión que se presenta.
Debe tener un usuario local con el nombre de user y la contraseña de Test123
que pueda utilizar para este propósito.
2. Haga clic en Activities y escriba term. A continuación, haga clic en el icono
de terminal para abrir una nueva ventana de terminal.
3. En el menú Terminal en la parte superior de la pantalla, seleccione New
Window.
4. Desde una de las ventanas del terminal, escriba el comando sudo -i e ingrese
la contraseña del usuario estudiante. A continuación, escriba tail -f
/var/log/secure. Esto abre un seguimiento en el archivo /var/log/secure,
donde puede supervisar los eventos de seguridad en tiempo real.
5. Desde las otras ventanas del terminal, escriba su -. Cuando se le solicita una
contraseña, normalmente se introduce la contraseña para el usuario root.
Introduzca una contraseña incorrecta.
6. Ahora mire el terminal donde el rastro en / var / log / secure todavía está
abierto. Verá que se ha escrito un mensaje de error en este archivo.
7. Presione Ctrl-C para cerrar la sesión tail -f en el archivo /var/log/secure.
1.18) Trabajar con pseudo terminales
1. Inicie sesión en la consola gráfica con una cuenta de usuario no root.
2. Abra una ventana de terminal.
3. En la ventana del terminal, escriba w. Esto dará una visión general de todos
los usuarios que están conectados actualmente. Observe la columna que
menciona el tty en el que están los usuarios, en la que ve tty2 que se refiere a
la ventana del terminal.
4. Abra otra ventana gráfica del terminal. Escriba "su –" para convertirse en
root.
5. Escriba w para mostrar una vez más una visión general de todos los usuarios
que han iniciado sesión actualmente. Tenga en cuenta que la segunda sesión
"su –" no se muestra como una cuenta de usuario adicional porque ambas se
han iniciado desde la interfaz gráfica, que es tty2.
1.19) Uso de SSH para iniciar sesión en un servidor remoto
Este ejercicio supone que un servidor remoto está disponible y accesible. En
este ejercicio, server1 se utiliza como servidor local y server2 es el servidor
remoto en el que el proceso sshd debe estar en funcionamiento. Si no puede
acceder a un servidor remoto para realizar los pasos del ejercicio, también
puede reemplace Server2 por LocalHost. Es obvio que al hacerlo no iniciará
sesión en un servidor remoto, pero aún usará el comando ssh para conectarse
a un proceso sshd y obtendrá la experiencia completa de trabajar con ssh.
1. Abra un shell root en server2. Escriba systemctl status sshd. Esto debería
mostrarle que el proceso sshd está actualmente en funcionamiento.
2. Escriba ip a | grep 'inet '. (Observe el espacio entre inet y las comillas de
cierre.) Observe la dirección IPv4 que su servidor está utilizando actualmente.
En el resto de este ejercicio, se supone que server2 está utilizando la dirección
IP X.X.X.X*.
*Puede variar según la configuración de su PNETLAB en el Managemnet
CLOUD0
3. Abra un shell como usuario sin privilegios (nonprivileged user) en server1.
4. En server1, escriba ssh [email protected]. Esto se conecta al proceso sshd en
server2 y abre un shell raíz.
5. Antes de que se le solicite una contraseña, verá un mensaje que indica que
no se puede establecer la autenticidad del host X.X.X.X. Este mensaje se
muestra porque el host al que se está conectando aún no se conoce en el host
actual, lo que podría implicar un riesgo para la seguridad. Tipo
Sí (Yes) para continuar.
6. Cuando se le solicite, ingrese la contraseña de root. Después de ingresarlo,
ahora ha iniciado sesión en server2.
7. Escriba w. Tenga en cuenta que la sesión SSH que acaba de abrir se muestra
como otra sesión de pseudo terminal, pero verá la dirección IP de origen en la
columna FROM.
8. Escriba exit para cerrar la sesión SSH.
1.20) Uso de SFTP para administrar archivos en un servidor remoto
1. Desde un shell sudo, agregue una línea que coincida con la dirección IP del
servidor2 con el nombre de host servidor2.
2. Desde un terminal, escriba sftp user@server2. Esto le da acceso a un
indicador SFTP que se abre en server2.
3. Escriba ls. Verá los archivos en el directorio de trabajo actual en el servidor
remoto.
4. Escriba pwd. Esto muestra el directorio actual en el servidor remoto.
5. Escriba lpwd. Esto muestra su directorio actual local.
6. Escriba lcd / tmp. Esto cambia el directorio actual local a /tmp.
7. Escriba put /etc/hosts. Este archivo cargará el archivo /etc/hosts desde
server1 al directorio de inicio del estudiante usuario en server2.
8. Escriba exit para cerrar su sesión SFTP.
1.21) Conexión a un servidor remoto con claves públicas/privadas
1. En server1, abra un shell raíz.
2. Escriba ssh-keygen.
3. Cuando se le solicite el nombre de archivo en el que almacenar la clave
(privada), acepte el nombre de archivo predeterminado ~/.ssh/id_rsa.
4. Cuando se le pida que ingrese una frase de contraseña, presione Enter dos
veces.
5. La clave privada ahora se escribe en el archivo ~/.ssh/id_rsa y la clave pública
se escribe en el archivo ~/.ssh/id_rsa.pub.
6. Utilice ssh-copy-id server2 para copiar en server2 la clave pública que acaba
de crear. A continuación, se le pedirá la contraseña en el servidor remoto por
última vez.
7. Después de copiar la clave pública, verifique que realmente se pueda usar
para la autenticación. Para ello, escriba ssh server2. Ahora debe autenticarse
sin tener que escribir la contraseña de la cuenta de usuario remoto.
1.22) Cambio de cuentas de usuario
1. Inicie sesión en su sistema como usuario sin privilegios y abra un terminal.
2. Escriba whoami para ver qué cuenta de usuario está utilizando actualmente.
Escriba id también y observe que obtiene más detalles sobre sus credenciales
actuales al usar id.
3. Escriba su -. Cuando se le pida una contraseña, escriba la contraseña de root.
Vuelva a escribir id. Ves que actualmente estás root.
4. Escriba useradd bob para crear un usuario que pueda usar con fines de
prueba.
5. Aún desde root shell, use su - bob y confirme que puede iniciar sesión sin
ingresar una contraseña. Tenga en cuenta que el usuario bob ni siquiera tiene
una contraseña establecida actualmente.
6. Escriba exit para salir del shell bob del usuario. Escriba exit de nuevo para
salir del root shell y volver al shell de usuario normal.
1.23) Cambio de cuentas de usuario
1. Inicie sesión en su sistema como user y abra un terminal.
2. Escriba sudo -i para abrir un sudo root shell. Cuando se le pida una
contraseña, introduzca la contraseña asignada al usuario estudiante.
3. Use useradd betty; useradd amy para crear dos usuarios.
4. Escriba echo password | passwd --stdin betty; echo password| passwd --
stdin amy para establecer la contraseña para estos dos usuarios. Escriba exit
para volver al shell de estudiante de usuario.
5. Use su - betty para abrir un shell como usuario betty. Cuando se le solicite
una contraseña, ingrese la contraseña que acaba de asignar para la usuaria
betty.
6. Escriba sudo ls /root, ingrese la contraseña del usuario betty y observe el
mensaje de error.
7. Escriba exit para volver al shell en el que es usuario estudiante. Utilice
whoami para verificar el ID de usuario actual.
8. Escriba sudo sh -c 'echo "betty ALL=(ALL) ALL" > /etc/sudoers.d/ betty'
para permitir el acceso completo a sudo para betty.
9. Use su - betty para abrir un shell como betty e ingrese la contraseña de este
usuario cuando se le solicite.
10. Utilice sudo ls -l /root para verificar que sudo access funciona. El directorio
/root sólo puede ser visto por el usuario root debido a los permisos en ese
directorio.
11. Use sudo sh -c ' echo "amy ALL=/usr/sbin/useradd, /usr/bin/passwd, !
/usr/bin/passwd root" > /etc/sudoers.d/amy' para permitir al usuario amy
crear usuarios y restablecer contraseñas de usuario, pero no para root.
12. Escriba su - amy e ingrese la contraseña del usuario amy cuando se le
solicite.
13. Use sudo passwd betty para verificar que puede cambiar la contraseña
como usuario amy.
14. Utilice sudo passwd root para verificar que no se permite cambiar la
contraseña de usuario root.
15. Escriba exit para volver al shell de estudiante de usuario. Usa whoami para
verificar que estás en el shell correcto.
1.24) Creación de cuentas de usuario
1. Desde un shell sudo, escriba vim /etc/login.defs para abrir el archivo de
configuración /etc/login.defs y la PASS_MAX_DAYS usar el valor 99 antes de
comenzar a crear usuarios. Busque el parámetro CREATE_HOME y asegúrese
de que esté establecido en "yes".
2. Utilice cd /etc/skel para ir al directorio /etc/skel. Escriba mkdir fotos y mkdir
files para agregar dos directorios predeterminados a todos los directorios de
inicio de usuario. Cambie también el contenido del archivo .bashrc para incluir
la línea export EDITOR=/usr/bin/vim, que establece el editor predeterminado
para las herramientas que necesitan modificar archivos de texto.
3. Escriba useradd linda para crear una cuenta para el usuario linda. Luego,
escriba id linda para verificar que linda es miembro de un grupo con el nombre
linda y nada más. Verifique también que los directorios Imágenes y
Documentos se hayan creado en el directorio de inicio del usuario linda.
4. Use passwd linda para establecer una contraseña para el usuario que acaba
de crear. Utilice la contraseña Password.
5. Escriba passwd -n 30 -w 3 -x 90 linda para cambiar las propiedades de la
contraseña. Esto hace que la contraseña expire después de 90 días (-x 90). Tres
días antes de la expiración, el usuario recibirá una advertencia (-w 3), y la
contraseña debe usarse durante al menos 30 días antes de que (-n 30) se pueda
cambiar.
6. Cree algunos usuarios más: lucy, lori y bob, usando for i in lucy lori bob; do
useradd $i; done. Es posible que reciba un mensaje de error que indique que
el usuario ya existe. Este mensaje se puede omitir de forma segura.
7. Use grep lori /etc/passwd /etc/shadow /etc/group. Esto muestra el usuario
lori creado en los tres archivos críticos y confirma que se han configurado
correctamente.
1.25) Trabajo con grupos
1. Abra un shell sudo y escriba groupadd sales seguido de groupadd account
para agregar grupos con los nombres ventas y cuenta.
2. Use usermod para agregar a los usuarios linda y laura a las ventas del grupo,
y lori y bob a la cuenta del grupo de ventas:
usermod -aG sales linda
usermod -aG sales lucy
usermod -aG account lori
usermod -aG account bob
linux:~ # id linda
3. Escriba id linda para verificar que el usuario linda se ha agregado
correctamente al grupo de ventas. En los resultados de este comando, verá
que linda está asignada a un grupo con el nombre linda. Este es el grupo
principal de la usuaria linda y se indica con la opción gid. El parámetro groups
muestra todos los grupos del usuario linda Actualmente es miembro de, que
incluye el grupo principal, así como las ventas del grupo secundario al que se
acaba de asignar el usuario.
1.26) Administración de permisos básicos
1. Desde un shell raíz, escriba mkdir -p /data/sales /data/account.
2. Antes de establecer los permisos, cambie los propietarios de estos
directorios usando chown linda.sales /data/sales y chown linda.account
/data/account.
3. Establezca los permisos para permitir que los propietarios de usuarios y
grupos escriban archivos en estos directorios y denieguen todo el acceso para
todos los demás: chmod 770 /data/sales y luego chmod 770 /data/account.
4. Use su - laura para convertirse en usuario laura y cambie al directorio
/data/account. Utilice touch emptyfile para crear un archivo en este
directorio. ¿Funciona esto? Escriba grupos para averiguar por qué.
5. Aún como usuario laura, use cd /data/sales y use touch emptyfile para crear
un archivo en este directorio. ¿Funciona esto? Escriba grupos para averiguar
por qué.
1.27) Trabajar con permisos especiales
1. Comience este ejercicio desde una cáscara de raíz.
2. Usa su - linda para abrir un terminal en el que seas usuario linda.
3. Utilice cd /data/sales para ir al directorio de sales. Use touch linda1 y touch
linda2 para crear dos archivos de los cuales linda es la propietaria.
4. Escriba exit para volver a un root shell, y luego use su - laura para cambiar
la identidad de usuario actual a laura, que también es miembro del grupo de
sales.
5. Use cd /data/sales nuevamente, y desde ese directorio, use ls -l. Verá los
dos archivos creados por el usuario linda que son propiedad del grupo linda.
Utilice rm -f linda*. Esto eliminará ambos archivos.
6. Utilice los comandos touch laura1 laura2 para crear dos archivos que son
propiedad del usuario laura.
7. Use su - para escalar sus permisos actuales al nivel root.
8. Use chmod g + s, o + t / data/sales para establecer el bit de ID de grupo, así
como el bit adhesivo en el directorio de grupo compartido.
9. Use su - linda y escriba cd /data/sales. Primero, usa touch linda3 linda4.
Ahora debería ver que los dos archivos que ha creado son propiedad del grupo
sales, que es el propietario del grupo /data/sales.
10. Utilice rm -rd laura*. Normalmente, el bit adhesivo le impide hacerlo, pero
debido a que el usuario linda es el propietario del directorio que contiene los
archivos, ¡se le permite hacerlo de todos modos!
1.28) Validación de la configuración de red
1. Abra un shell raíz.
2. Escriba ip -s link show. Esto muestra todas las conexiones de red existentes,
además de estadísticas sobre el número de paquetes que se han enviado y los
mensajes de error asociados.
3. Escriba ip addr show. Verá las asignaciones de direcciones actuales para las
interfaces de red en su servidor.
1.29) Verificación de la configuración de red
1. Abra root Shell en su servidor y escriba ip addr show. Esto muestra la
configuración de red actual.
[root@server1 ~]# ss -lt State Recv-Q Send-Q Local
Address:Po Address:Port
LISTEN 0 32 192.168.122.1:do
LISTEN 0 128 0.0.0.0:ssh
LISTEN 0 5 127.0.0.1:ipp
LISTEN 0 128 0.0.0.0:sunrpc
LISTEN 0 128 [::]:ssh
LISTEN 0 5 [::1]:ipp
LISTEN 0 128 [::]:sunrpc
Tenga en cuenta la dirección IPv4 que se utiliza y los nombres de dispositivo de
red que se utilizan; Los necesita más adelante en este ejercicio.
2. Escriba ip route show para verificar la configuración de enrutamiento.
3. Si su computadora está conectada a Internet, ahora puede usar el comando
ping para verificar que la conexión a Internet funcione correctamente. Escriba
ping -c 4 8.8.8.8, por ejemplo, para enviar cuatro paquetes a la dirección IP
8.8.8.8. Si su conexión a Internet está en funcionamiento, debería obtener
"echo respuesta" responde.
4. Escriba ip addr add 10.0.0.10/24 dev <yourdevicename>. Esto establecerá
temporalmente una nueva dirección IP.
5. Escriba ip addr show. Verá la dirección IP recién establecida, además de la
dirección IP que ya estaba en uso.
6. Escriba ifconfig. Tenga en cuenta que no ve la dirección IP recién establecida
(y no hay opciones con el comando ifconfig que le permitan verla). Este es un
ejemplo de por qué ya no debe usar el comando ifconfig.
7. Escribe ss -tul. Ahora verá una lista de todos los puertos UDP y TCP que están
escuchando en su servidor.
1.30) Cambio de parámetros de conexión con nmcli
1. Asegúrese de que la conexión estática no se conecte automáticamente
mediante nmcli con mod static connection.autoconnect no.
2. Agregue un servidor DNS a la conexión estática mediante nmcli con mod
static ipv4.dns 10.0.0.10. Tenga en cuenta que, al agregar una conexión de red,
utiliza ip4, pero al modificar los parámetros de una conexión existente, a
menudo utiliza ipv4 en su lugar. Esto no es un error tipográfico; así es como
funciona.
3. Para agregar un segundo elemento para los mismos parámetros, use un
signo +. Pruebe esto agregando un segundo servidor DNS, usando nmcli con
mod static +ipv4.dns 8.8.8.8.
4. Usando nmcli con mod, también puede cambiar parámetros como la
dirección IP existente. Prueba esto usando nmcli con mod static
ipv4.addresses 10.0.0.100/24.
5. Y para agregar una segunda dirección IP, use el signo + nuevamente: nmcli
con mod static +ipv4.addresses 10.20.30.40/16.
6. Después de cambiar las propiedades de conexión, debe actuarlas. Para hacer
eso, puede usar nmcli con up static.
Lic. Tomas Rodriguez Linares
Docente