CentOS6.3之配置(十一)關於採用Samba作為檔案伺服器的安裝與配置

來源:互聯網
上載者:User

前言:檔案伺服器提供的服務在大多數公司或企業都會被用到,因為在任何的公司或企業都涉及不同職位擷取不同資源檔的情況,這就需要根據不同職位配置相關的不同許可權,以保證相關資源檔的安全性和保密性。

一、Samba介紹:

Server Message Block的縮寫是SMB,即伺服器訊息區,SMB主要是作為Microsoft的網路通訊協議。Samba將SMB通訊協定應用到了Linux系統上,使得Samba成為一款能讓Linux系統應用Microsoft網路通訊協議的軟體。Samba最大的功能可用於Linux與windows系統直接的檔案分享權限設定和列印共用,Samba既可用於windows與Linux之間的檔案分享權限設定,也可用於Linux與Linux之間的資源共用,由於NFS的出現,因而 Samba更多用在Linux與windows之間的資料共用上面。

SMB是基於客戶機/伺服器型的協議,故一台Samba伺服器既可當檔案分享權限設定伺服器,也可充Samba的用戶端。Samba在windows下使用的是NetBIOS協議,如果你要使用Linux下共用出來的檔案,請確認你的windows系統下是否安裝了NetBIOS協議。

組成Samba啟動並執行有兩個服務,一個是SMB,另一個是NMB;SMB是Samba 的核心啟動服務,主要負責建立Samba伺服器與Samba客戶機之間的對話,驗證使用者身份並提供對檔案和列印系統的訪問,只有SMB服務啟動,才能實現檔案的共用,監聽139 TCP連接埠;而NMB服務是負責解析用的,類似與DNS實現的功能,NMB可以把Linux系統共用的工作群組名稱與其IP對應起來,如果NMB服務沒有啟動,就只能通過IP來訪問共用檔案,監聽137和138 UDP連接埠。
Samba伺服器可實現如下功能:

A、WINS和DNS服務;

B、網路瀏覽服務;

C、Linux和Windows域之間的認證和授權;

D、UNICODE字元集和網域名稱映射;

E、滿足CIFS協議的UNIX共用等。

二、環境準備:

1、CentOS 6.3版本(32位),主機名稱:samba;

2、IP地址:192.168.31.131;

3、虛擬機器:VMware? Workstation 9.0.0 build-812388;

4、samba軟體:samba-3.6.9-167.el6_5.i686;

5、工作群組:Lmzsamba。

三、安裝軟體:

A、安裝前的準備工作:

SELINUX=disabled

關閉防火牆:service iptables stop

B、執行如下命令安裝samba:

[root@samba ~]# yum install samba samba-client samba-swat

C、檢查samba是否安裝成功:

[root@samba ~]# rpm -qa | grep samba

如果顯示有如下一些資訊,則說明安裝沒有問題:

samba-client-3.6.9-167.el6_5.i686

samba-3.6.9-167.el6_5.i686

samba-common-3.6.9-167.el6_5.i686

samba-winbind-3.6.9-167.el6_5.i686

samba-swat-3.6.9-167.el6_5.i686

samba-winbind-clients-3.6.9-167.el6_5.i686

D、啟動samba服務及狀態檢查:

[root@samba ~]# /etc/init.d/smb start

顯示結果:

Starting SMB services: [ OK ]

狀態檢查:

[root@samba ~]# service smb status

顯示結果:

smbd (pid 2462) is running...

E、設定開機自啟動,並查看是否設定成功:

[root@samba ~]# chkconfig --level 35 smb on

檢查是否成功:

[root@samba ~]# chkconfig --list | grep smb

結果顯示如紅色部分(在3、5層級上自動運行samba服務),則表示設定成功:

smb 0:off 1:off 2:off 3:on 4:off 5:on 6:off

四、服務配置:

Samba服務配置主要是指/etc/samba/smb.conf檔案的配置。一般情況下,公司或企業主要分三種情況,即:

1、公用匿名類共用目錄的配置(即匿名賬戶訪問共同的目錄或者檔案);

A、設定檔:

[root@samba ~]# vi /etc/samba/smb.conf

在檔案中添加或者修改相關代碼:

workgroup = WORKGROUP //定義工作群組,也就是windows中的工作群組概念

server string = Lmz Samba Server Version %v //定義Samba伺服器的簡要說明

netbios name = LmzSamba //定義windows中顯示出來的電腦名稱

//定義Samba使用者的記錄檔,%m代表用戶端主機名稱

//Samba伺服器會在指定的目錄中為每個登陸主機建立不同的記錄檔

log file = /var/log/samba/log.%m

security = share //共用層級,使用者不需要帳號和密碼即可訪問

[public] //設定針對的是共用目錄個別的設定,只對當前的共用資源起作用

comment = Public Stuff //對共用目錄的說明檔案,自己可以定義說明資訊

path = /share //用來指定共用的目錄,必選項

public = yes //所有人可查看,等效於guest ok = yes

B、建立共用目錄:

[root@samba ~]# cd ..

[root@samba /]# mkdir share

[root@samba /]# cd share

[root@samba share]# touch samba.txt

[root@samba share]# touch aa.txt

[root@samba share]# ls -ls

顯示結果:

total 0

0 -rw-r--r--. 1 root root 0 Mar 13 11:02 aa.txt

0 -rw-r--r--. 1 root root 0 Mar 13 11:02 samba.txt

為/share目錄給匿名使用者授權為nobody許可權:

[root@samba /]# chown -R nobody:nobody share/

[root@samba /]# ll /share/

total 0

-rw-r--r--. 1 nobody nobody 0 Mar 13 11:02 aa.txt

-rw-r--r--. 1 nobody nobody 0 Mar 13 11:02 samba.txt

C、重啟smb服務:

[root@samba /]# /etc/init.d/smb restart

Shutting down SMB services: [ OK ]

Starting SMB services: [ OK ]

[root@samba /]# /etc/init.d/nmb restart

Shutting down NMB services: [FAILED]

Starting NMB services: [ OK ]

D、測試smb.conf配置是否正確:

[root@samba /]# testparm

顯示結果:

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Processing section "[homes]"

Processing section "[printers]"

Processing section "[public]"

WARNING: The security=share option is deprecated

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

[global]

netbios name = LMZSAMBA

server string = Lmz Samba Server Version %v

security = SHARE

log file = /var/log/samba/log.%m

max log size = 50

idmap config * : backend = tdb

cups options = raw

[homes]

comment = Home Directories

read only = No

browseable = No

[printers]

comment = All Printers

path = /var/spool/samba

printable = Yes

print ok = Yes

browseable = No

[public]

comment = Public Stuff

path = /share

guest ok = Yes

E、訪問Samba伺服器的共用檔案:

E1:CentOS系統下測試:

[root@samba /]# smbclient //127.0.0.1/public

顯示結果:

WARNING: The security=share option is deprecated

Enter root's password:

由於是匿名使用者,沒有設定密碼,所以在此直接斷行符號即可:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-167.el6_5]

Server not using user level security and no password supplied.

smb: \>

在此輸入 ls 命令,斷行符號得到如下資訊:

smb: \> ls

. D 0 Thu Mar 13 11:02:47 2014

.. DR 0 Thu Mar 13 11:13:53 2014

aa.txt 0 Thu Mar 13 11:02:47 2014

samba.txt 0 Thu Mar 13 11:02:37 2014

35755 blocks of size 524288. 29202 blocks available

smb: \>

在此輸入 q 命令,退出訪問。

E2:window xp系統下測試,結果

可以看出,公用目錄共用成功。

2、按照許可權對目錄進行分組(即除公用共用目錄外,各組訪問各組的檔案或目錄,以技術部門TS為例);

A、添加TS部組和使用者,並賦給使用者密碼:

[root@samba ~]# groupadd ts

[root@samba ~]# useradd -g ts zhangsan

[root@samba ~]# useradd -g ts lisi

設定lisi的密碼:

[root@samba ~]# passwd lisi

顯示結果:

Changing password for user lisi.

New password:

在此輸入密碼:123456,斷行符號:

BAD PASSWORD: it is too short

BAD PASSWORD: is too simple

Retype new password:

再次輸入密碼:123456,斷行符號:

passwd: all authentication tokens updated successfully.

設定zhangsan的密碼:

[root@samba ~]# passwd zhangsan

顯示結果:

Changing password for user zhangsan.

New password:

在此輸入密碼:123456,斷行符號:

BAD PASSWORD: it is too short

BAD PASSWORD: is too simple

Retype new password:

再次輸入密碼:123456,斷行符號:

passwd: all authentication tokens updated successfully.

B、在根目錄下建立/ts 檔案夾:

[root@samba ~]# cd /

[root@samba /]# mkdir ts

[root@samba /]# cd ts

[root@samba ts]# touch ts.txt

[root@samba ts]# ls -ls

total 0

0 -rw-r--r-- 1 root root 0 Mar 13 18:17 ts.txt

C、將建立的兩個帳戶(lisi、zhangsan)添加到samba的賬戶中:

[root@samba ~]# smbpasswd -a zhangsan

New SMB password:

Retype new SMB password:

Added user zhangsan.

[root@samba ~]# smbpasswd -a lisi

New SMB password:

Retype new SMB password:

Added user lisi.

D、修改主設定檔如下:

[root@samba ~]# vi /etc/samba/smb.conf

修改security:

security = user //共用層級,使用者不需要帳號和密碼即可訪問

添加資訊:

[ts]

comment = TS

path = /ts

valid users = @ts

E、重新載入samba服務:

[root@samba ~]# service smb reload

顯示結果:

Reloading smb.conf file: [ OK ]

F、在window xp下測試:

開啟我的電腦,在地址欄中輸入\\192.168.31.131,彈出使用者登陸框,:

在圖中輸入使用者名稱:lisi,密碼:123456,登陸成功後,可以看到相應的目錄,包括lisi自己的目錄、匿名公用目錄、lisi與zhangsan共用的非匿名目錄。如所示:

可以看到,達到我們相要的預期效果。

3、共用目錄下的不同目錄進行分組。

需求:1. 在系統磁碟分割時單獨分一個Company的區,在該區下有以下幾個檔案夾:HR、 FM和Share。在Share下又有以下幾個檔案夾:HR、FM和Tools。

2. 各部門對應的檔案夾由各部門自己管理,Tools檔案夾由管理員維護。

3. HR管理員帳號:hradmin;普通使用者帳號:hruser。FM管理員帳號:fmadmin;普通使用者帳號:fmuser。

A、建立使用者,並設定SMB賬戶密碼:

添加使用者:

[root@samba ~]# useradd -s /sbin/nologin hradmin

[root@samba ~]# useradd -g hradmin -s /sbin/nologin hruser

[root@samba ~]# useradd -s /sbin/nologin fmadmin

[root@samba ~]# useradd -g hradmin -s /sbin/nologin fmuser

[root@samba ~]# useradd -s /sbin/nologin admin

設定密碼:

[root@samba ~]# smbpasswd -a hradmin

New SMB password:

Retype new SMB password:

Added user hradmin.

[root@samba ~]# smbpasswd -a hruser

New SMB password:

Retype new SMB password:

Added user hruser.

[root@samba ~]# smbpasswd -a fmadmin

New SMB password:

Retype new SMB password:

Added user fmadmin.

[root@samba ~]# smbpasswd -a fmuser

New SMB password:

Retype new SMB password:

Added user fmuser.

[root@samba ~]# smbpasswd -a admin

New SMB password:

Retype new SMB password:

Added user admin.

為了方便記憶,在配置的時候,統一設定為:123456。

B、建立目錄:

[root@samba ~]# cd /

[root@samba /]# mkdir company

[root@samba /]# cd company

[root@samba company]# mkdir HR FM Share

[root@samba company]# cd Share

[root@samba Share]# mkdir HR FM Tools

C、更改目錄屬性:

[root@samba company]# chown hradmin.hradmin HR

[root@samba company]# chown fmadmin.fmadmin FM

[root@samba company]# chown admin.admin Share

[root@samba company]# cd Share

[root@samba Share]# chown hradmin.hradmin HR

[root@samba Share]# chown fmadmin.fmadmin FM

[root@samba Share]# chown admin.admin Tools

[root@samba Share]# chmod 1775 HR FM

D、修改主設定檔如下

security = user

passdb backend = tdbsam


[HR]

comment = This is a directory of HR.

path = /company/HR/

public = no

admin users = hradmin

valid users = @hradmin

writable = yes

create mask = 0750

directory mask = 0750

[FM]

comment = This is a directory of FM.

path = /company/FM/

public = no

admin users = fmadmin

valid users = @fmadmin

writable = yes

create mask = 0750

directory mask = 0750

[Share]

comment = This is a share directory.

path = /company/Share/

public = no

valid users = admin,@hradmin,@fmadmin

writable = yes

create mask = 0755

directory mask = 0755

E、重新啟動samba服務:

[root@samba Share]# /etc/init.d/smb restart

Shutting down SMB services: [ OK ]

Starting SMB services: [ OK ]

[root@samba Share]# /etc/init.d/nmb restart

Shutting down NMB services: [ OK ]

Starting NMB services: [ OK ]

F、在window xp系統下測試:

開啟我的電腦,在地址欄中輸入\\192.168.31.131,彈出使用者登陸框,:

在圖中輸入使用者名稱:hradmin,密碼:123456,可以看到相應的共用目錄,如所示:

測試完畢。

4、設定網路對應磁碟機,可以在計算中添加一個類似盤符檔案夾,這樣就比較方便,如所示:

5、如果網路斷不開,出現下面的情況,如所示:

可以採用如的形式解決問題即可:

配置完畢,歡迎拍磚!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.