经常遇到samba共享的目录没有权限读或者写, 于是我专门对文件权限做了一些试验. 发现:
1. 用户要访问一个文件, 必须对其"所有"上层目录都有x权限.
2. 用户在创建一个文件, 只需要对其所在目录有w权限, 而其它上层目录是否有w权限无关紧要.
如果samba是以security = share方式共享, 那么默认用户是nobody, 所以一般给这个用户权限就可以了.
这里不得不提一下曾经叫我十分苦恼的问题. 不知道有没有同学也遇到过, 明明所有目录和文件都是777权限, 但怎么也不能写, 为什么呢?
这个时候需要检查smb配置文件.
[home]
comment = Home Directories
path = /home
browseable = yes
writable = yes
[root]
comment = Root Directory
path = /
browseable = yes
writable = no
对于上面这样的配置, 如果通过虚拟目录root访问, 因为writable=no, 所以不管目录与文件权限怎样, 都不可写. 要换成home这个虚拟目录才行.