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