我想在登录后挂载一个分区,就像我单击“设备”下的未挂载设备时文件管理器一样。理想情况下,我想使用文件管理器使用的相同底层守护进程。
它不应该通过 fstab 安装。基本上,结果应该就像我在登录后打开文件管理器并单击设备一样,无需提升权限,用户不可挂载,相同的访问权限,在文件层次结构中的相同位置(/media/user/partitionlabel-or-UUID
)。
登录后 - 例如,可以为不同的用户安装不同的设备。
怎么可能做到这一点?搜索淹没了海量答案中的相关信息/etc/fstab
。在登录时安装 samba fs 的一个建议答案在这里没有帮助。
如果你知道要寻找什么,答案真的很简单。在登录时自动挂载磁盘的一种与 DE 无关的方法是使用
udisksctl
. 它通常用于挂载循环设备,但也可以挂载驱动器。必要的polkit
规则已经存在,因为udisks2
在后台用于文件管理器的自动挂载机制。因此,它可以在没有提升访问权限的情况下运行。udisksctl mount -b /dev/sdn1
或udisksctl mount -b /dev/disk/by-label/<disklabel>
从/media/<username>/<diskname or UUID>
.udisksctl mount -b /dev/sdn1 2>/dev/null
添加到用户的行~/.profile
,在每次图形、非图形或远程登录后运行,尝试挂载磁盘,如果已经挂载,则静默失败,因此用户不会被错误行激怒。为了完整起见,如果需要,
~/.bash_logout
可以udisksctl unmount -b /dev/sdn1
在注销时卸载此磁盘。要获得更广泛的解决方案,请将其放入
~/.profile
:并将其添加到
~/.bash_logout
:您必须将要挂载的设备的所有标签放在空格分隔的
userdisks
阵列中。确保带有空格的标签用引号括起来。这让用户知道磁盘已安装在命令行上,当磁盘已安装时静默跳过安装,并在磁盘丢失时给出错误。
只有当最后一个用户会话被注销时,磁盘才会被卸载。
ssh
例如,当通过具有可移动设备的笔记本电脑登录时,此设置非常方便。总的来说,上面的答案是正确的,但是这是我的提示。对我来说,解决方案
lsblk -l | grep -q $disk
没有成功,因为由于某些原因,我的磁盘仍然在输出中。我通过将该行更改为