技术男的路
-
2008-04-29
LINUX下的/etc/fstab小谈 - [linux]
最经装了openSUSE 10.3。界面是我最爱的绿色,也自动帮我挂载了WINDOWS的分区到/windows/C等目录下,还按分区顺序命名为C、D、E、F。
可是,问题出现了……自动挂载的这些分区都是默认为只有ROOT才能修改的全限,普通的用户users根本就只能看。这么不和谐的行为自然要帮它改正了……
实验一:以管理员权限强制修改之。于是我就在执行:
#sudo chmod 775 /windows -R
sudo 命令是用来提升命令执行的权限的。结果……失败了
分析一下,想起这些个分区都是NTFS的,它们100多G的内容不会是linux提前设置的吧?!那要多少时间阿~~
又想到,通常linux下的分区都是通过/etc/fstab这个文件的内容来自动挂载的,肯定是这个文件搞的鬼吧?于是四处发帖求救,也证实了这一点。
那么~~~上课回来后,立刻实行 实验二 —— 修改/etc/fstab!!
看到原本的fstab里的内容为;
——————————————————————————————————————————————————————————————————
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part9 / ext3 acl,user_xattr 1 1
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part10 /home ext3 acl,user_xattr 1 2
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part1 /windows/C ntfs-3g users,gid=users,fmask=133,dmask=022,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part5 /windows/D ntfs-3g users,gid=users,fmask=133,dmask=022,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part6 /windows/E ntfs-3g users,gid=users,fmask=133,dmask=022,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part7 /windows/F ntfs-3g users,gid=users,fmask=133,dmask=022,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part8 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
——————————————————————————————————————————————————————————————————
把挂载的参数(users,gid=users,fmask=133,dmask=022,locale=zh_CN.UTF-8)直接改为defaults可不可行呢?我不敢这样试。因为以前使用UBUNTU的时候,就是用一个defaults,弄得挂进来的NTFS分区不能显示中文,那个郁闷阿~~~现在的SUSE已经能显示中文了,咱们就不能一道切了……
搜索Google Groups搜出了fstab里是如何决定权限的——关键在于
users,gid=users,fmask=133,dmask=022
这一串。
其中 gid=users :决定分区的所属组
fmask=133 :决定分区里的文件(File)的权限
dmask=022 :决定分区里的目录(Directory)的权限
另外,dmask,fmask值是按照这样的公式计算的;
实际文件权限 = 777 - fmask
实际目录权限 = 777 - dmask
于是,我就把fstab的内容改为:
——————————————————————————————————————————————————————————————————
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part9 / ext3 acl,user_xattr 1 1
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part10 /home ext3 acl,user_xattr 1 2
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part1 /windows/C ntfs-3g users,gid=users,fmask=003,dmask=002,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part5 /windows/D ntfs-3g users,gid=users,fmask=003,dmask=002,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part6 /windows/E ntfs-3g users,gid=users,fmask=003,dmask=002,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part7 /windows/F ntfs-3g users,gid=users,fmask=003,dmask=002,locale=zh_CN.UTF-8 0 0
/dev/disk/by-id/scsi-SATA_ST3160815AS_6RA110JS-part8 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
——————————————————————————————————————————————————————————————————
重启,发现成功了!YEAH!赞扬自己一下……







