Udev

如何使 udisksctl 為另一個使用者行事?

  • July 4, 2016

以 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 身份驗證對話框彈出

引用自:https://unix.stackexchange.com/questions/293855