Il comando hidepid
viene utilizzato per impedire agli utenti di vedere tutto processi che non gli appartengono, ma non offre la possibilità di selezionare un processo specifico. È possibile nasconderne solo uno processo su una macchina Linux?
Risposta accettata:
Un po' sporco e probabilmente c'è una soluzione più pulita (magari usando SELinux o grsec), ma puoi nascondere un processo montando una directory vuota all'interno di /proc/<pid>
.
Ad esempio, qualcosa del genere:
mount -o bind /empty/dir /proc/42
impedirà agli utenti regolari di vedere il processo 42.
Tuttavia, vedranno che qualcosa è nascosto poiché potranno vedere il punto di montaggio.
Se vuoi farlo per un servizio, dovresti farlo ogni volta che viene avviato, usando il suo script init o altro.
Se vuoi nascondere il pid solo a un utente specifico, puoi giocare con gli spazi dei nomi (magari usando pam_namespace
) per fare in modo che l'associazione di montaggio venga eseguita solo nello spazio dei nomi dell'utente di destinazione.
Per invertire questo, esegui semplicemente:
umount /proc/42