Sie sind auf Seite 1von 20

11.1 Introducción Esta es Lab 11: Ubicaciones Linux Data.

Mediante la realización de esta


práctica de laboratorio, los estudiantes aprenderán acerca de la ubicación de la información
del kernel, procesar información, las bibliotecas, los archivos de registro, y paquetes de
software. En este laboratorio, que llevará a cabo las siguientes tareas: • Investigar cómo el
sistema de archivos / proc es utilizado por el kernel. • Utilice el comando ps para ver la
información del proceso • Aprenda a manejar los procesos al iniciar, detener y reanudar ellos.
• Visualización de archivos de registro • Administrar la capacidad para cargar bibliotecas
compartidas

11.2 Linux Fundamentos Objetivos del examen En este capítulo se hará cargo de los temas de
los siguientes objetivos del examen Linux Essentials: Tema 4: El sistema operativo Linux (peso:
8) 4.3: ¿Dónde se almacenan los datos Peso: 3 Descripción: ¿Dónde se almacenan diversos
tipos de información en un sistema Linux .. Principales Áreas de Conocimiento: • Kernel •
Procesos • syslog, klog, dmesg • / lib, / usr / lib, / etc, / var / log La siguiente es una lista parcial
de los usados archivos, términos y utilidades: • Programas, bibliotecas, paquetes y paquetes
de bases de datos, la configuración del sistema • Procesos y tablas de proceso, las direcciones
de memoria, mensajes del sistema y registro • ps, top, gratis

11.3 El kernel y / procEn esta tarea, usted explorará el directorio / proc y comandos que se
comunican con el núcleo Linux. El directorio / proc parece ser un directorio ordinario, como /
usr o / etc, pero no lo es. A diferencia o etc directorios / usr /, que normalmente se escriben en
una unidad de disco, el directorio / proc es un sistema de archivos de pseudo mantenido en la
memoria de la computadora.El directorio / proc contiene un subdirectorio para cada proceso
que se ejecuta en el sistema. Los programas como ps y top leer la información sobre la
ejecución de los procesos de estos directorios. El directorio / proc también contiene
información sobre el sistema operativo y el hardware en archivos como / proc / cpuinfo, / proc
/ meminfo y / proc / devices.El subdirectorio / proc / sys contiene archivos seudo que se
pueden utilizar para modificar la configuración del núcleo en ejecución. A medida que estos
archivos no son archivos "reales", un editor no debe ser utilizado para cambiarlos; en lugar
usted debe utilizar el comando sysctl eco o para sobrescribir el contenido de estos archivos.
Por la misma razón, no intente ver estos archivos en un editor, pero usar el comando cat o
sysctl lugar.Para los cambios de configuración permanentes, el kernel utiliza el archivo
/etc/sysctl.conf. Por lo general, este archivo es utilizado por el kernel para hacer cambios a los
ficheros / proc cuando el sistema se está iniciando.

11.3.1 Paso 1 En esta tarea, se examinarán algunos de los archivos contenidos en el directorio
/ proc:

ls /proc

Your output should be similar to the following:


Recall that the directories that have numbers for names represent running
Recordemos que los directorios que tienen los números para los nombres representan
procesos en ejecución en el sistema. El primer proceso es siempre / sbin / init, por lo que el
directorio / proc / 1 contendrá los archivos con información sobre el proceso init ejecuta. El
archivo cmdline dentro del directorio del proceso (/ proc / 1 / cmdline, por ejemplo) se
mostrará el comando que se ejecutó. El orden en que se inician otros procesos varía mucho de
sistema a sistema. Dado que el contenido de este archivo no contiene un carácter de nueva
línea, se ejecutará un comando echo para hacer que el mensaje para ir a una nueva línea

11.3.2 Paso 2 Utilice el cat y luego ps para ver la información sobre el / sbin / proceso init
(identificador de proceso (PID) del 1):

cat /proc/1/cmdline; echo


ps -p 1

Your output should look something like this:

The other files in the /proc directory contain information about the operating system. The
following tasks will be used to view and modify these files.
Los otros archivos en el directorio / proc contienen información sobre el sistema operativo. Las
siguientes tareas serán utilizados para ver y modificar estos archivos

11.3.3 Paso 3 Ver el archivo / proc / cmdline para ver qué argumentos se pasa al kernel
durante el arranque

cat /proc/cmdline

The output of the command should be similar to this:


11.3.4 Paso 4

Debido a que los próximos comandos que se ejecutarán en este laboratorio


requieren derechos de superusuario, utilice el comando su para cambiar a la
cuenta de root (cuando se le pida una contraseña, introduzca la contraseña:
netlab123):
su - root
netlab123

11.3.5 Step 5
Change to the /proc/sys/net/ipv4 directory and view the icmp_echo_ignore_all file:

cd /proc/sys/net/ipv4
cat icmp_echo_ignore_all

Your output should be a single zero, 0, meaning "false" for this control file. This
Su salida debe ser un solo cero, 0, que significa "falso" para el archivo de control. Esto significa
que el sistema está configurado actualmente para no ignorar las peticiones de eco ICMP que el
comando ping genera. En pocas palabras, esto significa que alguien puede usar el comando
ping para determinar si el equipo está respondiendo a las solicitudes de red. Esto se utiliza a
menudo para determinar si un servidor está activo y conectado a la red

11.3.6 Paso 6 Utilice el comando ping para verificar que su sistema es "alcanzable". A
continuación, utilice el comando echo para sobrescribir el archivo icmp_echo_ignore_all con un
uno, 1, para representar un valor "verdadero". Verifique el archivo ha cambiado, usando el
comando cat. A continuación, utilice el comando ping de nuevo para ver el cambio en el
comportamiento
ping -c4 127.0.0.1
echo 1 > icmp_echo_ignore_all
cat icmp_echo_ignore_all
ping -c4 127.0.0.1

The output of your commands should appear similar to this:


The first output shows that the ping requests were successful ("4 received") while the
second indicates that the ping requests failed ("0 received").
El primer resultado muestra que las solicitudes de ping tuvieron éxito ("4 recibieron") mientras
que el segundo indica que las solicitudes de ping fracasaron ("0 recibido").

11.3.7 Paso 7 Cambie el archivo de nuevo mediante un comando sysctl, y verificar que el
sistema es "-ping poder":
sysctl -w net.ipv4.icmp_echo_ignore_all=0
cat icmp_echo_ignore_all
ping -c4 127.0.0.1

Your output should be similar to the following:

11.3.8 Paso 8 Mostrar el contenido del archivo /etc/sysctl.conf


cat /etc/sysctl.conf

Your output should be similar to the following:


Notice the entries in the /etc/sysctl.conf file. By making entries like these, you
Observe las entradas en el archivo /etc/sysctl.conf. Al hacer entradas como éstas, puede
configurar modificaciones persistentes al núcleo comportamiento. Esto es a diferencia de los
cambios directos a los archivos proc / que son sólo temporales; cuando se reinicia el sistema,
se pierden estos cambios directos. Las entradas en el archivo /etc/sysctl.conf son persistentes
en los reinicios

11.3.9 Paso 9 Ha completado los pasos de esta parte del laboratorio que requieren acceso
administrativo al sistema. Usted debe salir del cascarón de usuario root:
exit
La salida de su comando debe mostrar que usted ha regresado a la cuenta de administrador de
sistemas

11.4 Gestión de Procesos En esta tarea, iniciar y detener procesos

11.4.1 Paso 1 Desde la terminal, escriba el siguiente comando


cat /dev/zero > /dev/null

Your output should be similar to the following:

This command is used to read the contents of the /dev/zero file


Este comando se utiliza para leer el contenido del archivo / dev / zero (que consiste en ceros) y
redirigir la salida al archivo / dev / null (lo que se conoce comúnmente como el cubo de bits). En
realidad se trata de un comando de "disparate" para ejecutar; se utiliza aquí para demostrar el
control de procesos. Observe que el terminal aparece a colgar en este comando. Esto se debe
a la ejecución de este comando en el "primer plano". El sistema continuará gato el archivo
hasta que el proceso se termina o se suspende por el usuario
11.4.2 Paso 2 Para terminar un proceso en primer plano, pulse Ctrl-c. Para suspender (pausa)
el proceso, escriba Ctrl-z.

11.4.3 Paso 3 A continuación, para iniciar el mismo proceso en el fondo, tipo


cat /dev/zero > /dev/null &

Your output should be similar to the following:

By adding the ampersand (&) to the end of the command, the process is started in the
background allowing the user to maintain control of the terminal
Al añadir el ampersand (&) al final del comando, se inicia el proceso en segundo plano que
permite al usuario mantener el control del terminal.
Una forma más fácil de entrar en el comando anterior sería la de aprovechar el historial de
comandos.
Podrías haber pulsado la tecla de flecha hacia arriba en el teclado, agregue un espacio y y al
final del comando y luego presiona la tecla Enter. Este es un ahorro de tiempo al ingresar
comandos similares.
Observe que el comando anterior devuelve la información siguiente
[1] 158

Esto significa que este proceso tiene un número de trabajo de 1 (como se demuestra por la
salida de [1]) y una ID de proceso (PID) de 158. Cada terminal / shell tendrá números de
trabajo únicos.
El PID es de todo el sistema; cada proceso tiene un número de identificación único. Esta
información es importante al realizar ciertas manipulaciones del proceso, tales como detener
los procesos o cambiar su valor de prioridad.
Nota: El ID de proceso es probable que sea diferente a la que en el ejemplo

11.4.4 Paso 4 Para ver qué comandos se ejecuta en el terminal actual, escriba el siguiente
comando
jobs

Your output should be similar to the following:

11.4.5 Paso 5 A continuación, iniciar otro comando cat en segundo plano escribiendo lo
siguiente
cat /dev/zero > /dev/null &

Your output should be similar to the following:

Notice the different job number and process ID for this new command.
Observe el diferente número de trabajo y la ID del proceso para este nuevo comando

11.4.6 Paso 6 Ahora, debe haber dos comandos gato ejecutan en segundo plano. Para
verificarlo, el comando emita los puestos de jobs de nuevo
jobs

Your output should be similar to the following:

11.4.7 Paso 7 Una vez que haya comprobado que dos comandos gato se están ejecutando,
llevar el primer comando al primer plano escribiendo lo siguiente

fg %1

Your output should be similar to the following:

11.4.8 Paso 8 Observe que, control una vez más, el comando cat ha tomado del terminal. Para
suspender (pausa) el proceso y recuperar el control de la terminal, escriba Ctrl-z

process and regain control of the terminal, type Ctrl-z:

11.4.9 Paso 9 Para que este proceso continúe ejecutando en segundo plano, ejecute el
siguiente comando:
bg %1

Your output should be similar to the following:

04/11/10 Paso 10 Ejecute el comando empleos de nuevo para verificar dos procesos en
ejecución
jobs

Your output should be similar to the following:


04/11/11 Paso 11 A continuación, iniciar uno más comando cat escribiendo lo siguiente
cat /dev/zero > /dev/null &

Your output should be similar to the following:

04/11/12 Paso 12 Ejecute el comando empleos de nuevo para verificar tres procesos en
ejecución
jobs

04/11/13 Paso 13 Utilizando el número de job, detener el último comando de gato con el
comando kill y verifique que se detuvo la ejecución del comando Jobs

kill %3
jobs

Your output should be similar to the following:

04/11/14 Paso 14

Por último, puede detener todos los comandos gato con el comando killall.
Después de ejecutar el comando killall, espere unos instantes, y luego ejecute
el comando empleos para verificar que todos los procesos se han detenido

killall cat
jobs

Your output should be similar to the following:


11.5 Uso superior (top) para ver Procesos En esta tarea, que va a utilizar el comando top para
trabajar con procesos. Por defecto, el programa superior ordena los procesos en orden de
porcentaje de uso de CPU descendente, por lo que los programas de mayor actividad será en
la parte

11.5.1 Paso 1 Desde la ventana de terminal, escriba los siguientes comandos

cat /dev/zero > /dev/null &


cat /dev/zero > /dev/null &

Your output should be similar to the following:

Make note of the PIDs on your system for the above commands! They will be different than
the examples that we are providing
Tome nota de los PID en el sistema de los comandos anteriores! Ellos serán diferentes a los
ejemplos que estamos ofreciendo

11.5.2 Paso 2 A continuación, iniciar el comando top escribiendo lo siguiente en el terminal

top

Your output should be similar to the following:

Note: The output of the top command changes every 2 seconds


Nota: La salida del comando top cambia cada 2 segundos
11.5.3 Paso 3 El comando top es un programa interactivo, lo que significa que se puede emitir
comandos dentro del programa. Que va a utilizar el comando top para matar a los procesos de
cat. Escriba la letra k (observe que el símbolo aparece debajo Swap).

k (notice that the prompt appears underneath Swap).

11.5.4 Paso 4 En el pid para señalar / kill:, escriba el PID del primer proceso en ejecución cat, a
continuación, pulse Intro. Observe que el prompt cambia como a continuación

changes as below:

11.5.5 Paso 5

Al Enviar pid # señal [15 / sigterm]: símbolo, pulse la tecla Intro. Observe que el
comando primer cat se retira y sólo un comando cat permanece en la lista
(puede que tenga que esperar unos segundos mientras se actualice comando
top):

a few seconds as the top command refreshes):


Note: There are several different numeric values that can be sent to a process. These are
predefined values, each with a different meaning. If you want to learn more about these
values, type man kill in a terminal window

Nota: Existen diferentes tipos de valores numéricos que se pueden enviar a un


proceso. Estos son los valores predefinidos, cada uno con un significado
diferente. Si desea obtener más información sobre estos valores, el tipo de man
que kill en una ventana de terminal

11.5.6 Paso 6 A continuación, matar el proceso cat restante como antes, esta
vez, en el de kill del PID con la señal [15]:, escriba la letra k seguido del PID del
proceso cat, utilice un valor de 9 en lugar de aceptar el valor por defecto de 15 .
Pulse Intro para aceptar entonces la entrada. La señal de "kill" 9 es una señal
"contundente" de que no se puede ignorar a diferencia del valor por defecto de
15. Tenga en cuenta que todas las referencias al comando cat ahora se quitan
de arriba.

11.5.7 Paso 7 Escriba q para salir del comando top. La siguiente pantalla refleja
que ambos comandos gato se terminaron

Type q to exit the top command. The following screen reflects that both cat commands
were terminated:

11.6 Uso pkill y matar a terminar procesos En esta tarea, vamos a seguir
trabajando con los procesos. Utilizará pkill y kill a finalizar procesos

11.6.1 Paso 1 Para empezar, escriba los siguientes comandos en la terminal


sleep 888888 &
sleep 888888 &

Your output should be similar to the following:


The sleep command is typically

El comando del sleep se suele utilizar para hacer una pausa en un programa
(shell script) por un período de tiempo específico. En este caso, se utiliza sólo
para proporcionar un comando que le llevará mucho tiempo para ejecutarse.
Asegúrese de tomar nota de las PID en el sistema de los procesos del slep
para los próximos pasos! Sus PID serán diferentes a los demostrados en el
laboratorio

11.6.2 Paso 2 A continuación, determinan qué jobs se están ejecutando


actualmente escribiendo

jobs

Your output should be similar to the following:

11.6.3 Paso 3 Ahora, utilice el comando kill para detener la primera instancia
del comando sleep escribiendo lo siguiente (sustituto PID con el identificador de
proceso de su comando primera sleep). También, ejecutar trabajos para
verificar el proceso se ha detenido

kill PID
jobs

Your output should be similar to the following:

Helpful Hint: If you can't remember the PID of the first process, just type the ps (process)
command, as shown above.

Consejo útil: Si usted no puede recordar el PID del primer proceso, sólo tienes
que escribir el comando ps (proceso), como se muestra arriba
.6.4 Paso 4 A continuación, utilice el comando pkill para terminar el comando
sleep restante, utilizando el nombre del programa en lugar del PID
pkill -15 sleep

Your output should be similar to the following:

11.7 El uso de ps para Seleccionar y ordenar procesos El comando ps se


puede utilizar para ver los procesos. Por defecto, el comando ps sólo mostrará
los procesos que se ejecutan en el shell actual.

11.7.1 Paso 1 Poner en marcha un proceso de fondo utilizando gato y ver los
procesos actuales con el comando ps:

cat /dev/zero > /dev/null &


ps

Your output should be similar to the following:

11.7.2 Paso 2 Ejecute el comando ps utilizando la opción -e, por lo que se


muestran todos los procesos

ps -e

Your output should be similar to the following:

Due to this environment being a virtualized operating system, there are far fewer processes
than what would normally be shown with Linux running directly on hardware.
Debido a este ambiente que es un sistema operativo virtualizado, hay muchos
menos procesos que lo que normalmente se muestra con Linux corriendo
directamente en el hardware.

11.7.3 Paso 3 Utilice el comando ps con la opción -o para especificar qué


columnas de salida
ps -o pid,tty,time,%cpu,cmd

Your output should be similar to the following:

11.7.4 Paso 4 Utilice la opción --sort para especificar qué columna (s) para
ordenar por. De forma predeterminada, una columna especificada para la
clasificación será en orden ascendente, esto puede ser forzado con la
colocación de un plus + símbolo en frente del nombre de la columna. Para
especificar un orden descendente, utilice el signo menos - símbolo delante del
nombre de la columna. Ordenar la salida de ps por% mem

ps -o pid,tty,time,%mem,cmd --sort %mem

Your output should be similar to the following:

11.7.5 Paso 5 Mientras que el comando ps se puede mostrar el porcentaje de


memoria que un proceso está utilizando el comando free mostrará el uso total
de memoria del sistema
free

Your output should be similar to the following:


11.7.6 Paso 6 Detener el comando cat con el comando kill siguiente y verificar
con el comando jobs:

kill 170
jobs

Your output should be similar to the following:

11.8 Visualización de registros del SistemaLos registros del sistema son


críticos para muchas tareas, incluyendo la solución de problemas del sistema
operativo y la garantía de que su sistema es seguro. Saber dónde se
almacenan los archivos de registro del sistema y cómo mantenerlos es
importante para un administrador del sistema.Hay dos demonios que manejan
los mensajes de registro: el demonio syslogd y el demonio klogd. Normalmente,
usted no tiene que preocuparse por klogd; que sólo se ocupa de los mensajes
de registro del kernel y envía su información de registro para el demonio
syslogd.Los mensajes que se generaron por el kernel durante el arranque se
almacenan en el archivo / var / log / dmesg. El comando dmesg permite la
visualización de los mensajes actuales del núcleo, así como proporcionar el
control de si aparecerán esos mensajes en una ventana de la consola terminal.
El archivo de registro principal que se escribe por syslogd es / var / log /
messages.
Además del registro realizado por syslogd, muchos otros procesos realizan su
propio registro. Algunos ejemplos de procesos que hacen su propia explotación
forestal incluyen al servidor web Apache (archivo de registro reside en el
directorio / var / log / httpd), el Sistema Común de Unix Printing (/ var / log /
cups), y el demonio auditd (/ var / log / auditoría).Nota: En los sistemas de
CentOS, el syslogd se llama rsyslogd

The main log file that is written to by syslogd is /var/log/messages.


In addition to the logging done by syslogd, many other processes perform their own
logging. Some examples of processes that do their own logging include the Apache web
server (log file resides in the /var/log/httpd directory), the Common Unix Printing
System (/var/log/cups) and the auditd daemon (/var/log/audit).
Note: On CentOS systems, the syslogd is called rsyslogd.
11.8.1 Paso 1 Debido a que los próximos comandos que se ejecutarán en este
laboratorio requieren derechos de superusuario, utilice el comando su para
cambiar a la cuenta root

su - root
{Enter the password: netlab123}

11.8.2 Paso 2 Los registros del sistema se almacenan en el directorio / var /


log. Enumerar los archivos de este directorio

ls /var/log

11.8.3 Paso 3 Cada archivo de registro representa un servicio o función. Por


ejemplo, el archivo auth.log muestra información sobre la autorización o la
autenticación, tales como los intentos de inicio de sesión de usuario. Los
nuevos datos se almacena en la parte inferior del archivo. Ejecute los
siguientes comandos para ver un ejemplo

ssh localhost
{At the first prompt, type yes}
{At the second prompt, type abc}
{At the third prompt, type abc}
{At the fourth prompt, type abc}
tail -5 /var/log/auth.log
The ssh command was used to generated data in the /var/log/auth.log file. Note the
failed login attempts are logged in the /var/log/auth.log file.

El comando ssh se utilizó para los datos generados en el archivo


/var/log/auth.log. Nota de los intentos de conexión fallidos se registran en el
archivo de /var/log/auth.log

11.8.4 Paso 4 Para ver otro ejemplo de entradas de log, ejecute los siguientes
comandos
crontab –e

A continuación, agregue la siguiente línea al documento (recordemos que voy a


permitir que ingrese el modo de inserción) y luego guardar y salir con ESC,: wq,
Enter

0 2 * * 0 who >> /tmp/whothere

Después de haber completado los cambios, ver el archivo de registro para el


servicio crontab
crontab -l | tail -2
tail /var/log/cron.log
11.8.5 Paso 5 Ver las últimas cinco líneas del archivo / var / log / dmesg para ver los
mensajes del kernel desde el momento del arranque y ejecutar el comando dmesg
canaliza al comando tail para ver los últimos cinco mensajes del kernel

tail -5 /var/log/dmesg
dmesg | tail -5

Right about now you are likely thinking "what do all of these messages actually
Justo ahora que usted está probablemente pensando "¿Qué tienen todos estos mensajes
significa en realidad?". La respuesta a esa pregunta no es simple, sin embargo el punto
detrás de esta lección no es explicar el significado de todos los mensajes de registro, sino
más bien para aprender dónde encontrar los mensajes de registro. A medida que adquiera
más experiencia en Linux, usted comenzará a solucionar problemas. En la mayoría de los
casos, el primer lugar que desea buscar es los archivos de registro. Con el fin de
proporcionarle un ejemplo de solución de problemas realistas, siga el siguiente conjunto de
tareas.

11.8.6 Paso 6 Escriba el siguiente comando para deshabilitar la capacidad del usuario
administrador de sistemas de creación de entradas crontab y salir de nuevo al usuario
administrador de sistemas:

echo "sysadmin" > /etc/cron.deny


exit
11.8.7 Paso 7 Intente ejecutar el siguiente comando crontab

crontab -e

Note: This command fails because of the entry in the /etc/cron.deny. If a username
exists in this file, then that user can not use the crontab command
Nota: Este comando no funciona debido a la entrada en el /etc/cron.deny. Si existe un
nombre de usuario en este archivo, a continuación, que el usuario no puede usar el
comando crontab.

11.8.8 Paso 8 En lugar de cambiar de usuario para root con el comando su, el uso de sudo
para ejecutar el siguiente comando con privilegios de root

sudo tail -5 /var/log/cron.log


{Enter the password: netlab123}

As you can see from the last line of the output of the tail command, the sysadmin user is
not allowed to use the crontab command.
Como se puede ver en la última línea de la salida del comando de la cola, no se permite
que el usuario sysadmin utilizar el comando crontab

11.9 bibliotecas compartidas

Las bibliotecas compartidas son archivos que contienen código que los
archivos de programa ejecutables pueden enlazar con el fin de utilizar ese
código. Debido a múltiples programas a menudo vinculan a un único archivo de
biblioteca, esto ayuda a reducir la cantidad de espacio necesario para este
código ya que cada programa no tiene que tener su propia copia del código de
la biblioteca.

Estos archivos de la biblioteca más a menudo se almacenan en el directorio /


lib y / usr / lib. Directorios adicionales se pueden agregar o bien editando el
fichero de configuración, /etc/ld.so.conf. También puede crear archivos con
nombres que terminan en .conf y colocarlos en el directorio /etc/ld.so.conf.d.
Por último, también puede establecer la variable de entorno
LD_LIBRARY_PATH también.
11.9.1 Paso 1 Cuando se ejecuta como usuario root, el comando ldconfig se
puede utilizar para actualizar el caché y los enlaces simbólicos para las
bibliotecas compartidas en el sistema. Como un usuario normal, se ejecutará el
comando ldconfig para imprimir la lista de bibliotecas compartidas

ldconfig -p | less

Remember to press q to quit the less pager

Recuerde pulsar q para salir del paginador less

11.9.2 Paso 2 Con el fin de ver lo que las bibliotecas están vinculadas a un
ejecutable, como / bin / bash, ejecute el comando ldd:
ldd /bin/bash

Your output should appear similar to the following:

Das könnte Ihnen auch gefallen