dbus-monitor --system --profile interface=org.freedesktop.login1.Session,type=signal,member={Lock,Unlock} |
egrep --line-buffered -o 'Lock|Unlock' |
while read SIGNAL; do
case "${SIGNAL}" in
Lock)
for i in "$(systemd-path user-shared)/watchlock/lock.d/"*; do
"${i}"
done
;;
Unlock)
for i in "$(systemd-path user-shared)/watchlock/unlock.d/"*; do
"${i}"
done
;;
esac
done
Я создал этот скрипт и хочу выполнить его как обычный пользователь, но dbus-monitor
работает только как root. Есть ли способ выполнить dbus-monitor
как root, а остальные каналы - как обычный пользователь? Добавление sudo
перед dbus-monitor
не вариант, так как это просто обходной путь, я мог бы намереваться выполнить скрипт как root, и это повысило бы привилегии еще раз без какой-либо причины. Я также хотел бы использовать polkit, например, pkexec
. Спасибо!