Udev
如何使 udisksctl 為另一個使用者行事?
以 root 使用者身份登錄,將
udisksctl mount
我的設備安裝在/media/root/mydevice
. 或者,以另一個使用者身份登錄,將udisksctl mount
我的設備安裝在/media/anotheruser/mydevice
.到現在為止還挺好。但是,*我想將兩者混合使用。*以 root 使用者身份登錄,我想
udisksctl mount
將我的設備安裝在/media/anotheruser/mydevice
. 原因:我希望其他使用者能夠訪問我的設備。換句話說,以 root 身份登錄,我想我想這樣做:
udisksctl --user=anotheruser mount
. 不幸的是,udisksctl
似乎沒有--user
選擇。這也不起作用:
USER=anotheruser udisksctl mount
.我該怎麼辦?
附加資訊
以 root 使用者身份登錄,我發出的確切命令是
USER=thb udisksctl mount -b /dev/sda11
.我曾想過製作一個 setuid 包裝器,但這無濟於事,不是嗎?以 root 身份發出命令的目的是跳過 GUI 身份驗證對話框
udisksctl
,否則會彈出。是否有一些 D-Bus 技術會有所幫助?我還沒有學好 D-Bus。在控制流的某個階段,無論是在 Udisks 階段、D-Bus 階段還是其他階段,我都需要說服系統為另一個使用者執行操作,而不會導致彈出不需要的 GUI 身份驗證對話框。
root 使用者應該可以這樣做,不是嗎?
我的平台是 Debian 8 jessie。
是的,要麼
su -c 'udisksctl mount -b /dev/sdd --no-user-interaction' - thb
或者
su - thb udisksctl mount -b /dev/sdd --no-user-interaction exit
將安裝
/dev/sdd
,例如/media/thb/mydevice
,不會導致不需要的 GUI 身份驗證對話框彈出。