RHCE(四)SAMBA協議

samba簡介

samba的由來

在 1991年Andrew Tridgell爲了實現Unix和Windows之間文件共享,開發了SMB (Server Message Block,服務消息塊)文件
系統由於SMB無法註冊,就取名爲Samba。Samba是用於Linux和Unix的標準Windows互操作性程序套件。

NetBIOS協議(網絡基本輸入輸出系統)

NetBIOS:Network Basic Input/Output System)的縮寫
作用:
通過NetBIOS協議,可以讀取 windows 主機用戶名列表,共享目錄名列表,級名列表,時間服務類型以及 MAC地址。
我們常用的windows系統在局域網中共享文件的功能就是利用NetBIOS協議實現的。
比如,可以打開網上鄰居,找到當前網絡中的機器,並查看其中的共享文件。
也可以在開始—>運行 窗口,輸入 \192.168.1.10\ 訪問共享文件,而如果要把其中的 IP 192.168.1.10 換成目標機器的主機名稱(NetBIOS名),也是可以正常訪問的,這個功能也是依靠NetBIOS完成。

IBM開發的NetBIOS協議是爲了局域網內少數計算機進行通信的協議
Samba基於NetBIOS協議開發,所以可以和Windows通信,但是只能在局域網通信。

samba主要應用

 1、文件共享
 2、打印服務器   (我們可以通過在linux上通過smb配置打印服務器,爲window提供打印服務)
 3、samba登陸時身份驗證
      在企業環境當中應用最多,目前smb是支持這三種主流的window服務操作系統的,好多企業當中整個的企業環境當中
      是使用window的域環境 進行管理的,而所有的用戶組,權限,組策略信息都是在window域環境進行配置的,那麼但
      是我們的企業又想把一些應用服務和需要用到的 一些域環境進行認證或者是做權限控制的這些應用服務去切換到linux
      系統當中,那在這種情況下就涉及到我如何和window下的這些域環境進行兼容,那麼smb是可以加入window域環境當中,
      並且是可以和window下的這些域環境進行認證操作的。所以smb這個協議是相當強大的不僅限於只是實現文件共享)
 4、可以進行Windows的主機名解析

常見的文件服務器的比較

samba安裝與端口

安裝samba。
Yum install samba -y
samba:主服務包
samba-client:客戶端
samba-common:通用工具
samba-libs:庫
samba-winbind:Windows域映射
samba-winbind-clients:域映射客戶端
常用命令:
testparm:檢測配置文件是否正確
Samba擁有兩個主服務(相關服務),對於一般使用的服務他只有一個主服務
smbd (提供samba核心功能也是使用最多的一種功能) 提供文件及打印共享服務功能,使用139/445端口
nmbd 提供基於NETBIOS主機名稱的解析(解析協議慢慢的被淘汰)支持,使用137/138端口,而對於這種協議使用較少,
現在都是dns進行解析
一般作爲文件共享使用samba,則只需要smbd服務。
smbd中d的意思是守護進程的意思。
使用的端口:
Port 137 Used for NetBIOS network browsing
Port 138 Used for NetBIOS name service
Port 139 Used for file and printer sharing and other operations
Port 445 Used by Windows 2000/XP when NetBIOS over TCP/IP is disabled

配置文件

Samba的配置文件爲/etc/samba/smb.conf
配置文件分爲三個部分:

[global] 定義全局性配置(配置samba服務的相關參數)
[homes] 定義對用戶家目錄的共享配置(其實在默認情況下不做任何設置,直接啓用服務我們就可以通過smb協議訪問所有用戶的家目錄)
[printers] 定義打印機共享配置

[global]
workgroup = MYGROUP 該Samba服務器所在的工作組或者域的名稱(如果下面的security=domain的話)
server string = Samba Server Version %v 服務器描述信息,設定機器的描述,當我們通過網絡鄰居訪問的時候
可以在 備註裏面看見這個內容,而且還可以使用%v = Samba服務的版本號。
log file = /var/log/samba/log.%m 定義日誌文件的位置LogFileName
max log size = 50 定義記錄文件的最大容量size(單位是KB,如果是0的話就不限大小)
security = user 定義Samba的安全級別,按從低到高分爲四級:share,user,server,domain。
它們對應的驗證方式如下:

share:沒有安全性的級別,任何用戶都可以不要用戶名和口令訪問服務器上的資源。
user:samba的默認配置,要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進行驗證。
server:和user安全級別類似,但用戶名和密碼是遞交到另外一個服務器去驗證,比如遞交給一臺NT服務器。如果遞交失敗,
就退到user安全級。
domain:這個安全級別要求網絡上存在一臺Windows的主域控制器,samba把用戶名和密碼遞交給它去驗證。
後面三種安全級都要求用戶在本Linux機器上也要系統帳戶。否則是不能訪問的。
load printers = yes

[homes]
在smb.conf文件中一般沒有對這個目錄的設定特定內容比如路徑等。當客戶機發出服務請求時,就在smb.conf文件的其它部分查找友特定內容的服務。如果沒有發現這些服務,並且提供了homes段時,那麼就搜索密碼文件得到用戶的Home目錄。通過Homes段,Samba可以得到用戶的Home目錄並使之共享。下面是這個段的最基本的幾個設置。
comment = Home Directories 描述信息
browseable = no 共享文件是否瀏覽可見
writable = yes 所有人可寫
[printers] 打印機
comment = All Printers
path = /var/spool/samba 共享的路徑
browseable = no
guest ok = no 是否允許所有人訪問,等同於public
writable = no 所有人可寫
printable = yes 是否可打印
write list = +staff 擁有寫權限的用戶列表
自定義名稱的共享目錄設置:

comment:						描述信息
path:							共享的路徑
guest ok:						允許所有人訪問,等同於public
read only:						所有人只讀,ro
writable:						所有人可寫,同時還要看目錄權限,rw
write list:					擁有寫權限的用戶列表
browseable:					是否瀏覽可見(設置共享是否可遊覽,如果是no表示隱藏,通過ip+共享名進行訪問)
valid users=					指定可以訪問的用戶
invalid =  user1,user2,@group1//禁止登錄用戶,用戶用逗號隔開,組用@  //禁止  訪問控制
create mask = 0644 客戶機創建文件權限
directory mask = 0755 客戶機創建目錄的權限

常見的變量:

%v:			samba的版本號
%S:			任意用戶可以登陸
%m:			client端的NetBIOS主機名
%L:			服務器端的NetBIOS主機名
%u:			當前登陸的用戶名
%g:			當前登陸的用戶組名

Windows客戶端訪問

網上鄰居訪問
\192.168.159.200

Linux客戶端訪問

smbclient -L 192.168.159.200 查看主機的共享資源
smbclient -L 192.168.159.200 -U user1 使用user1用戶進入
smbclient //192.168.159.200/movie 訪問共享目錄

mount //192.168.171.143/share /share -o username=xixi,password=redhat 掛載使用資源
//192.168.142.128/share /pub cifs defaults,username=xixi,password=redhat 0 0 (通用互聯網文件系統) 開機自動掛載

權限設定:

如果想要訪問與上傳:
Linux系統權限需要允許
samba服務權限也需要允許

添加、刪除、查看samba用戶

添加:
注意用戶必須已經是系統用戶,才能添加爲samba用戶
pdbedit -a -u 系統用戶
或者smbpasswd -a 系統用戶名(常用)
刪除:
pdbedit -x -u 系統用戶名
或者smbpasswd -x 系統用戶(常用)
查看:
pebedit -L

例題

[global]
        workgroup = workgroup
[homes]
        browseable = no
        writable = yes
[test]
        path = /share
        comment = test a directory
#重啓服務
[root@mail samba]# systemctl restart smb
[root@mail samba]# systemctl restart nmb

windows系統中刪除登陸緩存信息
cmd>net use * /delete
在window資源設備器上去訪問:\192.168.0.130

提示要賬號和密碼:
添加samba用戶
(先useradd添加用戶)

[root@localhost samba]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.

查看samba用戶用
#pdbedit -L
最後看到兩個目錄 用戶家目錄 xixi test 對應得是/share

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章