为什么我需要root权限才能在命令行卸载驱动器,而不是在Nautilus中? 怎么改变?

当我插入拇指驱动器,媒体卡或USB硬盘驱动器,通过命令行卸载它,我需要使用:

sudo umount /media/the_device 

但是,我可以通过单击弹出按钮或使用设备上的右键单击上下文菜单在Nautilus等文件管理器中卸载设备。

区别的理由是什么? 如何更改它以便我可以从命令行卸载而无需root权限? 改变它是个坏主意吗?

编辑:如果它已更改,我运行9.04。 我已经运行了大多数版本5.10–9.04,据我所知,它一直是这样的。

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 

卸载文件系统; 我也可以拆卸整个设备

 udisks --detach /dev/sdb 

这使我的USB钥匙上的LED变暗。

情况可能已经改变 – 在当前的Ubuntu 10.04 umount工作时没有sudo用于USB驱动器。 一般来说我认为这个命令

 gvfs-mount -u /media/the_device 

(gvfs-mount在gvfs-bin包中)应该始终有效。