1. 程式人生 > >CentOS下SAMBA的搭建

CentOS下SAMBA的搭建

centos samba搭建

一、Samba的由來:

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

二、Samba簡介:

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

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

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

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

了解完samba之後,下來就是如何搭建和配置。

三、搭建前準備

1、環境介紹

服務端 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‘

技術分享

關閉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系統下測試,結果如圖:

技術分享

從圖中可以看出,公共目錄共享成功。

技術分享

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共享的非匿名目錄。如下圖所示:

技術分享

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,可以看到相應的共享目錄,如下圖所示:

技術分享

Windows下可以通過cmd命令net use查看連接信息:

技術分享

通過net use * /delete 刪除連接信息

技術分享

測試完畢。


本文出自 “諾克” 博客,請務必保留此出處http://9840752.blog.51cto.com/9830752/1981102

CentOS下SAMBA的搭建