配置Samba伺服器
samba配置檔案smb.conf¶
安裝系統的時候大多會預設安裝samba,如果沒有安裝,在CentOS上只需要執行這個命令安裝即可:
yum install -y samba samba-client
Samba的配置檔案為/etc/samba/smb.conf,通過修改這個配置檔案來完成我們的各種需求。開啟這個配置檔案,你會發現很多內容都用 #
或者 ;
注視掉了。先看一下未被註釋掉的部分:
[global] workgroup = MYGROUP server string = Samba Server Version %v security = user passdb backend = tdbsam load printers = yes cups options = raw [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes
主要有以上三個部分:[global], [homes], [printers]
[global] 定義全域性的配置,workgroup用來定義工作組,相信如果你安裝過windows的系統,你會對這個workgroup不陌生。一般情況下,需要我們把這裡的MYGROUP改成WORKGROUP(windows預設的工作組名字)。
security = user #這裡指定samba的安全等級。關於安全等級有四種:
share:使用者不需要賬戶及密碼即可登入samba伺服器
user:由提供服務的samba伺服器負責檢查賬戶及密碼(預設)
server:檢查賬戶及密碼的工作由另一臺windows或samba伺服器負責
domain:指定windows域控制伺服器來驗證使用者的賬戶及密碼。
passdb backend = tdbsam # passdb backend(使用者後臺),samba有三種使用者後臺:smbpasswd, tdbsam和ldapsam.
smbpasswd:該方式是使用smb工具smbpasswd給系統使用者(真實使用者或者虛擬使用者)設定一個Samba密碼,客戶端就用此密碼訪問Samba資源。smbpasswd在/etc/samba中,有時需要手工建立該檔案。
tdbsam:使用資料庫檔案建立使用者資料庫。資料庫檔案叫passdb.tdb,在/etc/samba中。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使用者賬號。
ldapsam:基於LDAP賬戶管理方式驗證使用者。首先要建立LDAP服務,設定 “passdb backend = ldapsam:ldap://LDAP Server”
load printers 和 cups options 兩個引數用來設定印表機相關。
除了這些引數外,還有幾個引數需要你瞭解:
netbios name = MYSERVER # 設定出現在網路上的芳鄰中的主機名
hosts allow = 127. 192.168.12. 192.168.13. # 用來設定允許的主機,如果在前面加 ”;” 則表示允許所有主機
log file = /var/log/samba/%m.log #定義samba的日誌,這裡的%m是上面的netbios name
max log size = 50 # 指定日誌的最大容量,單位是K
[homes] 該部分內容共享使用者自己的家目錄,也就是說,當用戶登入到samba伺服器上時實際上是進入到了該使用者的家目錄,使用者登陸後,共享名不是homes而是使用者自己的識別符號,對於單純的檔案共享的環境來說,這部分可以注視掉。
[printers] 該部分內容設定印表機共享。
samba實踐¶
注意:在試驗之前,請先檢測selinux是否關閉,否則可能會試驗不成功。關於如何關閉selinux請檢視第16章linux系統日常管理的linux的防火牆部分(http://study.lishiming.net/chapter16.html#id3)
1. 共享一個目錄,任何人都可以訪問,即不用輸入密碼即可訪問,要求只讀
開啟samba的配置檔案/etc/samba/smb.conf 在[global]部分
把:
MYGROUP
改成:
WORKGROUP
把:
security = user
修改為:
security = share
然後在檔案的最末尾處加入以下內容:
[share] comment = share all path = /tmp/samba browseable = yes public = yes writable = no
建立測試目錄:
mkdir /tmp/samba chmod 777 /tmp/samba touch /tmp/samba/sharefiles echo "111111" > /tmp/samba/sharefiles
啟動samba服務:
/etc/init.d/smb start
測試:
首先測試你配置的smb.conf是否正確,用下面的命令:
testparm
你應該會看到一個警告:WARNING: The security=share option is deprecated, 不過影響不大,無需管它。如果沒有錯誤,則在你的windows機器上的瀏覽器中輸入:
file://IP/share
看是否能訪問到sharefiles
2. 共享一個目錄,使用使用者名稱和密碼登入後才可以訪問,要求可以讀寫
開啟samba的配置檔案/etc/samba/smb.conf
[global] 部分內容如下:
[global] workgroup = WORKGROUP server string = Samba Server Version %v security = user passdb backend = tdbsam load printers = yes cups options = raw
還需要加入以下內容:
[myshare] comment = share for users path = /samba browseable = yes writable = yes public = no
儲存配置檔案,建立目錄:
mkdir /samba chmod 777 /samba
然後新增使用者。因為在[globa]中 “passdb backend = tdbsam”, 所以要使用 pdbedit
來增加使用者,注意新增的使用者必須在系統中存在,所以需要先建立系統賬號:
useradd user1 useradd user2
然後新增user1為samba賬號:
pdbedit -a user1
再新增user2為samba賬號:
pdbedit -a user2
我們可以列出samba所有賬號:
pdbedit -L
重啟samba服務:
service smb restart
測試:
開啟IE瀏覽器輸入:
file://IP/myshare/
然後輸入使用者名稱和密碼
3. 使用linux訪問samba伺服器
Samba服務在linux下同樣可以訪問。前提是你的linux安裝了samba-client軟體包。安裝完後就可以使用smbclient命令了。具體語法為:
smbclient //IP/共享名 -U 使用者名稱
如:
[root@localhost]# smbclient //10.0.4.67/myshare/ -U user1 Password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \>
出現如上所示的介面。可以打一個 ”?” 列出所有可以使用的命令。常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用 help +
命令可以列印該命令如何使用,其中get是下載,put是上傳。
另外的方式就是通過mount掛載了,如:
mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456
格式就是這樣,要指定 -t cifs //IP/共享名 本地掛載點
-o後面跟username 和 password 掛載完後就可以