SAMBA服務介紹及相關實驗

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。

本節索引:

一、SAMBA介紹

二、SAMBA服務配置

三、SAMBA用戶管理與掛載

四、實驗:Linux作為SAMBA客戶端訪問Windows共享文件

五、實驗:Linux作為SAMBA服務器端

六、實驗:指定共享目錄

七、實驗:實現不同用戶目錄權限不同

八、實驗:實現多用戶掛載(RHCE)

 

一、SAMBA介紹

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。

SMB:Server Messages Block,信息服務塊,是一種在局域網上共享文件和打印機的一種

通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。

 

CIFS:common internet file system,微軟基于SMB發布,CIFS是公共的或開放的SMB協議

版本,并由Microsoft使用。像SMB協議一樣,CIFS在高層運行,而不像TCP/IP協議那樣運

行在底層。CIFS可以看做是應用程序協議如文件傳輸協議和超文本傳輸協議的一個實現。

 

SAMBA的功能:

共享文件和打印,實現在線編輯

實現登錄SAMBA用戶的身份認證

可以進行NetBIOS名稱解析

外圍設備共享

 

計算機網絡管理模式:

工作組WORKGROUP:計算機對等關系,帳號信息各自管理

DOMAIN: C/S結構,帳號信息集中管理,DC,AD

 

 

相關包:

Samba ? ? ? ? ? ? ? ? ? ? ? ? 提供smb服務

Samba-client ? ? ? ? ? ? ?客戶端軟件

samba-common ? ? ? ? 通用軟件

cifs-utils smb ? ? ? ? ? ? ?客戶端工具

samba-winbind ? ? ? ? ?和AD相關

 

相關服務進程:

smbd 提供smb(cifs)服務 TCP:139,445

nmbd NetBIOS名稱解析 ? ? ?UDP:137,138

 

主配置文件:

/etc/samba/smb.conf

幫助參看:man smb.conf

語法檢查: testparm [-v] [/etc/samba/smb.conf]

客戶端工具:smbclient,mount.cifs

 

 

二、SAMBA服務配置

smb.conf繼承了.ini文件的格式,用[ ]分成不同的部分

全局設置:

[global] ? ? ? ? ? ? 服務器通用或全局設置的部分

 

特定共享設置:

[homes] ? ? ? ? ? 用戶的家目錄共享

[printers] ?????? 定義打印機資源和服務

[sharename] ?自定義的共享目錄配置

其中:#和;開頭的語句為注釋,大小寫不敏感

 

宏定義:

%m 客戶端主機的NetBIOS名

%M 客戶端主機的FQDN

%H 當前用戶家目錄路徑

%U 當前用戶用戶名

%g 當前用戶所屬組

%h samba服務器的主機名

%L samba服務器的NetBIOS名

%I 客戶端主機的IP

%T 當前日期和時間

%S 可登錄的用戶名

 

workgroup ? ? ? ? ? ? ?指定工作組名稱

server string ? ? ? ? ?主機注釋信息

netbios name ??????? 指定NetBIOS名

interfaces ? ? ? ? ? ? ? 指定服務偵聽接口和IP

hosts allow ? ? ? ? ? ? 可用“,” ,空格,或tab分隔,默認允許所有主機訪問,也可在每個共享獨立配置,

如在[global]設置,將應用并覆蓋所有共享設置

IPv4 network/prefix:172.25.0.0/24 IPv4前綴: 172.25.0.

IPv4 network/netmask:172.25.0.0/255.255.255.0

主機名:desktop.example.com

以example.com后綴的主機名:.example.com

示例:

hosts allow = 172.25.

hosts allow = 172.25. .example.com

hosts deny ???? 拒絕指定主機訪問

 

 

config file=/etc/samba/conf.d/%U ???? 用戶獨立的配置文件

Security三種認證方式:

??? share:匿名(CentOS7不再支持)

??? user:samba用戶(采有linux用戶,samba的獨立口令)

??? domain:使用DC(DOMAIN CONTROLLER)認證

passdb backend = tdbsam ???????????? 密碼數據庫格式

 

 

配置samba日志

默認不記錄

以IP方式記錄日志

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

log level = 2

日志

日志文件達到50K,將輪循rotate,單位KB

max log size=50

 

 

配置目錄共享

[共享名稱] ??????????? 遠程網絡看到的共享名稱

comment ? ? ? ? ? ? ? ? 注釋信息

path ???????????????????????? 所共享的目錄路徑

public ????????????????????? 能否被guest訪問的共享,默認no,和guest ok 類似

browsable ??????? ? ? ? ?是否允許所有用戶瀏覽此共享,默認為yes,no為隱藏

writable=yes ????????? 可以被所有用戶讀寫,默認為no

read only=no ?? ? ? ? ?和writable=yes等價,如與以上設置沖突,放在后面的設置生

效,默認只讀

write list ? ? ? ? ? ? ? ? ?三種形式:用戶,@組名,+組名,用,分隔如writable=no,列

表中用戶或組可讀寫,不在列表中用戶只讀

valid users ? ? ? ? ? ? ?特定用戶才能訪問該共享,如為空,將允許所有用戶,用戶名

之間用空格分隔

備注:每個共享目錄應該有獨立的[ ]部分

 

 

三、SMABA用戶管理與掛載

管理samba用戶

實現samba用戶

包:samba-common-tools

工具:smbpasswd pdbedit

samba用戶須是Linux用戶,建議使用/sbin/nologin

添加samba用戶

smbpasswd -a <user>

pdbedit -a -u <user>

 

修改用戶密碼

smbpasswd <user>

 

刪除用戶和密碼:

smbpasswd –x <user>

pdbedit –x –u <user>

 

查看samba用戶列表:

/var/lib/samba/private/passdb.tdb

pdbedit –L –v

 

查看samba服務器狀態

smbstatus

 

掛載CIFS文件系統

手動掛載

mount -t cifs -o user=wang,password=wxlinux //server//shared

/mnt/smb

開機自動掛載

cat /etc/fstab 可以用文件代替用戶名和密碼的輸入

//server/homes /mnt cifs credentials=/etc/smb.txt 0 0

cat /etc/smb.txt

username=wang

password=password

chmod 600 /etc/smb.txt

 

 

四、實驗:將Linux作為SAMBA客戶端訪問Windows共享文件

前期準備:

Window系統版本為?win10

Linux系統版本為?CentOS 7.4

 

Windows系統中共享目錄如下:

1

在Windows系統中創建一個test用戶(必須以管理員身份創建)

2

Linux系統:

安裝samba-client包

yum install samba-client

查看Windows系統上的共資源

smbclient -L 192.168.30.1 -U test%123

3

連接Windows系統上的共享資源

smbclient //192.168.30.1/lamp -U test%123

4

掛載windows共享目錄到/mnt/win目錄下

mkdir /mnt/win

mount -o username=test,password=123,vers=3.0? //192.168.30.1/lamp /mnt/win

也可寫入/etc/fstab文件中永久掛載,為了防止明文用戶名密碼,可用下面寫法,將用戶和賬號保存在一個文件中

5

vim /etc/user.txt

username=test

password=123

 

 

五、實驗:Linux系統作為SAMBA服務器端

在LINUX系統中創建SAMBA賬號需要先創建LINUX賬號在使用smbpasswd命令轉換為samba賬號

創建linux賬號

useradd -s /sbin/nologin smb1

useradd -s /sbin/nologin smb2

useradd -s /sbin/nologin smb3

 

將linux賬號變為samba賬號

smbpasswd -a smb1

smbpasswd -a smb2

smbpasswd -a smb3

刪除samba賬號可使用

smbpasswd –x

修改samba賬號密碼:

smbpasswd user

 

查看已有的samba賬號:

pdbedit -L

1

開啟smb服務

systemctl start smb

 

切換客戶端進行測試:

smbclient -L 192.168.30.10 -U smb1%centos

2

默認以samba用戶的家目錄作為共享目錄

 

也可在Window作為訪問端連接SAMBA服務器

3

 

 

六、實驗:SAMBA共享指定目錄

添加配置

vim etc/samba/sam.conf

[share]

comment=smba share dir

path=/data/tools

read only=no??????? ? ? 等價于writeabe=yes

public=no???? ? ? ? ? ? ? ?是否允許匿名訪問,默認為NO

valid users=smb1 smb2? 指定有效用戶,其他用戶不可訪問

#valid users=+staff ?也可指定有效組,用戶多時建議用組管理

#wirte list???????????????? 指定列表中用戶可寫,需配合read only=yes

1

smbclient //192.168.30.10/share -U smb1%centos

2

smb3用戶由于沒有授權,所有拒絕登錄

3

 

七、實驗:針對不同的用戶設置不同的共享目錄和權限

SAMBA服務器端:

目前已存在的SAMBA用戶

1

配置文件中加上此行,指定配置目錄

vim etc/samba/sam.conf

[global]

config file = /etc/samba/conf.d/%U

2

創建SAMBA共享目錄和測試文件

mkdir /data/smb2

mkdir /data/smb3

touch /data/smb2/test2

touch /data/smb3/test3

創建SAMBA配置目錄

mkdir /etc/samba/conf.d/

cd /etc/samba/conf.d/

vim smb2

[share]

path=/data/smb2

writeable=yes

 

vim smb3

[share]

path=/data/smb3

給data目錄添加777權限

chmod -R 777 /data/

重啟smb服務

systemct restart smb

 

測試:

使用samb2用戶登錄,共享目錄為/data/smb2

smbclient //192.168.30.7/share -U smb2%centos

3

使用samb2用戶登錄,共享目錄為/data/smb3

smbclient //192.168.30.7/share -U smb3%centos

4

 

 

八、實驗:實現多用戶SAMBA掛載(僅CentOS 7支持,RHCE)

SAMBA服務器端:

目前已有四個samba賬號,smb1,smb2,smb3,smb4

1

vim /etc/samba/

[share]

??????? comment = samba share dir

??????? path = /data/tools

??????? read only = yes

??????? valid users = smb1 smb2 smb3 smbshare

??????? write list = smb1 smb3

2

添加/data/tools目錄讀寫權限

chmod 777 /data/tools

重啟smb服務

systemctl restart smb

 

客戶端:

必須建立同名用戶,UID可以不一致

useradd smb1

useradd smb2

useradd smb3

用smbshare用戶掛載share目錄

mount -o username=smbshare,password=centos,multiuser //192.168.30.10/share /mnt

若要永久掛載,可修改/etc/fstab目錄

3

備注:SELinux環境下還需:

chcon -R -t samba_share_t /data/to

 

測試:

su – smb1

驗證SAMBA服務器是否有同名用戶

cifscreds add 192.168.30.7

創建f1文件所有者為f1

smb1

su – smb2

由于smb2不在wirte_list表中,不具有讀權限,登錄失敗

smb2

su – smb3

cifscreds add 192.168.30.7

創建f3文件所有者為smb3

smb3

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101980

(1)
wangxczwangxcz
上一篇 2018-06-29
下一篇 2018-06-29

相關推薦

  • 軟件包管理 rpm yum的使用

    軟件包管理 鏈接主要作用是吧各個模塊之間互相引用的部分處理好, 使得各個模塊之間能夠正確的鏈接,分為靜態和動態 靜態鏈接 ?以.a為后綴 ?把程序對應的依賴庫復制到包 ? ? ? ? ? 升級難 需重新編譯 ?占用空間多 遷移容易 動態鏈接 ?以.so為后綴 把依賴加做動態鏈接 ? ?占用空間少 ?升級方便 ? ? ? ? ? 若一個庫被刪,那么所有依賴此庫…

    Linux筆記 2018-04-22
  • N31第三周作業

    本周(7.2–7.8)第3周 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可 [a@localhost ~]$ who | cut -d” ” -f1 | sort -u a [a@localhost ~]$ who a pts/0 2018-07-09 09:14 (192.16…

    Linux筆記 2018-07-09
  • LAMP的環境原理 wordpress 搭建流程

    小白入門,簡單介紹LAMP的什么以及工作方式。

    Linux筆記 2018-06-25
  • 第一周作業筆記

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    Linux筆記 2018-06-21
  • 正則表達式及vim使用方法

    正則表達式(正則表達式匹配的是文本內容中的字符串,通倍符匹配的是文件名)REGEXP:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義,而表示控制或通配的功能程序支持:grep,sed,awk,vim, less,nginx,varnish等分兩類:不同的命令支持不同的正則表達式基本正則表達式:BRE擴展正則表達式:EREgre…

    Linux筆記 2018-04-08
欧美性久久久久