Practica4 Comandos Avanzados Shell

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

UNIVERSIDAD VERACRUZANA

FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN


SISTEMAS COMPUTACIONALES ADMINISTRATIVOS

SISTEMAS OPERATIVOS DE RED

PRÁCTICA 4: Comandos avanzados de shell

Nombre del estudiante:________________________________________

Sección:_________

Objetivo: Utilizar algunos comandos avanzados para la gestión del sistema dentro de una
distribución Linux.

Introducción.

Una vez que se conocen los comando básicos de gestión de directorios, archivos, y para el
recorrido del árbol del sistema; es necesario hacer uso de algunos comando para obtener
información del sistema y hacer algunas manipulaciones mas avanzadas.

Así que para hacer la práctica una vez que arrancamos Linux, debemos ir aun terminal, ya
sea en el entorno gráfico buscar en aplicaciones, la de Terminal tal cual se vio en clase, o
alternativamente podemos usar un método abreviado de teclas para intercambiar entre el
entrono gráfico y el modo texto:

- Cambio modo texto : CTRL+ALT+F1 (se abre una shell, identificada como shell 1) Tenemos
disponibles 6 shells simplemente utilizando de CTRL+ALT+[F1-F6] para cambiar entre ellas.
- Cambio modo gráfico: CTRL+ALT+F7

Instrucciones. La práctica se realiza de manera individual; el estudiante deberá ir


contestando a cada actividad con la salida de los comandos ejecutados. Alternativamente o
de manera complementaria, el reporte de la práctica puede ser enriquecido con capturas de
pantalla por cada apartado o instrucción indicada. Una vez terminada la práctica, se guarda y
se exporta a pdf, y se sube en la plataforma correspondiente.
1. Comandos ps, el pipe (|) , less, grep kill.

El comando ps lista los procesos activos en el sistema.

Así por ejemplo, la ejecución del mismo muestra los procesos del usuario actualmente
logado en el sistema, en este caso son los procesos corriendo del usuario chocowifi. El dato
mas significativo es PID (Process Identification). Una de las utilidades de este comando para
los administradores de sistema (o super usuarios)es justamente identificar el PID de un
proceso que por ejemplo este causando algún problema. Por ejemplo, alguien mando a
imprimir equivocadamente 200 hojas, y el usuario no puede cancelar la impresión, una
alternativa es que el superusuario detecte el proceso y lo interrumpa. O alguna aplicación
que se congelo, y se debe terminar de ejecutar. Una información mas completa del sistema
se puede obtener con ps -aux. Un problema como se experimento en una práctica anterior es
que se produce un listado con todos los procesos, no solo los del usuario ejecutante del
comando, y el listado es mas exhaustivo al dar mas información.
Por ejemplo, nos indica los porcentajes de uso de CPU y de consumo de memoria que dicho
proceso ocupa (%CPU, %MEM), la hora en la que inicio a ejecutarse, entre otros.
El comando less, nos permite visualizar en un entorno paginado y controlado el contenido
de un archivo de texto. Sin embargo, una utilización muy recurrida por los administradores
del sistema es para visualizar el resultado de la ejecución de algún comando que produzca
varias decenas o cientos de líneas como resultado, por ejemplo, cuando ejecutas el comando
ps -aux.

Aquí es donde aparece una herramienta muy útil de la linea de comando que nos brinda
Linux: el Pipe (o tubería), que se identifica con el carácter “|”. Mediante el pipe le pasamos el
resultado de un comando a otro, para que se ejecute sobre el resultado del primero. Es decir,
el Pipe nos sirve para encadenar comandos, dos o mas, la salida de uno se convierte
en la entrada del otro. Por ejemplo: ps -aux | less, quiere decir que se ejecuta el comando
ps -aux, y el resultado se le pasa mediante el pipe al comando less. Que tendremos como
resultado?, que podremos visualizar el resultado de ps -aux de manera controlada y
paginada como si se tratara de la visualización de un archivo de texto mediante el comando
less. Esto quiere decir que el resultado de la aplicación del comando ahora se puede navegar
como su fuera un entrono de texto por lo que las teclas de cursos (hacia arriba y hacia abajo)
y las teclas de repaginación y avance de pagina, nos permitirán recorre o navegar por el
resultado.

Ejercicio 1.

a) en un terminal y ubicado en tu home, ejecuta el comando: ps -aux . El total del resultado


de la ejecución se ve en la terminal? Que se visualiza cuando termina la ejecución? Si
quieres ver el inicio del resultado te es posible?
b) Ejecuta la línea de comando: ps -aux | less . Que pasa ahora? Como se ve el resultado?
Es posible utilizar las flechas de cursos y de paginación para recorrer el resultado. Resulta
útil al respeto la utilización del pipe?

El comando grep también resulta muy útil en el trabajo de los administradores de sistema.
En muchas ocasiones necesitar buscar por ejemplo en resultados de comando o en un
archivo de bitácora por ejemplo (los .log) algún patrón en particular, por ejemplo, el nombre
de un archivo, un nombre de usuario, un PID.

Supongamos tenemos un archivo de texto llamado texto.txt (de hecho realizado en la


práctica anterior), cuyo contenido es:
me interesa buscar en el contenido del archivo las líneas que contengan el comando echo,
por lo que ejecuto el comando grep echo texto.txt. Esta orden lo que indica es: busca en las
líneas del archivo texto.txt aquellas en las que aparezca el patrón “echo”, y el resultado es:

Como se aprecia en la figura, el resultado de la ejecución consta de las dos lineas que
contienen el comando echo, y de hecho el patrón de búsqueda “echo”, aparece resaltado en
rojo. Este ejemplo obviamente es muy simplista, pero hay ocasiones en que hay que buscar
en archivos de cientos de líneas y con una cantidad grande de resultados. El resultado de
grep son las líneas en las que el patrón y el texto contenido hacen “match”, es decir,
coinciden.

Ejercicio 2:

a) Ejecuta el comando: ps -aux | grep root


b) ejecuta el comando ps -aux | grep root | less
c) Cual es la diferencia? Qué hace la línea de comando del inciso a) y que hace la del inciso
b) .Cuál de los dos recomendarías usar y por qué?

El comando kill manda señales a los procesos; la señal mas comúnmente usada es la de
KILL, es decir, le dice a un proceso que se aniquile. Por tanto se utiliza en combinación con
ps, para identificar el PID de un proceso, y una vez determinado cual de los procesos se
quiere eliminar del sistema se le manda la señal de kill. Al inicio de esta práctica se comento
que a veces hay procesos ejecutándose de manera anómala en el sistema por parte de
algún usuario, mediante estos comando el super usuario es capaz de eliminarlos. Cuando se
le manda la señal kill a un proceso, este no se ejecuta necesariamente de inmediato. Linuz
utiliza una estructura de datos de tipo Pila, para gestionar los procesos, es decir, los
procesos van siendo atendidos en el orden en que van siendo metidos a la pila, por lo que a
un proceso se le pasará la señal, una vez que llegue su turno de ser atendido. Con el
modificador -9, la señal se envía de inmediato al proceso y eliminándolo instantáneamente
del sistema.

Ejemplo:

En la siguiente figura se muestra una captura de pantalla de mi escritorio actual, se podrá


observar que tengo abierta una terminal. Esta es el frontend de bash, por lo que en mis
procesos activos debe de aparecer justamente bash como uno activo y obviamente con un
PID asignado; notar en dicha figura que además en la parte de abajo, en la barra de control,
aparece la minifigura de la aplicación “terminal”:
Así que busquemos si es esto cierto; en este caso nos bastará hacer ejecución de ps, pues
este me mostrará en formato sencillo los procesos activos de mi propiedad, lo que facilitará
identificar el PID de bash, veamos:

Y del resultado de la ejecución tenemos que el PID de bash es 17929. Ahora quiero
eliminarlos del sistema, para lo que ejecuto el comando: kill -9 17929
En cuanto doy enter, se observará que la pantalla de la terminal, y la microfigura de la
aplicación, desaparecen, es decir, el proceso bash en la terminal se ha aniquilado de
inmediato.

Ejercicio 3:

Realiza en tu computadora todo el procedimiento realizado anteriormente y reporta lo que


vas obteniendo. Es decir, abre un terminal, ejecuta ps, determina el PID de bash, y eliminarlo
usando el comando kill. Ilustra con captura de pantallas lo que vas haciendo y obteniendo.

2. Elevación de privilegios

Se ha recomendado ampliamente que como administrador de sistemas no trabajes el 100


pro ciento del tiempo con la cuenta de root; lo que se debe de hacer es tener un usuario para
el trabajo cotidiano (edición de texto, hojas de cálculo, presentaciones, etc.), y usar la cuenta
de root con todos sus privilegios únicamente en momento en que justo se requieran dichos
privilegios, es decir, usarlo para llevar a cabo una determinada acción y una vez realizada,
salir de dicha cuenta y regresar a la de usuario común. Hay comandos que para ejecutarse
requieren de dicha elevación de privilegios, por ejemplo, para instalar una aplicación o
algunos comandos de gestión.

Hay dos comandos para elevar los privilegios:

1) su: sirve para cambiar de usuario o ara convertirse en super usuario; obviamente en
ambos casos se requiere saber la contraseña o password del usuario al que se quiere
convertir o del super usuario. Por ejemplo, si en mi sistema hubiese un usuario denominado
usuario1, estando yo logado al sistema como chocowifi, me podría pasar a usar los
privilegios del usuario1 con el comando: su usuario1. Al darle entrada a dicho comando me
pedirá el password de dicho usuario. Si en la línea de comando escribo solamente su, de
inmediato me pedirá el password del super usuario. En ambos caso permanecerá como el
otro usuario o como super usuario hasta que decida regresar a mi usuario original lo cual se
consigue tecleando la palabra exit en la línea de comando.

2) sudo: se utiliza para ejecutar un comando unicamente como otro usuario; en función de lo
comentador anteriormente de realizar tareas muy puntuales como super usuario, este es un
método muy recurrido por los administradores de sistema por ejemplo para instalar una
nueva aplicación o comando. Sudo te pedirá tu password como usuario para ejecutar el
comando requerido.

Ejercicio 4:

a) Pasarse desde tu usuario como super usuario: Teclear en la línea de comando su. Tomar
captura de pantalla y señalar los cambios en la línea de comando. Mucho cuidado en este
momento, mientras estas como root, todo comando puede afectar el sistema completo!.

Puede ser que para ejecutar lo anterior te encuentres con un problema: En la línea de
comando, teclear su y dar entrada, el sistema te pedirá introducir el password para root. Ojo:
en Linux Mint el password de root debe de ser establecido explícitamente, cosa que no se
hace de manera común al momento de instalar. Por tanto si se da su y se introduce el que
aparentemente es el password de root, dará como resultado un error, indicando una falla de
identificación, dado que no reconoce el password. De ser ese el caso, hay varias opciones
para resolverlo; una que suele usarse es teclear en la línea de comando: sudo su, y te dará
como resultado haberte pasado como superusuario. Ahora, para resolver el fallo de
autenticación al teclear su, declararas explícitamente el password de root usando el comando
passwd. El sistema te pedirá declarar de manera explicita un password para root, te pedirá
confirmación y te notificará que el password ha sido actualizado correctamente. Todo este
proceso se ilustrá a continuación:

Como se observa en la imagen, cuando pasas de tu usuario a super usuario la línea de


comando (el prompt) cambia de $ a #. esta es una ayuda visual de linux para recordarte que
estas en ese momento como superusuario. Para salir de modo super usaruo se teclea la
palabra exit, y el prompt regresará a utilizar el simbolo de $. En la imagen previa se observa
que una vez declarada la contraseña de root explícitamente, vuelvo a introducir el comando
su, introduzco la contraseña recién creada, y ya no me marcará el error de identificación.

b) Ejecutar el comando man passwd y decir para que sirve este comandos

c) Usaremos sudo para instalar un comando. Por ejemplo, Linux Mint no suele traer por
default instalado el comando whois. Verifiquemos:

La imagen obtenida indica que si introduzco whois, no lo encuentra para ejecutarlo, ni el


comando man encuentra entrada en el manual para dicho comando. Whois es un comando
del área de redes de linux que busca en un directorio de dominios web y te da la información
relativa a este, del tipo de quien es, quien lo gestiono, desde cuando fue asignado, que
vigencia tiene entre otros.
Veamos como se instala:
Tecleamos sudo apt-get install whois, y nos pedirá el password de chocowifi (tal cual se
señalo previamente); una vez introducido el password, buscará en los repositorios de Linux
Mint, lo descargará y lo instalará (puede ser que busque en un repositorio local o en internet,
por lo que es necesario tener conexión a la red).

Nota: en la pantalla no pide password y dice que se descargaran 0 B, dado que en esta
máquina ya se había realizado el proceso previamente; sin embargo la pantalla si que
muestra como se falla al invocarl el comando whois por no estar instalado, y luego se
observa como después de instalado con sudo apt-get install whois, al invocarse, ya se
ejecuta.

Efectivamente, en esta distribución el comando para instalar desde la línea de omando es


sudo apt-get install nombre_de_comando, y para eliminar es sudo apt-get remove
nombre_de_comando.

Ya que instalamos whois, utilicemoslo, Averigua los datos del dominio de la Universidad
Veracruzana, para ello teclea el comando whois uv.mx. uv.mx es el dominio del sitio
web de la universidad.
Finalmente, instalaremos un servidor, en este caso será un servidor para sesiones remotas
seguras. Para ello se utiliza un comando denominado ssh (de Secure Shell), este comando
utiliza un algoritmo de encriptación para proteger las comunicaciones entre dos terminales.
Para que tu computadora pueda aceptar conexiones ssh, debe terner instalado un servidro
de ssh. Las distribuicones de Linux normalmente instalan por default el cliente ssh, es decir,
un comando con el cual solicitar una conexión remota de este tipo. Pero no instalan
normalmente el servidor. Para ello en este caso utilizaremos un servidor denominado Open
ssh (https://www.openssh.com/).

Para ello teclear: sudo apt-get install openssh-server

Por tanto, para esta parte de la práctica (EJERCICIO 4), reportar:

a) Ejecución de su, y en su caso la asignación de password explicitamente a root. Ilustrar el


cambio de marcador en la línea de comando, y el proceso de asiganción de password,
entrada a modo super usuaruo y salida.
b) Uso de sudo para instalar whois y el servidor de ssh
c) el uso de whois para obtener la información del dominio uv.mx

También podría gustarte