fedora預裝的samba已經是samba-3.0.0-15,功能已經非常強大了,今天我們調試的重點不是samba3.0的新功能,我們還是先來實現他的基本功能,文件共享服務,至於域控制器功能我會在以後的調試手記中闡述。 我們今天要實現的環境是,假如公司有財務,技術,領導3個部門,我們分別為3個部門建立3個用戶組為caiwu,network,lingdao; 三個部門裡各有2個用戶,我們建用戶分別為caiwu01,caiwu02,network01,network02,lingdao01,lingdao02 然後我們分別就公司的具體情況建立相應的目錄及訪問權限,通過以下的例子,希望大家能在平時的工作中靈活的應用samba的安全權限來設置你們的samba文件服務器。 1.首先服務器采用用戶驗證的方式,每個用戶可以訪問自己的宿主目錄,並且只有該用戶能訪問宿主目錄,並具有完全的權限,而其他人不能看到你的宿主目錄。 2.建立一個caiwu的文件夾,希望caiwu組和lingdao組的人能看到,network02也可以訪問,但只有caiwu01有寫的權限。 3.建立一個lindao的目錄,只有領導組的人可以訪問並讀寫,還有network02也可以訪問,但外人看不到那個目錄 4.建議一個文件交換目錄exchange,所有人都能讀寫,包括guest用戶,但每個人不能刪除別人的文件。 5.建議一個公共的只讀文件夾public,所有人只讀這個文件夾的內容。 好,我們先來前期的工作 #groupadd caiwu #groupadd network #groupadd lingdao #useradd caiwu01 -g caiwu #useradd caiwu02 -g caiwu #useradd network01 -g network #useradd network02 -g network #useradd lingdao01 -g lingdao #useradd lingdao02 -g lingdao 然後我們使用smbpasswd -a caiwu01的命令為6個帳戶分別添加到samba用戶中 #mkdir /home/samba #mkdir /home/samba/caiwu #mkdir /home/samba/lingdao #mkdir /home/samba/exchange #mkdir /home/samba/public 我們為了避免麻煩可以在這裡把上面所有的文件夾的權限都設置成777,我們通過samba靈活的權限管理來設置上面的5點要求。 以下是我的smb.conf的配置文件 [global] workgroup = bmit #我的網絡工作組 server string = Frank's Samba File Server #我的服務器名描述 security = user #使用用戶驗證機制 encrypt passWords = yes smb passwd file = /etc/samba/smbpasswd #使用加密密碼機制,在win95和winnt使用的是明文 其他的基本上可以按照默認的來。 [homes] comment = Home Directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 #homes段滿足第1條件 [caiwu] comment = caiwu path = /home/samba/caiwu public = no valid users = @caiwu,@lingdao,network02 write list = caiwu01 printable = no #caiwu段滿足我們的第2要求 [lingdao] comment = lingdao path = /home/samba/lingdao public = no browseable = no valid users = @lingdao,network02 printable = no #lingdao段能滿足我們的第3要求 [exchage] comment = Exchange File Directory path = /home/samba/exchange public = yes writable = yes #exchange段基本能滿足我們的第4要求,但不能滿足每個人不能刪除別人的文件這個條件,即使裡設置了mask也是沒用,其實這個條件只要unix設置一個粘著位就行 chmod -R 1777 /home/samba/exchange 注意這裡權限是1777,類似的系統目錄/tmp也具有相同的權限,這個權限能實現每個人能自由寫文件,但不能刪除別人的文件這個要求 [public] comment = Read Only Public path = /home/samba/public public = yes read only = yes #這個public段能滿足我們的第5要求。 到此為止我們的設置已經能實現我們的共享文件要求,記得重啟服務哦 #/etc/rc.d/init.d/smb restart 如果大家沒有winodws,不妨先用samba的cilent端命令來測試一下 命令的用法我在這裡只舉幾個例子,具體的大家去試驗 smbclient -L 服務器ip -N guest帳戶查詢你的服務器的samba共享情況,你可以檢驗一下是否lingdao目錄時候能被guest帳戶看到,應該是看不到的,當然你也可以以某個用戶的名義查看 smbclient -L 服務器ip -U caiwu01 系統會提示密碼,只要輸入smb密碼就行。 smbclient //服務器ip/caiwu -U caiwu01 #以caiwu01用戶的名義登錄caiwu目錄 smbmount //服務器ip/caiwu /mnt/caiwu -o uname=caiwu01 #把服務器的財務目錄映射到本地的/mnt/caiwu目錄 關於samba的其他用法我會在後續的文章中繼續,請大家等待! 參考資料 Samba 配置 http://www.Linuxfocus.org/ChineseGB...rticle177.sHtml O'Reilly 線上書籍:http://www.oreilly.com/catalog/samb...book/index.html