如何使 udisksctl 代表另一个用户?

如何使 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。

答案1

是的,或者

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 身份验证对话框

相关内容