Apakah ada cara dimana saya bisa mendapatkan pengguna sudo yang bekerja di direktori mana pada file mana.
Apakah ada file yang menunjukkan rincian direktori kerja saat ini dari semua pengguna sudo.
Anda bisa menggunakan pgrep sudo
untuk mendapatkan semua proses sudo, lalu ps h --ppid $THEPID -o pid
untuk mendapatkan proses turunannya dan akhirnya pwdx $SUBPID
untuk mendapatkan direktori kerja dari subproses ini.
Anda akhirnya bisa meringkasnya menjadi dua untuk loop, yang bisa terlihat seperti ini:
for sudo in `pgrep sudo`; do
sudo pwdx $sudo;
for subsudo in `ps h --ppid $sudo -o pid`; do
sudo pwdx $subsudo
done
done
Karena Anda hanya mendapatkan satu generasi proses anak dengan setiap panggilan ps
, jumlah proses proses anak harus diperoleh secara rekursif. Script berikut melakukan ini:
#!/bin/bash
function getchildren()
{
echo $1
children=`ps h --ppid $1 -o pid`
if [[ -n $children ]]; then
for child in $children; do
getchildren $child
done
fi
}
for sudo in `pgrep sudo`; do
for subsudo in `getchildren $sudo`; do
sudo pwdx $subsudo
done
done | sort | uniq
Output diurutkan dan garis ganda dihapus jika seseorang menjalankan sudo
proses dari dalam sudo su
sesi.