SAMBA服務

SAMBA服務的介紹:linux

SMB:Server Message Block服務器消息塊,IBM發佈,最 早是DOS網絡文件共享協議 ios

Cifs:common internet file system,微軟基於SMB發佈數據庫

SAMBA:1991年Andrew Tridgell,實現windows和UNIX相通vim

SAMBA:(linux部署SAMBA服務能夠實現三種服務/應用windows

            nmdb:netbios
centos

            smdb:cifs
bash

            winbindd:(windows的活動目錄)服務器

SAMBA服務可實現跨平臺的網絡文件共享服務網絡

SAMBA的功能:(實現linxu,unix和win實現文件件共享)應用/app

• 共享文件和打印,實如今線編輯

• 實現登陸SAMBA用戶的身份認證

• 能夠進行NetBIOS名稱解析

• 外圍設備共享

計算機網絡管理模式:

• 工做組WORKGROUP:計算機對等關係,賬號信息各自管理

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

相關包:

Samba 提供smb服務  yum軟件包: samba.x86_64

samba-client 客戶端軟件

samba-common 通用軟件

cifs-utils  smb客戶端工具     域名軟件包:cifs-utils-devel.x86_64 

samba-winbind 和AD相關

samba-swat    圖形化管理包

相關服務進程:

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

nmbd NetBIOS名稱解析 UDP:137,138

            NETBIOS實現實現網絡基本的輸入輸出系統):windows基於主機實現互相通信的機制;

                        最長15字符

主配置文件:/etc/samba/smb.conf

centos7中主配置文件簡化,

                    能夠參此配置文件:  /etc/samba/smb.conf.example 

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

幫助參看:man smb.conf

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

客戶端工具:smbclient,mount.cifs

CentOS7不支持同一目錄同時用nfs和samba共享,由於使用鎖機制不一樣 

linux服務器win訪問 

linux搭建服務
1 安裝服務端
~]# yum install  samba.x86_64
2更改配置文件
~]# vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP                    
3 添加系統用戶添加爲samba用戶
~]# smbpasswd -a smbuser1
4啓動服務
~]# systemctl restart smb.service 
5windows訪問:\\smb_server_IP\

實現samba用戶:

包:samba-common-tools
工具:smbpasswd pdbedit

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

管理SAMBA用戶
添加samba用戶(添加系統用戶爲samba用戶

smbpasswd -a <user>

pdbedit -a -u <user>

 示例:~]# smbpasswd -a smbuser1

禁用samba用戶

smbpasswd -d <user>

pdbedit -d -u <user>

啓用samba用戶

smbpasswd -e <user>

pdbedit -e -u <user>

修改用戶密碼

smbpasswd <user>

刪除用戶和密碼:

smbpasswd –x <user>

pdbedit –x –u <user>

查看samba用戶列表:

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

pdbedit –L –v

查看samba服務器狀態

smbstatus

測試鏈接命令:
root@localhost ~]# smbclient  -L 192.168.117.17 -U liubei
root@localhost ~]# smbclient  -L  //192.168.117.17  -U liubei  查看劉備用戶能夠訪問到的共享目錄
root@localhost ~]# smbclient   //192.168.117.17/shared -U liubei  劉備用戶登陸到shared共享名的目錄
 顯示系統全部用戶
~]# getent passwd

顯示samba全部用戶
[root@localhost ~]# pdbedit -L
smbuser1:2008:
liubei:2006:
usermod -aG  附加組名  用戶名

配置文件:

/etc/samba/smb.conf繼承了.ini文件的格式,用[ ] 分紅不一樣的部分

全局設置:

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

特定共享設置:

[homes] 用戶的家目錄共享

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

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

其中:#和;開頭的語句爲註釋,大小寫不敏感(;爲可啓用的選項)

宏定義:

%m 客戶端主機的NetBIOS名         %M 客戶端主機的FQDN

%H 當前用戶家目錄路徑                 %U 當前用戶用戶名

%g 當前用戶所屬組                         %h samba服務器的主機名

%L samba服務器的NetBIOS名        %I 客戶端主機的IP

%T 當前日期和時間                         %S 可登陸的用戶名

SAMBA服務器的配置:

SAMBA服務器全局配置部分:

         [shared]  共享名,客戶端使用此名稱鏈接

workgroup = WORKGROUP   指定工做組名稱

server string = Windows 7 Ultimate 6.1 服務端版本號;主機註釋信息

netbios name = magetest 使用nmb服務進行解析; 指定NetBIOS名

interfaces =lo 172.18.0.1/24 指定服務偵聽接口和IP

hosts allow = 127. 192.168.123.7 容許哪些客戶端能夠訪問; 

可用「,」 ,空格,或tab分隔,默認容許全部主機訪問,也可在每一個共享獨立配置,如在[global]設置,將應用並覆蓋全部共享設置

主機IP信息及主機名信息:

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 用戶獨立的配置文件

Log file=/var/log/samba/log.%m  日誌記錄的位置;不一樣客戶機採用不一樣日誌

log level = 2 日誌記錄的級別

max log size=50 日誌文件達到50K,將輪循(rotate),單位KB

Security =user     認證方式只支持user 

                    三種認證方式:

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

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

       示例: security = user 只支持user

domain:使用DC(DOMAIN CONTROLLER)認證

passdb backend = tdbsam 密碼數據庫格式

配置目錄共享

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

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

path = /app/samba  共享的真實路徑;所共享的目錄路徑

comment = magedu file server  描述信息 註釋信息

guest ok = no  是否容許來賓帳戶訪問

public =no 可否被guest(匪名用戶)訪問的共享,默認no,和guest ok 相似

browseable = no 是否容許全部用戶瀏覽此共享,默認爲yes,no爲隱藏

writable=yes 能夠被全部用戶讀寫,默認爲no

read only=no 和writable=yes等價,如與以上設置衝突,放在 後面的設置生效,默認只讀 

write list = smb1 @smbgrp 指明容許指定用戶或組可寫,

三種形式:用戶,@組名,+組名,用","分隔 

注意:  如writable=no,列表中用戶或組可讀寫,不在列表中用戶只讀 ;

            若writeable = yes 則全部用戶可寫

valid users = smb1, smb2, smb3,smb4, smb5 僅指定用戶才能夠訪問共享,如爲空,將容許全部用 戶,用戶名之間用空格或","分隔

create mask = 0644 建立文件的默認權限

directory mask = 0755 建立目錄的默認權限

編輯/etc/samba/smb.conf

[share]

path = /app/dir

valid users=wang,@admins

writeable = no

browseable = no

掛載CIFS文件系統

手動掛載

[root@centos7 ~]# mount //172.18.252.23/shared  /mnt/smb  -o user=smb1
或
[root@centos7 ~]# mount //172.18.252.23/shared  /mnt/smb  -o user=smb1%123
不須要交互
[root@centos7 ~]# mount //172.18.252.23/shared  /mnt/smb  -o user=smb1,password=123

開機自動掛載

一、將用戶名密碼寫入文件並設置400權限,以實現對用戶名密碼的保護

[root@centos7 ~]# vim /etc/smb.txt   
username=smb1
password=123
[root@centos7 ~]# chmod 400 /etc/smb.txt

二、編輯/etc/fstab 系統自動掛載配置文件,進行配置;能夠用文件代替用戶名和密碼的

[root@centos7 ~]# vim /etc/fstab
//172.18.252.23/shared /mnt/smb   cifs	credentials=/etc/smb.txt 0 0

三、手動測試自動掛載

[root@centos7 ~]# mount -a

實驗:實現SMB共享

samba服務端端


一、在samba服務器上安裝samba包

 

yum -y install samba

二、建立samba用戶和組

 

groupadd -r admins
useradd -s /sbin/nologin -G admins wang
smbpasswd -a wang
useradd -s /sbin/nologin mage
smbpasswd -a mage


三、建立samba共享目錄,並設置SElin

 

mkdir /testdir/smbshare
chgrp admins /testdir/smbshare
chmod 2775 /testdir/smbshare

semanage fcontext -a -t samba_share_t '/testdir/smbshare(/.*)?'
restorecon -vvFR /testdir/smbshare


四、samba服務器配置

 

 vim /etc/samba/smb.conf
 security = user
passdb backend = tdbsam
[share]
path = /testdir/smbshare
write list = @admins
systemctl start smb nmb
systemctl enable smb nmb
firewall-cmd --permanent --add-service=samba 
firewall-cmd --reload

samba客戶端訪問

一、安裝包

 

yum -y install cifs-utils

二、用wang用戶掛載smb共享並訪問

 

mkdir /mnt/wang
mount -o username=wang //smbserver/share /mnt/wang 
echo "Hello wang" >/mnt/wang/wangfile.txt


三、用mage用戶掛載smb共享並訪問

 

mkdir /mnt/mage
mount -o username=mage //smbserver/share /mnt/mage 
touch /mnt/mage/magefile.txt
相關文章
相關標籤/搜索