[英]How to drop privileges in bash script between pipes?
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 身份運行。 有沒有辦法以 root 身份執行dbus-monitor
,以普通用戶身份執行其余管道? 在dbus-monitor
之前添加sudo
不是一個選項,因為它只是一種解決方法,我可能打算以 root 身份執行腳本,它會無緣無故地再次提升權限。 我還想使用 polkit,例如pkexec
。 謝謝!
像這樣:
cmd_a | sudo -u "${USER}" cmd_b
如果腳本以 root cmd_a
啟動, cmd_a
將以 root cmd_b
運行, cmd_b
將以 $USER cmd_b
運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.