Jika saya menjalankan perintah dengan argumen seperti ini:
bob@bob-pc:~$ command -arg1 -arg2
... dapatkah pengguna lain melihat argumen yang diteruskan ke perintah?
Jika saya menjalankan perintah dengan argumen seperti ini:
bob@bob-pc:~$ command -arg1 -arg2
... dapatkah pengguna lain melihat argumen yang diteruskan ke perintah?
Jawaban:
Secara umum ya, mereka bisa melihatnya. Ini dari w
halaman manual:
Entri berikut ditampilkan untuk setiap pengguna: nama login, nama tty, host jarak jauh, waktu login, waktu idle, JCPU, PCPU, dan baris perintah dari proses mereka saat ini.
Baris perintah lengkap dari proses Anda yang sedang berjalan akan ditampilkan. Itu sebabnya Anda tidak ingin menyediakan hal-hal seperti kata sandi melalui argumen baris perintah.
XXXXXXXX
); Saya ingin tahu caranya. Mungkin melakukan sesuatu yang lumpuh seperti hanya mengayunkan dirinya sendiri dan mengeluarkan argumen palsu; Saya tidak yakin
Secara umum, argumen baris perintah dapat dilihat oleh semua. Sebagai contoh, sebagai pengguna non-root di OpenBSD, saya bisa melihat argumen proses yang berjalan sebagai root:
$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0
Di Linux, Anda akan melihat bahwa semua /proc/*/cmdline
file dapat dibaca dunia.
Mungkin ada pengaturan yang sangat spesifik di mana argumen baris perintah tetap pribadi. Misalnya, SELinux dan Solaris dapat menyembunyikan proses dari pengguna lain . Tapi kecuali Anda benar-benar tahu Anda berada dalam pengaturan seperti itu, anggap argumen baris perintah bersifat publik.
Pada pengaturan standar argumen terlihat. Seperti yang telah disebutkan , proses dapat menimpanya dalam memori tetapi tidak sebelum proses lain memiliki kesempatan untuk melihatnya.
Namun, patchset grsecurity menyertakan patch yang mengubahnya sehingga hanya pemilik proses (dan root) yang dapat melihat argumen yang diteruskan ke suatu proses.