我想使用 samba 為自己和另一個用戶共享資料夾。我像這樣創建了 smb.conf:
[global]
workgroup = WORKGROUP
server role = standalone server
map to guest = never
usershare allow guests = no
hosts allow = 192.168.0.0/16
hosts deny = 0.0.0.0/0
[movies-library-share]
comment = share of movies in local network
path = /media/user1/multimedia/video/movies-library
browseable = yes
writeable = yes
valid users = user1,user2
user1 是我,我可以訪問此共享並查看所有內容,我可以編寫,因此它工作正常,但 user2 只能登錄,其他所有內容都無法訪問,甚至讀取文件。我的問題是如何使其對 user2 可讀可寫?我認為這可能與用戶 2 存取電影庫資料夾的權限有關。我不確定應該如何分配適當的權限或群組。
答案1
預設情況下,您的兩個使用者位於各自的群組中:user1:user1 和 user2:user2。
這些檔案可能由 user1:user1 擁有,「其他」使用者無權存取。
解決方案範圍從最簡單到最強大:
- 假裝每個人都
user1
透過添加force user = user1
到共享中。
user2
現在擁有所有的權利和權限user1
。- 根據 @DeeJayh 的評論,您還需要添加
valid users = user1 user2
以便 user3 和 4 等無法瀏覽共享。
user1
透過添加force group = user1
共享來假裝每個人都是一個群組。
- 與上面相同的警告,但您可以使用以下命令刪除群組寫入存取權限
chmod g-w ...
- 授予每個人讀取/執行存取權限。
- 這包括
user2
- 系統上的每個人都可以存取現在存在的文件,儘管不是透過 samba。
- 未來的添加每次都需要運行。
chmod -R o+rx /media/user1/multimedia/video/movies-library
- 分享群組
- 建立一個群組,該群組
user1
都是user2
該群組的成員,並將檔案的所有權設定為該群組。 - 將該群組新增至兩個使用者。
- 將共享的群組所有權設定為該群組。
- 確保該目錄中的所有內容均可群組存取。
- 在目錄上設定 GID,以便將來的新增繼承該群組。
-
sudo usermod -a -G 媒體分享 user1 sudo usermod -a -G 媒體分享 user2 chown -R user1:媒體分享 /media/user1/多媒體/視訊/電影庫 chmod -R g+rx /media/user1 /多媒體/視頻/電影庫chmod -R g+s /media/user1/多媒體/影片/電影庫```
- 如果您透過 samba 新增文件,則可以透過新增
create mask = 0750
和directory mask = 0770
到共用來設定目錄和文件遮罩以確保群組權限。