Tutoriales

Cómo monitorear la actividad del usuario en Linux

Como administrador de Linux, debe realizar un seguimiento de las actividades de todos los usuarios. Cuando hay un problema con su servidor, puede analizar e investigar la actividad del usuario e intentar encontrar la causa raíz del problema.Hay muchas maneras de Monitorear usuarios en LinuxEn esta guía, discutiremos Utilidades de contabilidad GNU puede ser usado para Supervisar la actividad del usuario en Linux.

¿Qué es una utilidad contable?

Las utilidades de contabilidad brindan información útil sobre el uso del sistema, como conexiones, programas ejecutados y uso de recursos del sistema en Linux.Estas utilidades de contabilidad se pueden instalar usando mensaje o cuenta paquete.

Igual que psacct o acct. En los sistemas basados ​​en RPM está disponible como psacct y en los sistemas basados ​​en DEB está disponible como acct.

¿Para qué sirve la utilidad psacct o acct? Quizás te estés preguntando.Por lo general, los detalles del historial de la línea de comandos de un usuario se almacenarán en .bash_history los archivos están en su directorio $HOME. Algunos usuarios pueden intentar editar, modificar o eliminar el historial.

Sin embargo, las utilidades de contabilidad aún pueden recuperar la actividad del usuario incluso si borrar su historial de línea de comandos completamente. porque, Todos los archivos de contabilidad de procesos son propiedad de root Los usuarios, los usuarios normales no pueden editar.

Instalar psacct o acct en Linux

Las utilidades psacct/acct están empaquetadas para distribuciones populares de Linux.

Para instalar psacct en Alpine Linux, ejecute:

$ sudo apk add psacct

Para instalar acct en Arch Linux y sus variantes como EndeavourOS y Manjaro Linux, ejecute:

$ sudo pacman -S acct

En Fedora, RHEL y sus clones, como CentOS, AlmaLinux y Rocky Linux, ejecute el siguiente comando para instalar psacct:

$ sudo dnf install psacct

En RHEL 6 y versiones anteriores, debe usar yum reemplazar dnf Instale el paquete.

$ sudo yum install psacct

En Debian, Ubuntu, Linux Mint, instale acct con el siguiente comando:

$ sudo apt install acct

Para instalar acct en openSUSE, ejecute:

$ sudo zypper install acct

Inicie el servicio psacct/acct

Para habilitar e iniciar el servicio psacct, ejecute:

$ sudo systemctl enable psacct
$ sudo systemctl start psacct

Para verificar que el servicio psacct esté cargado y activo, ejecute:

$ sudo systemctl status psacct

En los sistemas basados ​​en DEB, el servicio de cuenta se inicia automáticamente después de la instalación.

Puede verificar que el servicio de cuenta se haya iniciado con el siguiente comando:

$ sudo systemctl status acct

Salida de muestra:

● acct.service - Kernel process accounting
     Loaded: loaded (/lib/systemd/system/acct.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2022-10-13 16:06:35 IST; 28s ago
       Docs: man:accton(8)
    Process: 3241 ExecStart=/usr/sbin/accton /var/log/account/pacct (code=exited, status=0/SUCCESS)
   Main PID: 3241 (code=exited, status=0/SUCCESS)
        CPU: 879us

Oct 13 16:06:35 ubuntu2204 systemd[1]: Starting Kernel process accounting...
Oct 13 16:06:35 ubuntu2204 accton[3241]: Turning on process accounting, file set to '/var/log/account/pacct'.
Oct 13 16:06:35 ubuntu2204 systemd[1]: Finished Kernel process accounting.

descargarLibro electrónico gratuito: «Manual de monitoreo de Nagios»

Supervise la actividad del usuario en Linux con psacct o acct

El paquete psacct (contabilidad de procesos) contiene las siguientes utilidades útiles para monitorear la actividad del usuario y del proceso.

  • comunicar – Mostrar estadísticas sobre el tiempo de inicio de sesión del usuario.
  • última comunicación – Mostrar información sobre los comandos ejecutados anteriormente.
  • actón – Activar o desactivar la contabilidad de procesos.
  • volcar cuenta – Convierta el archivo de salida del formato accton al formato legible por humanos.
  • volcar utmp – Imprima archivos utmp en formato legible por humanos.
  • Sá. – Resumir información sobre comandos ejecutados previamente.

Usemos cada utilidad por ejemplo para aprender cómo monitorear la actividad de los usuarios de Linux.

1. ejemplo de comando ac

Este comunicar La utilidad mostrará un informe de tiempo de conexión en horas. Puede indicarle cuándo un usuario o grupo de usuarios se conecta al sistema.

1.1.Muestra el tiempo total de conexión para todos los usuarios

$ ac

Este comando muestra el tiempo total de conexión de todos los usuarios en horas.

total       52.91
Muestra el tiempo total de conexión para todos los usuarios

1.2 Mostrar el número total de conexiones de todos los usuarios por día

Puede ordenar los resultados por día usando -d El logotipo es como se muestra a continuación.

$ ac -d

Salida de muestra:

May 11	total        4.29
May 13	total        3.23
May 14	total        7.66
May 15	total        8.97
May 16	total        0.52
May 20	total        4.09
May 24	total        1.32
Jun  9	total       15.18
Jun 10	total        2.97
Jun 22	total        2.61
Jul 19	total        1.95
Today	total        0.29
Muestra el número total de conexiones para todos los usuarios por día
Muestra el número total de conexiones para todos los usuarios por día

1.3 Obtener el tiempo total de conexión por usuario

Además, puede visualizar el tiempo que cada usuario está conectado al sistema -pags bandera.

$ ac -p

Salida de muestra:

ostechnix                           52.85
root                                 0.51
total       53.36
Obtener el tiempo total de conexión por usuario
Obtener el tiempo total de conexión por usuario

1.4 Imprimir el tiempo total de conexión de un usuario específico

Además, puede mostrar el tiempo total de inicio de sesión para un solo usuario.

$ ac ostechnix

Salida de muestra:

total       52.95

1.5.Ver el tiempo total de conexión de un usuario por día

Para mostrar la hora de inicio de sesión de un solo usuario por día, ejecute:

$ ac -d ostechnix

Salida de muestra:

May 11	total        4.29
May 13	total        3.23
May 14	total        7.66
May 15	total        8.97
May 16	total        0.01
May 20	total        4.09
May 24	total        1.32
Jun  9	total       15.18
Jun 10	total        2.97
Jun 22	total        2.61
Jul 19	total        1.95
Today	total        0.68
Ver el tiempo total de conexión de un usuario por día
Ver el tiempo total de conexión de un usuario por día

Consulte la página del manual para obtener más detalles.

$ man ac

2. ejemplo de comando lastcomm

Este última comunicación La utilidad muestra una lista de comandos ejecutados anteriormente. El comando ejecutado más recientemente aparecerá en primer lugar.

2.1.Mostrar comandos ejecutados anteriormente

$ lastcomm

Salida de muestra:

systemd-hostnam  S     root     __         0.06 secs Thu Oct 13 17:21
systemd-localed  S     root     __         0.06 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
awk                    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
uname                  ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
sed                    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
grep                   ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
grep                   ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
bash              F    ostechni pts/1      0.00 secs Thu Oct 13 17:22
[...]

2.2 Imprimir el último comando ejecutado por un usuario específico

El comando anterior muestra los comandos para todos los usuarios. Puede mostrar comandos ejecutados previamente para un usuario específico con:

$ lastcomm ostechnix

Salida de muestra:

less                   ostechni pts/1      0.00 secs Thu Oct 13 17:26
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:26
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:26
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:26
gdbus                X ostechni __         0.00 secs Thu Oct 13 17:24
lastcomm               ostechni pts/1      0.00 secs Thu Oct 13 17:24
ac                     ostechni pts/1      0.00 secs Thu Oct 13 17:24
update-notifier   F    ostechni __         0.00 secs Thu Oct 13 17:23
apport-checkrep        ostechni __         0.06 secs Thu Oct 13 17:23
apport-checkrep        ostechni __         0.05 secs Thu Oct 13 17:23
systemctl              ostechni __         0.00 secs Thu Oct 13 17:23
apt-check              ostechni __         0.81 secs Thu Oct 13 17:23
dpkg                   ostechni __         0.00 secs Thu Oct 13 17:23
ischroot               ostechni __         0.00 secs Thu Oct 13 17:23
dpkg                   ostechni __         0.00 secs Thu Oct 13 17:23
[...]

2.3 Imprimir el número total de ejecuciones de comandos

Además, puede ver cuántas veces se ha ejecutado un comando en particular.

$ lastcomm apt

Salida de muestra:

apt              S     root     pts/2      0.70 secs Thu Oct 13 16:06
apt               F    root     pts/2      0.00 secs Thu Oct 13 16:06
apt               F    root     pts/2      0.00 secs Thu Oct 13 16:06

Como puede ver en la salida anterior, apt El comando se ha ejecutado 3 veces. root usuario.

Consulte la página del manual para obtener más detalles.

$ man lastcomm

3. ejemplo de comando sa

La utilidad sa resumirá la información sobre los comandos ejecutados anteriormente.

3.1.imprimir un resumen de todos los comandos

$ sa

Salida de muestra:

  1522    1598.63re       0.23cp         0avio     32712k
    139     570.90re       0.05cp         0avio     36877k   ***other*
     38     163.63re       0.05cp         0avio    111445k   gdbus
      3       0.05re       0.04cp         0avio     12015k   apt-check
     27     264.27re       0.02cp         0avio         0k   kworker/dying*
      2      51.87re       0.01cp         0avio   5310464k   Docker Desktop
      5       0.03re       0.01cp         0avio       785k   snap-confine
      8      59.48re       0.01cp         0avio     85838k   gmain
      5     103.94re       0.01cp         0avio    112720k   dconf worker
     24       3.38re       0.00cp         0avio      2937k   systemd-udevd*
      7       0.01re       0.00cp         0avio     36208k   5
      3       1.51re       0.00cp         0avio      3672k   systemd-timedat
      2       0.00re       0.00cp         0avio     10236k   apport-checkrep
      2       0.01re       0.00cp         0avio   4316160k   ThreadPoolForeg*
      2       0.00re       0.00cp         0avio      8550k   package-data-do
      3       0.79re       0.00cp         0avio      2156k   dbus-daemon
     12       0.00re       0.00cp         0avio     39631k   ffmpeg
[...]

3.2 Ver la cantidad de procesos y minutos de CPU

Para imprimir procesos y minutos de CPU por usuario, ejecute sa comando con -m bandera:

$ sa -m

Salida de muestra:

                                     1525    1598.63re       0.23cp         0avio     32651k
root                                  561     647.23re       0.09cp         0avio      3847k
ostechnix                             825     780.79re       0.08cp         0avio     47788k
gdm                                   117      13.43re       0.06cp         0avio     63715k
colord                                  2      52.01re       0.00cp         0avio     89720k
geoclue                                 1       1.01re       0.00cp         0avio     70608k
jellyfin                               12       0.00re       0.00cp         0avio     39631k
man                                     1       0.00re       0.00cp         0avio      3124k
kernoops                                4     104.12re       0.00cp         0avio      3270k
sshd                                    1       0.05re       0.00cp         0avio      3856k
whoopsie                                1       0.00re       0.00cp         0avio      8552k

3.3 Impresión de ID de usuario y nombre de comando

Para cada comando en el archivo de contabilidad, use el siguiente comando para imprimir la ID de usuario y el nombre del comando -u bandera.

$ sa -u

Salida de muestra:

root       0.00 cpu      693k mem      0 io accton          
root       0.00 cpu     3668k mem      0 io systemd-tty-ask 
root       0.00 cpu     3260k mem      0 io systemctl       
root       0.01 cpu     3764k mem      0 io deb-systemd-inv 
root       0.00 cpu      722k mem      0 io acct.postinst   
root       0.00 cpu      704k mem      0 io rm              
root       0.00 cpu      939k mem      0 io cp              
root       0.00 cpu      704k mem      0 io rm              
root       0.00 cpu      951k mem      0 io find            
root       0.00 cpu      911k mem      0 io gzip            
root       0.00 cpu      722k mem      0 io sh              
root       0.00 cpu      748k mem      0 io install-info    
root       0.00 cpu      911k mem      0 io gzip            
[...]

Consulte la página del manual para obtener más detalles.

$ man sa

4. Volcar cuenta y ejemplo de comando dump-utmp

Este volcar cuenta La utilidad muestra los archivos de salida desde el formato accton hasta el formato legible por humanos.

$ dump-acct /var/account/pacct

dump-utmp Muestra archivos utmp en formato legible por humanos.

$ dump-utmp /var/run/utmp

Consulte la página del manual para obtener más detalles.

$ man dump-acct
$ man dump-utmp

5. Ejemplo de comando accton

El comando accton le permitirá activar o desactivar la contabilidad.

Para activar la contabilidad de procesos, ejecute:

$ accton on

Para apagarlo, ejecuta:

$ accton off

Consulte la página del manual para obtener más detalles.

$ man accton

En conclusión

Todo administrador de Linux debe conocer las utilidades de contabilidad de GNU para vigilar a todos los usuarios. Estas utilidades serán muy útiles durante el tiempo de resolución de problemas.

recurso:

LEER  Linux Kernel 5.11 lanzado oficialmente, esto es lo nuevo

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba