LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1200|回复: 2

完美解决mandriva 2006下普通用户无法访问usb移动硬盘的方法

[复制链接]
发表于 2006-1-9 22:56:21 | 显示全部楼层 |阅读模式
这个问题困扰我很久,经过一番搜索,终于找到了完美的解决办法,拿出来和大家分享,希望有同样问题的朋友可以有个借鉴。先列出我的fstab文件:
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/hdb5 / ext3 defaults 1 1
/dev/hdb7 /home ext3 defaults 1 2
/dev/hdc /mnt/cdrom auto umask=0,user,iocharset=cp936,codepage=936,noauto,ro,exec,users 0 0
/dev/hda1 /mnt/winc ntfs umask=0,nls=cp936,ro 0 0
/dev/hdb2 /mnt/winf ntfs umask=0,nls=cp936,ro 0 0
/dev/hda2 /mnt/wine ntfs umask=0,nls=cp936,ro 0 0
/dev/hdb3 /mnt/wing ntfs umask=0,nls=cp936,ro 0 0
none /proc proc defaults 0 0
/dev/hdb6 swap swap defaults 0 0
/dev/sda2 /mnt/Overlord ntfs pamconsole,exec,noauto,utf8,iocharset=utf8,managed 0 0
/dev/sda1 /mnt/Drone ntfs pamconsole,exec,noauto,utf8,iocharset=utf8,managed 0 0

最后2行是我的移动硬盘加载语句,起初的方法是Darling66说的,在里面加入unmask=0参数,但我发现系统每次启动会重新reset最后2行,于是我怀疑是否managed=0 0的原因,我于是去掉这个,然后我发现如果你拔掉硬盘重启之后再插上是可以了,但是如果你不拔硬盘重启,又会恢复原样,后来网上查询得知是因为有个叫fstab-sync东西搞的鬼。然后有人提出禁止fstab-sync,但是这个比较麻烦,其实可以通过编辑/usr/share/hal/fdi/90defaultpolicy/storage-policy.fdi这个文件,在里面加入
<merge key="storage.policy.default.mount_option.umask=0022" type="bool">true</merge>
就可实现移动硬盘的完美访问,但是这个文件每次系统更新后会被覆盖,后来我又找到了一个自定义fdi文件的方法,这个才是最完美的解决办法,办法如下:
建立一个叫storage-policy-pers.fdi的文件,文件内容为:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">

<!-- Default policies merged onto computer root object -->
<device>
<match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
<merge key="storage.policy.default.mount_root" type="string">/mnt</merge>
<merge key="storage.policy.default.use_managed_keyword" type="bool">true</merge>
<merge key="storage.policy.default.managed_keyword.primary" type="string">managed</merge>
<merge key="storage.policy.default.managed_keyword.secondary"
type="string">kudzu</merge>
<merge key="storage.policy.default.mount_option.user"
type="bool">true</merge>
<merge key="storage.policy.default.mount_option.owner" type="bool">true</merge>
<merge key="storage.policy.default.mount_option.umask=0022" type="bool">true</merge>
<merge key="storage.policy.default.mount_option.noauto" type="bool">true</merge>
<merge key="storage.policy.default.mount_option.pamconsole" type="bool">true</merge>
<merge key="storage.policy.default.mount_option.exec" type="bool">true</merge>
</match>
</device>

然后把它放在/usr/share/hal/fdi/95userpolicy目录下,重新启动,一切OK。
至于为什么没用unmask=0,而用unmask=0022,是因为0表示任何用户都拥有所有权限,而0022表示除了owner拥有所有权限之外,其他一律只有访问权限,考虑到ntfs本来就只能访问,所以没必要用unmask=0了,呵呵。
发表于 2006-1-10 09:35:58 | 显示全部楼层
hehe,多谢了。
不过我用mandriva,无论什么用户,什么版本的系统,都能正常访问移动硬盘的说,而且可以自动加载,不用写到fstab里面的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-10 10:52:02 | 显示全部楼层
fstab不是我写的,系统自己写的,你不用fstab我就不清楚了。反正我的系统是根据这个文件来加载的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表