Tutorials

ps

Il comando ps process status è uno degli strumenti principali in Linux per monitorare e gestire i processi in esecuzione sul sistema. Viene utilizzato per ottenere informazioni sui processi attivi, co

#linux

Comando ps in Kali Linux

Il comando ps (process status) è uno degli strumenti principali in Linux per monitorare e gestire i processi in esecuzione sul sistema. Viene utilizzato per ottenere informazioni sui processi attivi, come l'ID del processo (PID), il proprietario del processo, la quantità di CPU e memoria utilizzata, e altro ancora. Il comando è fondamentale per il troubleshooting, l'analisi delle prestazioni del sistema e la sicurezza.


Sintassi del Comando

La sintassi base del comando ps è la seguente:

ps [opzioni]

Dove le opzioni definiscono i dettagli che si desidera ottenere sui processi. Senza opzioni, ps mostrerà solo i processi relativi al terminale corrente.


Opzioni Comuni del Comando ps

1. ps (senza opzioni): Mostra solo i processi appartenenti al terminale attivo dell'utente. ps Esempio di output: PID TTY TIME CMD 1234 pts/0 00:00:05 bash 5678 pts/0 00:00:02 ps 2. ps aux: Mostra tutti i processi in esecuzione su tutta la macchina, non limitati dal terminale attivo. L'opzione a visualizza i processi di altri utenti, mentre u mostra l'utente e x include i processi senza terminale (come quelli da demoni). ps aux Esempio di output: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1234 0.1 1.2 12000 5000 ? Ss 08:00 0:01 /usr/sbin/apache2 user1 5678 0.0 0.3 8000 3000 pts/0 S+ 09:00 0:00 bash user2 9876 1.2 2.5 15000 6000 ? S 09:10 0:10 /usr/bin/python3 3. ps -e o ps -A: Mostra tutti i processi in esecuzione sul sistema. ps -e Esempio di output: PID TTY STAT TIME COMMAND 1234 ? Ss 0:10 /usr/sbin/apache2 5678 pts/0 S+ 0:00 bash 4. ps -ef: Mostra una lista completa dei processi in esecuzione con dettagli come PID, PPID (Parent Process ID), l'utente che ha avviato il processo e il comando utilizzato per avviarlo. ps -ef Esempio di output: UID PID PPID C STIME TTY TIME CMD root 1234 1 0 08:00 ? 00:00:10 /usr/sbin/apache2 user1 5678 1234 0 09:00 pts/0 00:00:02 bash 5. ps -u [utente]: Mostra i processi in esecuzione da un determinato utente. ps -u user1 Esempio di output: PID TTY STAT TIME COMMAND 5678 pts/0 S+ 0:00 bash 9102 pts/0 R+ 0:00 ps -u user1 6. ps -p [PID]: Mostra informazioni su un processo specifico identificato dal suo PID. ps -p 1234 Esempio di output: PID TTY STAT TIME COMMAND 1234 ? Ss 0:10 /usr/sbin/apache2 7. ps -o [campo]: Mostra campi personalizzati dei processi. È possibile specificare variabili come pid, user, cpu, mem, ecc. ps -eo pid,ppid,uid,comm Esempio di output: PID PPID UID COMMAND 1234 1 0 apache2 5678 1234 1000 bash 8. ps --sort=[campo]: Ordina l'output in base a un campo specifico, come pid, uid, cpu, ecc. ps aux --sort=-%cpu Esempio di output: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user1 9876 5.0 1.5 15000 5000 ? S 09:10 0:10 /usr/bin/python3 root 1234 0.1 1.2 12000 5000 ? Ss 08:00 0:01 /usr/sbin/apache2


Campi di Output Comuni

Alcuni dei campi più comuni che ps può mostrare nell'output includono:

  • PID: Process ID, l'identificativo univoco del processo.
  • PPID: Parent Process ID, l'ID del processo padre.
  • UID: User ID, l'ID dell'utente che ha avviato il processo.
  • USER: Il nome dell'utente che ha avviato il processo.
  • %CPU: La percentuale di utilizzo della CPU da parte del processo.
  • %MEM: La percentuale di memoria utilizzata dal processo.
  • VSZ: La dimensione virtuale in memoria del processo.
  • RSS: La quantità di memoria fisica (RAM) utilizzata dal processo.
  • TTY: Il terminale associato al processo.
  • STAT: Lo stato del processo (S per dormiente, R per in esecuzione, Z per zombie, ecc.).
  • START: L'orario di inizio del processo.
  • TIME: Il tempo totale di CPU utilizzato dal processo.
  • COMMAND: Il comando che ha avviato il processo.

Utilizzo Avanzato del Comando ps

1. Monitorare i processi in tempo reale: Utilizzando ps con il comando watch, possiamo monitorare i processi in tempo reale. watch "ps aux --sort=-%mem" 2. Uccidere un processo: È possibile utilizzare il comando kill insieme al PID per terminare un processo. kill -9 [PID] Esempio: kill -9 1234


Conclusione

Il comando ps è uno strumento essenziale per la gestione dei processi in Linux. Con una vasta gamma di opzioni, permette agli amministratori di sistema e ai pentester di monitorare i processi in esecuzione, identificare comportamenti anomali e raccogliere informazioni cruciali per l'analisi del sistema e la sicurezza.

Con l'utilizzo delle opzioni più avanzate, è possibile personalizzare completamente l'output, eseguire ordinamenti e analisi dettagliate, nonché terminare processi problematici. Comprendere appieno il comando ps e come applicarlo è fondamentale per operazioni di amministrazione di sistema avanzate e per l'efficace esecuzione di penetration test.