經常遇到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這個虛擬目錄才行。