van*_*den 28 command-line umount sudo
当我插入拇指驱动器、媒体卡或 USB 硬盘驱动器以通过命令行卸载它时,我需要使用:
sudo umount /media/the_device
Run Code Online (Sandbox Code Playgroud)
但是,我可以在像 Nautilus 这样的文件管理器中卸载设备,只需单击弹出按钮或使用设备上的右键单击上下文菜单。
差异的原因是什么?如何更改它以便我可以在不需要 root 权限的情况下从命令行卸载?改变它是一个坏主意吗?
编辑:如果它发生了变化,我正在运行 9.04。我已经运行了大多数 5.10--9.04 版本,据我所知,它一直都是这样。
Mar*_*nas 41
Nautilus 不会直接卸载设备;它通过 DBus 与系统守护进程 (udisks-daemon) 对话并要求它卸载。
该守护程序通过联系另一个系统守护程序 PolicyKit 来检查您是否被允许这样做。
PolicyKit 使用中定义的配置/usr/share/polkit-1/actions/org.freedesktop.udisks.policy(除非本地系统管理员在 中覆盖它/etc/polkit-1)。该文件告诉 PolicyKit 具有活动控制台会话的用户可以分离驱动器,因此 PolicyKit 与第三个守护程序 ConsoleKit 对话,以查看您是否有活动控制台会话。通过 gdm 登录算作一个控制台会话;通过 ssh 登录没有。
有一个命令行工具udisks可以让你在不使用 sudo 的情况下卸载设备,使用相同的机制:
udisks --unmount /dev/sdb1
Run Code Online (Sandbox Code Playgroud)
卸载文件系统;我也可以用
udisks --detach /dev/sdb
Run Code Online (Sandbox Code Playgroud)
这使我的 USB 钥匙上的 LED 变暗。
情况可能已经改变——在当前的 Ubuntu 10.04 umount 中,没有 sudo 用于 USB 驱动器。一般我认为命令
gvfs-mount -u /media/the_device
Run Code Online (Sandbox Code Playgroud)
(gvfs-mount 在 gvfs-bin 包中)应该总是有效的。