Есть ли способ, которым я могу получить, какой пользователь sudo работает в каком каталоге, в каком файле.
Есть ли файл, который показывает детали текущего рабочего каталога всех пользователей sudo.
Есть ли способ, которым я могу получить, какой пользователь sudo работает в каком каталоге, в каком файле.
Есть ли файл, который показывает детали текущего рабочего каталога всех пользователей sudo.
Вы можете использовать pgrep sudo
для получения всех процессов sudo, затем ps h --ppid $THEPID -o pid
для получения дочерних процессов и, наконец, pwdx $SUBPID
для получения рабочего каталога этих подпроцессов.
Наконец, вы можете суммировать это в два цикла for, которые могут выглядеть так:
for sudo in `pgrep sudo`; do
sudo pwdx $sudo;
for subsudo in `ps h --ppid $sudo -o pid`; do
sudo pwdx $subsudo
done
done
Поскольку вы получаете только одно поколение дочерних процессов с каждым вызовом ps
, номера процессов дочерних процессов должны быть получены рекурсивно.
Следующий скрипт делает это:
#!/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
Вывод сортируется и удаляются двойные строки в случае, если кто-то запускает процесс sudo
из сеанса sudo su
.