1. 程式人生 > 實用技巧 >配置Samba伺服器

配置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 掛載完後就可以