cara mengetahui di direktori mana pengguna sudo berfungsi jika saya adalah pengguna root

1

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.

juara
sumber

Jawaban:

4

Anda bisa menggunakan pgrep sudountuk mendapatkan semua proses sudo, lalu ps h --ppid $THEPID -o piduntuk mendapatkan proses turunannya dan akhirnya pwdx $SUBPIDuntuk 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 sudoproses dari dalam sudo susesi.

Tim
sumber