公司須要一臺用於共享的文件服務器,考慮使用Linux系統,據說會比windows的文件系統好管理,瞭解很少,人云亦云了!html
這裏須要用到samba系統,安裝比較簡單,安裝後須要進行配置才能訪問。linux
修改smb.conf 配置文件(參數的配置說明最好直接看默認文件中的註釋說明):數據庫
samba自帶的smb.conf文件註釋不少,例子給的也很多,容易讓人以爲這個文件很複雜,其實它的框架很簡單,主要包括下面幾個小節:windows
[global] [homes] [printers] [自定義]
[homes] 是登錄用戶的目錄安全
[printers] 是共享打印機相關信息服務器
[自定義] 是在windows中看到的共享目錄,能夠有多個。框架
一.[global] 經常使用配置選項dom
1.security 用戶訪問Samba Server的驗證方式,一共有四種驗證方式。工具
security = share|user|server|domain
share:用戶訪問Samba Server不須要提供用戶名和口令, 安全性能較低。 user:Samba Server共享目錄只能被受權的用戶訪問,由Samba Server負責檢查帳號和密碼的正確性。帳號和密碼要在本Samba Server中創建。 server:依靠其餘Windows NT/2000或Samba Server來驗證用戶的帳號和密碼,是一種代理驗證。此種安全模式下,系統管理員能夠把全部的Windows用戶和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程服務器能夠自動認證所有用戶和口令,若是認證失敗,Samba將使用用戶級安全模式做爲替代的方式。 domain:域安全級別,使用主域控制器(PDC)來完成認證。
一個簡單的share模式共享配置: http://www.cnblogs.com/champaign/p/5916062.htmlpost
1.smbpasswd:該方式是使用smb本身的工具smbpasswd來給系統用戶(真實 用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用這個密碼來訪問Samba的資源。smbpasswd文件默認在/var/lib/samba/private/smbpasswd(版本3.6.23)目錄下.
smbpasswd -a 用戶名 #添加一個samba用戶
smbpasswd -d 用戶名 #禁用一個samba用戶
smbpasswd -e 用戶名 #恢復一個samba用戶
smbpasswd -x 用戶名 #刪除一個samba用戶 2.tdbsam:該方式則是使用一個數據庫文件來創建用戶數據庫。數據庫文件叫passdb.tdb,默認在/var/lib/samba/private/passdb.tdb(版本3.6.23)目錄下。
passdb.tdb用戶數據庫可使用smbpasswd –a來創建Samba用戶,不過要創建的Samba用戶必須先是系統用戶。咱們也可使用pdbedit命令來創建Samba帳戶。pdbedit命令的參數不少,咱們列出幾個主要的。
pdbedit –a username:新建Samba帳戶。
pdbedit –x username:刪除Samba帳戶。
pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit –Lv:列出Samba用戶列表的詳細信息。
pdbedit –c 「[D]」 –u username:暫停該Samba用戶的帳號。
pdbedit –c 「[]」 –u username:恢復該Samba用戶的帳號。
3.ldapsam:該方式則是基於LDAP的帳戶管理方式來驗證用戶。首先要創建LDAP服務,而後設置「passdb backend = ldapsam:ldap://LDAP Server」
- username map
username map = /etc/samba/smbusers
二.[自定義] 經常使用配置選項
一個簡單的示例(實際工做中要求有寫入權限):
[attchement] comment =attchement path = /data/attchement writable = yes
三.[無寫權限]的處理辦法
解決了很久的寫入問題,試過不少方法無效。
在網上找到以下方法解決:
setenforce 0
vi /etc/selinux/config
將SELINUX=enforcing改成SELINUX=disabled爲開機重啓後再也不執行setenfore節約光陰。
四.設置Samba服務建立目錄和文件的默認權限
經過Samba服務器實現windows和Linux之間的文件共享,相信是絕大多數人的選擇。
一般咱們都會使用Samba的缺省配置,這樣,每次經過Samba從Windows向Linux中拷貝文件時,文件都會被加上」可執行」的屬性。
這是很讓人頭疼的問題,每次都要經過chmod去修改文件的權限非常麻煩。
只要把下面的配置加入/etc/samba/smb.conf就能夠解決這個問題:
create mode = 0644 force create mode = 0644 directory mode = 0755 force directory mode = 0755
下面簡單介紹一下這幾個參數的含義:
- create mode – 這個配置定義新建立文件的屬性。Samba在新建文件時,會把dos文件的權限映射成對應的unix權限,在映射後所得的權限,會與這個參數所定義的值進行與操做。而後再和下面的force create mode進行或操做,這樣就獲得最終linux下的文件權限。
- force create mode – 見上面的描述。至關於此參數所設置的權限位必定會出如今文件屬性中。
- directory mode – 這個配置與create mode參數相似,只是它是應用在新建立的目錄上。Samba在新建目錄時,會把dos–>linux映射後的文件屬性,與此參數所定義的值相與,再和force directory mode相或,而後按這個值去設置目錄屬性。
- force directory mode – 見上面的描述。至關於此參數中所設置的權限位必定會出如今目錄的屬性中。
說明一點,上面的create mode和create mask參數是同義詞,用哪一個均可以;而directory mode和directory mask參數是相同的。
當你發現Samba中新建的目錄/文件權限不正確,例如沒法訪問某個目錄、沒法更改文件,就須要檢查上面幾個值的設置。
另外須要說明的是,上面幾個配置項,會和security mask、force security mode、directory security mask、force directory security mode這幾個配置項相互做用。這幾個帶」security」的配置項會影響Windows NT/2000的ACL功能,通常咱們不須要設置。