CentOS下SAMBA的搭建

1、Samba的由來:linux

早起網絡中,檔案數據傳輸大多使用FTP這個軟件進行傳送,FTP的弊端是沒法直接修改服務器上面的數據,更新數據,只能靠來回拷貝,時間久了,容易混淆。因而就有了NFSNetworkFile System),經過共享目錄的掛載實現Server上的檔案數據讀寫更新,不過,NFS僅能讓 Unix 機器溝通。在微軟 ( Microsoft ) 上面也有相似的檔案系統,,CLFSCommonInternet File System)。 CIFS 只能讓 Windows 機器溝通。介於Windows Unix-Like 這兩個不一樣的平臺相互分享檔案數據的檔案系統,因而出現了Sambaios

2、Samba簡介:windows

是在LinuxUNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMBServer Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機經過該協議能夠訪問服務器上的共享文件系統、打印機及其餘資源。經過設置「NetBIOS over TCP/IP」使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。服務器

SAMBA 主要靠兩種服務來實現文件和打印機的共享;網絡

smbd:處理文件和打印機共享請求的。端口號,139,445tcp

nmbd:處理NetBIOS名稱服務請求和網絡瀏覽功能的。端口號:137,138ide

瞭解完samba以後,下來就是如何搭建和配置。測試

3、搭建前準備ui

1、環境介紹spa

服務端              CentOS             ip地址

客戶端             win7                            與服務器同局域網的

2、安裝samba軟件

[root@localhost~]# rpm -qa | grep samba  查看是否安裝了samba軟件,沒有安裝先安裝

[root@localhost~]# yum search samba         先查一下有沒有相關的軟件

[root@localhost~]# yum install samba           找到以後,那就安裝吧

3、相關設定

安裝好如何啓動 samba 這個服務呢?而且設定好開機就啓動他!

想要了解如何啓動,得要使用 rpm 去找一下軟件的啓動方式,而後再去處理啓動的行爲囉!

先查詢一下啓動的方式爲什麼:

[root@localhost~]# rpm -ql samba | grep '/etc'

/etc/logrotate.d/samba

/etc/openldap/schema

/etc/openldap/schema/samba.schema

/etc/pam.d/samba

/etc/rc.d/init.d/nmb                                              //就是這兩位仁兄了

/etc/rc.d/init.d/smb                                              //就是這兩位仁兄了

/etc/samba/smbusers

[root@localhost~]#  /etc/rc.d/init.d/nmb start

啓動 NMB 服務:

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

啓動 SMB 服務:

設置開機自啓:

[root@localhost~]# chkconfig nmb on

[root@localhost~]# chkconfig smb on

啓動以後,觀察有麼有啓動相應的port

[root@localhost~]# neITtat  -tunlp | grep '[sn]mb'

c90b0e995612925336a9bc9e2be05973.png-wh_

關閉SElinux

[root@localhost~]# setenforce 0

防火牆放行smb,nmb相應的端口:

編輯防火牆配置文件,放行445,137,138,139端口:

[root@localhost~]# vi /etc/sysconfig/iptables

-A INPUT-p udp -m udp --dport 445 -j ACCEPT

-A INPUT-p tcp -m tcp --dport 445 -j ACCEPT

-A INPUT-p udp -m udp --dport 139 -j ACCEPT

-A INPUT-p tcp -m tcp --dport 139 -j ACCEPT

-A INPUT-p udp -m udp --dport 138 -j ACCEPT

-A INPUT-p tcp -m tcp --dport 138 -j ACCEPT

-A INPUT-p tcp -m tcp --dport 137 -j ACCEPT

-A INPUT-p udp -m udp --dport 137 -j ACCEPT

配置完保存並重啓防火牆:

[root@localhost~]# service iptables save

iptables:將防火牆規則保存到/etc/sysconfig/iptables[肯定]

[root@localhost~]# service iptables restart

iptables:將鏈設置爲政策ACCEPTfilter [肯定]

iptables:清除防火牆規則:[肯定]

iptables:正在卸載模塊:[肯定]

iptables:應用防火牆規則:[肯定]

這樣,samba就裝好了,下面就是/etc/samba/smb.conf文件的配置了,那麼如何找出配置文件呢?由於咱們老是須要修改配置文件啊!這樣作吧:

root@localhost~]# rpm -qc samba samba-common

/etc/logrotate.d/samba

/etc/pam.d/samba

/etc/samba/smbusers

/etc/samba/lmhosIT

/etc/samba/smb.conf                                           //很明顯這個就是配置文件了

/etc/sysconfig/samba

通常狀況下,公司或企業主要分三種狀況,即:

1、公共匿名類共享目錄的配置(即匿名帳戶訪問共同的目錄或者文件);

A、配置文件:

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

 在文件中添加或者修改相關代碼:

workgroup= MYGROUP                //定義工做組,也就是windows中的工做組概念

serverstring = Samba Server Version %v  //定義Samba服務器的簡要說明                     

netbiosname = MYSERVER               //定義windows中顯示出來的計算機名稱

log file= /var/log/samba/log.%m             //定義Samba用戶的日誌文件,%m表明客戶端主機//Samba服務器會在指定的目錄中爲每一個登錄主機創建不一樣的日誌文件

security= share                   //共享級別,用戶不須要帳號和密碼便可訪問  

                

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

comment = Public Stuff   //對共享目錄的說明文件,本身能夠定義說明信息

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

public = yes            //全部人可查看,等效於guest ok =yes

B、創建共享目錄:

[root@localhost~]# cd ..

[root@localhost/]# mkdir share

[root@localhost/]# cd share

[root@localhostshare]#  touch samba.txt

[root@localhostshare]#  touch aa.txt                   

[root@localhostshare]#  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@localhost/]# chown -R nobody:nobody share/

[root@localhost/]# 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@localhost/]# /etc/init.d/smb restart

Shuttingdown SMB services:                                [  OK  ]

StartingSMB services:                                                   [  OK  ]

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

Shuttingdown NMB services:                                [FAILED]

StartingNMB services:                                     [  OK  ]

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

[root@localhostshare]# testparm

顯示結果

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

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

Processingsection "[homes]"

Processingsection "[printers]"

Processingsection "[public]"

Processingsection "[IT]"

Unknownparameter encountered: "valid user"

Ignoringunknown parameter "valid user"

Processingsection "[HR]"

Processingsection "[FM]"

Processingsection "[share]"

Loadedservices file OK.

Serverrole: ROLE_STANDALONE

Pressenter to see a dump of your service definitions

 

[global]

        workgroup = MYGROUP

        server string = Samba Server Version %v

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

        max log size = 50

        client signing = required

        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

 

[IT]

        comment = IT

        path = /IT

E、訪問Samba服務器的共享文件: 

E1CentOS系統下測試:                

[root@localhost~]# smbclient   //*.*.*.*/public

Enterroot's password:

Anonymouslogin successful

Domain=[MYGROUP]OS=[Unix] Server=[Samba 3.6.23-45.el6_9]

smb:\> ls

  .                                   D        0 Sun Nov 12 03:30:29 2017

  ..                                 DR        0 Sun Nov 12 08:27:23 2017

  aa.txt                                       0  Sun Nov 12 03:30:29 2017

  samba.txt                                    0  Sun Nov 12 03:30:24 2017

 

                61970 blocks of size 32768.46296 blocks available

smb:\>

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

E2window 7系統下測試,結果如圖:

4a8ddb825c8dc915620c4c22f44832f0.png-wh_              

 

從圖中能夠看出,公共目錄共享成功。

214a49b05effab73ed8e7688d78ee69d.png-wh_

 

2、按照權限對目錄進行分組(即除公共共享目錄外,各組訪問各組的文件或目錄,以技術部門IT爲例);

A、添加IT部組和用戶,並賦給用戶密碼:

[root@localhost~]# groupadd IT

[root@localhost~]# useradd -g IT zhangsan

[root@localhost~]# useradd -g IT lisi

設置lisi的密碼:

[root@localhost~]# passwd lisi

顯示結果:

Changingpassword for user lisi.

Newpassword:

在此輸入密碼:123456,回車:

BADPASSWORD: it is too short

BADPASSWORD: is too simple

Retypenew password:

再次輸入密碼:123456,回車:

passwd:all authentication tokens updated successfully.

設置zhangsan的密碼:

[root@localhost~]# passwd zhangsan

顯示結果:

Changingpassword for user zhangsan.

Newpassword:

在此輸入密碼:123456,回車:

BADPASSWORD: it is too short

BADPASSWORD: is too simple

Retypenew password:

再次輸入密碼:123456,回車:

passwd:all authentication tokens updated successfully.

B、在根目錄下創建/IT 文件夾:

[root@localhost~]# cd /

[root@localhost/]# mkdir IT

[root@localhost/]# cd IT

[root@sambaIT]# touch IT.txt

[root@sambaIT]# ls -ls

total 0

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

C、將創建的兩個賬戶(lisizhangsan)添加到samba的帳戶中:

[root@localhost~]# smbpasswd -a zhangsan

New SMBpassword:

Retypenew SMB password:

Addeduser zhangsan.

[root@localhost~]# smbpasswd -a lisi

New SMBpassword:

Retypenew SMB password:

Addeduser lisi.

D、修改主配置文件以下:

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

修改security

security= user                         //共享級別,用戶不須要帳號和密碼便可訪問

添加信息:

[IT]

        comment = IT

        path = /IT

valid users = @IT

E、從新啓動服務:

[root@localhost~]# service  smb restart

關閉 SMB 服務:[肯定]

啓動 SMB 服務:[肯定]

[root@localhost~]# service  nmb restart

關閉 NMB 服務:[肯定]

啓動 NMB 服務:[肯定]

F、在window 7下測試:

打開個人電腦,在地址欄中輸入\\*.*.*.*服務器地址,彈出用戶登錄框

輸入用戶名:lisi,密碼:123456,登錄成功後,能夠看到相應的目錄,包括lisi本身的目錄、匿名公共目錄、lisizhangsan共享的非匿名目錄。以下圖所示:

bc2a83c0f141d00419850c0bf28be8ab.png-wh_

 

3、共享目錄下的不一樣目錄進行分組。

需求:

3.1.在系統分區時單獨分一個Company的區,在該區下有如下幾個文件夾:HR FMShare。在Share下又有如下幾個文件夾:HRFMTools

3.2.各部門對應的文件夾由各部門本身管理,Tools文件夾由管理員維護。

3.3. HR管理員帳號:hradmin;普通用戶帳號:hruserFM管理員帳號:fmadmin;普通用戶帳號:fmuser

A、新建用戶,並設置SMB帳戶密碼:

添加用戶:

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

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

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

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

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

設置密碼:

[root@samba~]# smbpasswd -a hradmin

New SMBpassword:

Retypenew SMB password:

Addeduser hradmin.

[root@samba~]# smbpasswd -a hruser

New SMBpassword:

Retypenew SMB password:

Addeduser hruser.

[root@samba~]# smbpasswd -a fmadmin

New SMBpassword:

Retypenew SMB password:

Addeduser fmadmin.

[root@samba~]# smbpasswd -a fmuser

New SMBpassword:

Retypenew SMB password:

Addeduser fmuser.

[root@samba~]# smbpasswd -a admin

New SMBpassword:

Retypenew SMB password:

Addeduser admin.

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

B、新建目錄:

[root@samba~]# cd /

[root@samba/]# mkdir company

[root@samba/]# cd company

[root@sambacompany]# mkdir HR FM Share

[root@sambacompany]# cd Share

[root@sambaShare]# mkdir HR FM Tools

C、更改目錄屬性:

[root@sambacompany]# chown hradmin.hradmin HR

[root@sambacompany]# chown fmadmin.fmadmin FM

[root@sambacompany]# chown admin.admin Share

[root@sambacompany]# cd Share

[root@sambaShare]# chown hradmin.hradmin HR

[root@sambaShare]# chown fmadmin.fmadmin FM

[root@sambaShare]# chown admin.admin Tools

[root@sambaShare]# chmod 1775 HR FM

D、修改主配置文件以下:

 security = user

passdbbackend = tdbsam

[HR]

       comment = This is a directory of HR.

       path = /company/HR/

       public = no

       adminusers = hradmin

       validusers = @hradmin

       writable = yes

       createmask = 0750

       directorymask = 0750

[FM]

       comment = This is a directory of FM.

       path = /company/FM/

       public = no

       adminusers = fmadmin

       validusers = @fmadmin

       writable = yes

       createmask = 0750

       directorymask = 0750

[share]

       comment = This is a share directory.

       path = /company/share/

       public = no

       validusers = admin,@hradmin,@fmadmin

       writable = yes

       createmask = 0755

       directorymask = 0755

E、從新啓動samba服務:

[root@localhost~]# service  smb restart

關閉 SMB 服務:[肯定]

啓動 SMB 服務:[肯定]

[root@localhost~]# service  nmb restart

關閉 NMB 服務:[肯定]

啓動 NMB 服務:[肯定]

F、在window 7下測試:

打開個人電腦,在地址欄中輸入\\*.*.*.*服務器地址,彈出用戶登錄框:

在圖中輸入用戶名:hradmin,密碼:123456,能夠看到相應的共享目錄,以下圖所示:

2a46b6a80c2b7df07873d482e3306a8c.png-wh_

 

Windows下能夠經過cmd命令net use查看鏈接信息:


經過net use  * /delete 刪除鏈接信息

333e151a0897ba94c47a65cfa87a9e62.png-wh_

 

測試完畢。

相關文章
相關標籤/搜索