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.
Tabla de Contenidos
¿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.
descargar – Libro 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
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
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
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
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: