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
centossmdb:cifs
bashwinbindd:(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 liubeiroot@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 --reloadsamba客戶端訪問
一、安裝包
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