Practica4 Comandos Avanzados Shell
Practica4 Comandos Avanzados Shell
Practica4 Comandos Avanzados Shell
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
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.
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.
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:
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:
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:
2. Elevación de 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:
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:
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.
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/).