Perintah hidepid
digunakan untuk mencegah pengguna melihat semua proses yang bukan milik mereka, tetapi tidak menawarkan kemungkinan untuk memilih proses tertentu. Apakah mungkin untuk menyembunyikan hanya satu proses pada mesin Linux?
Jawaban yang Diterima:
Agak kotor, dan mungkin ada solusi yang lebih bersih (mungkin menggunakan SELinux atau grsec), tetapi Anda dapat menyembunyikan proses dengan memasang direktori kosong di dalam /proc/<pid>
.
Misalnya, seperti ini:
mount -o bind /empty/dir /proc/42
akan mencegah pengguna biasa melihat proses 42.
Namun, mereka akan melihat bahwa ada sesuatu yang tersembunyi karena mereka dapat melihat titik pemasangan.
Jika Anda ingin melakukan ini untuk layanan, Anda harus melakukan ini setiap kali dimulai, menggunakan skrip initnya atau apa pun.
Jika Anda ingin menyembunyikan pid hanya dari pengguna tertentu, Anda dapat bermain dengan ruang nama (mungkin menggunakan pam_namespace
) agar mount bind hanya dilakukan di namespace pengguna target.
Untuk membalikkan ini, jalankan saja:
umount /proc/42