簡體   English   中英

如何在管道之間刪除bash腳本中的權限?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM