我之我见:samba共享
目錄
1. Samba概述 1
1.1 Samba簡(jiǎn)介 1
1.2 SMB/CIFS協(xié)議 1
1.3 Samba服務(wù)基礎(chǔ) 1
1.3.1主要軟件包 1
1.3.2系統(tǒng)服務(wù)腳本 1
1.4共享賬號(hào)控制 1
1.4.1共享訪問(wèn)控制 1
1.4.2共享賬號(hào)管理 2
2.配置Samba服務(wù)器 2
2.1服務(wù)器端操作 3
2.1.1安裝samba服務(wù)器端程序 3
2.1.2建立samba認(rèn)證用戶nick\hunter 3
2.1.3準(zhǔn)備共享文件夾,確認(rèn)相關(guān)權(quán)限 3
2.1.4修改samba.conf配置文件,添加documents共享設(shè)置,并啟用服務(wù) 4
2.2從客戶機(jī)訪問(wèn)documents共享,并驗(yàn)證訪問(wèn)權(quán)限 4
2.2.1安裝samba客戶端程序 4
2.2.2查看服務(wù)器共享資源 4
2.2.3使用smbclient命令測(cè)試共享訪問(wèn) 5
2.3使用mount命令掛載共享 6
2.3.1手動(dòng)掛載 6
2.3.2為documents配置開機(jī)自動(dòng)掛載 6
2.4通過(guò)別名賬戶訪問(wèn)共享 6
2.4.1建立別名記錄文件 6
2.4.2啟用別名文件,smbd進(jìn)程在運(yùn)行,調(diào)整配置后會(huì)自動(dòng)生效,無(wú)需重啟 6
2.4.3采用別名賬號(hào)訪問(wèn)documents共享 7
2.4.4為documents共享添加客戶機(jī)地址限制 7
2.4.5測(cè)試客戶機(jī)訪問(wèn)限制 7
2.5配置文件測(cè)試工具 7
3.出現(xiàn)的問(wèn)題 8
3.1把該在服務(wù)器端的配置寫到了客戶端 8
3.2防火墻為開放139和445 8
3.3不看提示瞎回車 9
3.4selinux安全上下文 9
?
1.?Samba概述
1.1 Samba簡(jiǎn)介
Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù)。SMB協(xié)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(jī)通過(guò)該協(xié)議可以訪問(wèn)服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源。通過(guò)設(shè)置“NetBIOS over TCP/IP”使得Samba不但能與局域網(wǎng)絡(luò)主機(jī)分享資源,還能與全世界的電腦分享資源。
1.2 SMB/CIFS協(xié)議
1.2.1 SMB
Server Message Block,服務(wù)消息塊SMB協(xié)議在局域網(wǎng)上用于服務(wù)器文件訪問(wèn)和打印的協(xié)議
1.2.2 CIFS
Common Internet File System,通用網(wǎng)際文件系統(tǒng)CIFS 是一個(gè)新提出的協(xié)議,它使程序可以訪問(wèn)遠(yuǎn)程Internet計(jì)算機(jī)上的文件并要求此計(jì)算機(jī)提供服務(wù)。CIFS 使用客戶/服務(wù)器模式。客戶程序請(qǐng)求遠(yuǎn)在服務(wù)器上的服務(wù)器程序?yàn)樗峁┓?wù)。服務(wù)器獲得請(qǐng)求并返回響應(yīng)。CIFS是公共的或開放的SMB協(xié)議版本,并由Microsoft使用。SMB協(xié)議在局域網(wǎng)上用于服務(wù)器文件訪問(wèn)和打印的協(xié)議。像SMB協(xié)議一樣,CIFS在高層運(yùn)行,而不像TCP/IP協(xié)議那樣運(yùn)行在底層。CIFS可以看做是應(yīng)用程序協(xié)議如文件傳輸協(xié)議和超文本傳輸協(xié)議的一個(gè)實(shí)現(xiàn)。
1.3 Samba服務(wù)基礎(chǔ)
1.3.1主要軟件包
服務(wù)器端:samba
客戶端:samba-client、cifs-utils
1.3.2系統(tǒng)服務(wù)腳本
/etc/init.d/smb
1.4共享賬號(hào)控制
1.4.1共享訪問(wèn)控制
共享賬號(hào)
1:新建共享賬號(hào)時(shí),必須有同名的系統(tǒng)賬戶
2:共享賬號(hào)的密碼是獨(dú)立的
3:訪問(wèn)共享時(shí)以共享賬號(hào)/密碼登錄、權(quán)限取決于對(duì)應(yīng)的系統(tǒng)賬號(hào)
賬號(hào)數(shù)據(jù)庫(kù)文件
默認(rèn)采用TDB數(shù)據(jù)格式 ??????/var/lib/samba/private/passdb.tdb
1.4.2共享賬號(hào)管理
pdbedit 工具 ?
1)格式:pdbedit [選項(xiàng)] ?[共享賬戶名]
2)常用管理選項(xiàng)
-a:將制定的系統(tǒng)用戶添加為共享賬號(hào)
-L:查看共享賬號(hào)信息
-x:刪除指定的共享賬號(hào)
3)案例
[root@localhost ~]# useradd vina??????????????????//建同名系統(tǒng)用戶
[root@localhost ~]# pdbedit -a vina????????????????//添加為共享賬號(hào)
new password:?????????????????????????????????//設(shè)置密碼
retype new password:???????????????????????????//確認(rèn)設(shè)置密碼
[root@localhost ~]# pdbedit -vL vina???????????????//查看vina賬號(hào)信息
?
[root@localhost ~]# smbpasswd vina?????????????//修改vina的smb密碼
New SMB password:???????????????????????????//輸入新密碼
Retype new SMB password:?????????????????????//再次輸入密碼
[root@localhost ~]# pdbedit -x vina???????????????//刪除vina用戶
[root@localhost ~]# pdbedit -vL vina??????????????//查看vina用戶信息
Username not found!?????????????
2.配置Samba服務(wù)器
將/share/zhang發(fā)布為documents共享
2.1服務(wù)器端操作
2.1.1安裝samba服務(wù)器端程序
[root@localhost ~]# yum -y install samba samba-client???
注意:配置各種網(wǎng)絡(luò)服務(wù)時(shí),往往為了測(cè)試方便,會(huì)將某個(gè)應(yīng)用的服務(wù)器端,客戶端一起給裝上,本次實(shí)驗(yàn)也是如此,此外還需要安裝samba-common,一般這個(gè)系統(tǒng)已經(jīng)安裝。
2.1.2建立samba認(rèn)證用戶nick\hunter
[root@localhost ~]# useradd nick?????????????????????//添加系統(tǒng)用戶nick
[root@localhost ~]# useradd hunter???????????????????//添加系統(tǒng)用戶hunter
[root@localhost ~]# pdbedit -a nick????????????????????//為nick設(shè)置共享密碼
new password:
retype new password:
[root@localhost ~]# pdbedit -a hunter??????????????????//為hunter設(shè)置共享密碼
new password:
retype new password:
[root@localhost ~]# pdbedit –L????????????????????????//查看共享賬號(hào)列表
nick:502:
hunter:503:
注意:samba服務(wù)器使用獨(dú)立的共享賬號(hào)數(shù)據(jù)庫(kù)文件,其中的賬號(hào)名稱必須有與它同名的系統(tǒng)用戶相對(duì)應(yīng),以便主機(jī)對(duì)共享訪問(wèn)的權(quán)限進(jìn)行控制;但共享用戶的密碼額外設(shè)置,可以與系統(tǒng)用戶的密碼不一樣(甚至可不設(shè)密碼)
2.1.3準(zhǔn)備共享文件夾,確認(rèn)相關(guān)權(quán)限
[root@localhost ~]# setfacl -m user:hunter:rwx /share/zhang
[root@localhost ~]# getfacl /share/zhang/
getfacl: Removing leading '/' from absolute path names
# file: share/zhang/
# owner: root
# group: root
user::rwx
user:hunter:rwx
group::r-x
mask::rwx
other::r-x
注意:文件夾默認(rèn)的權(quán)限為755,系統(tǒng)用戶nick、hunter對(duì)其有讀取權(quán)限,但是沒有寫入權(quán)限。若希望在共享訪問(wèn)時(shí)hunter有權(quán)限寫入,可以通過(guò)setfacl命令做相應(yīng)調(diào)整。
為方便客戶機(jī)下載測(cè)試,在/share/zhang下新建一個(gè)hello.txt文件
[root@localhost ~]# echo "hello,hello" > /share/zhang/hello.txt
[root@localhost ~]# cat /share/zhang/hello.txt
hello,hello
2.1.4修改samba.conf配置文件,添加documents共享設(shè)置,并啟用服務(wù)
[root@localhost ~]# vim /etc/samba/smb.conf
[documents]
????path = /share/zhang??????????????????????//指定共享目錄
????public = no?????????????????????????????//不對(duì)所有人開放
????read only = yes??????????????????????????//默認(rèn)的權(quán)限為只讀
????valid users = nick,hunter???????????????????//指定合法用戶
write list = hunter????????????????????????//用戶hunter用戶可讀可寫
確保啟動(dòng)smb服務(wù)程序,必要時(shí)設(shè)為開機(jī)后自動(dòng)運(yùn)行
[root@localhost ~]# service smb restart
[root@localhost ~]# chkconfig smb on
[root@localhost ~]# netstat -anput | grep smbd
tcp ???????0 ?????0 0.0.0.0:139 ????????????????0.0.0.0:* ??????????????????LISTEN ?????2631/smbd ??????????
tcp ???????0 ?????0 0.0.0.0:445 ????????????????0.0.0.0:* ??????????????????LISTEN ?????2631/smbd ??????????
tcp ???????0 ?????0 :::139 ?????????????????????:::* ???????????????????????LISTEN ?????2631/smbd ??????????
tcp ???????0 ?????0 :::445 ?????????????????????:::* ???????????????????????LISTEN ?????2631/smbd ?????????
2.2從客戶機(jī)訪問(wèn)documents共享,并驗(yàn)證訪問(wèn)權(quán)限
2.2.1安裝samba客戶端程序
[root@xias ~]# yum -y install samba-client cifs-utils
2.2.2查看服務(wù)器共享資源
使用smbclient命令結(jié)合-L選項(xiàng)可以查看目標(biāo)主機(jī)有哪些共享,此操作不涉及實(shí)際的文件資源,因此不需要密碼,當(dāng)提示驗(yàn)證密碼時(shí)回車即可。
[root@xias ~]# smbclient -L 192.168.1.132?????????//查看對(duì)方的共享資源列表
Enter root's password: ????????????????????????//無(wú)密碼,直接回車
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]
?
????????Sharename ??????Type ?????Comment
????????--------- ??????---- ?????-------
????????documents???????Disk ???????????????????//顯示對(duì)方提供了一個(gè)名為documents的磁盤共享目錄
????????IPC$ ???????????IPC ??????IPC Service (Samba Server Version 3.6.23-25.el6_7)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]
?
????????Server ??????????????Comment
????????--------- ???????????-------
?
????????Workgroup ???????????Master
????????--------- ???????????-------
2.2.3使用smbclient命令測(cè)試共享訪問(wèn)
[root@xias smbdir]# smbclient -U nick //192.168.11.135/documents
Enter nick's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]
smb: \>ls
??. ??????????????????????????????????D ???????0 ?Mon Apr 11 01:48:43 2016
??.. ?????????????????????????????????D ???????0 ?Mon Apr 11 01:46:34 2016
??hello.txt ??????????????????????????????????12 ?Mon Apr 11 01:48:43 2016
?
????????????????36825 blocks of size 524288. 18248 blocks available
smb: \> get hello.txt
getting file \hello.txt of size 12 as hello.txt (0.5 KiloBytes/sec) (average 0.5 KiloBytes/sec)
smb: \> !ls
a.txt ?hello.txt
smb: \> put a.txt
NT_STATUS_ACCESS_DENIED opening remote file \a.txt
smb: \> put a.txt
NT_STATUS_ACCESS_DENIED opening remote file \a.txt
smb: \> quit
[root@xias smbdir]# smbclient -Uhunter //192.168.11.135/documents
Enter hunter's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]
smb: \> ls
??. ??????????????????????????????????D ???????0 ?Mon Apr 11 01:48:43 2016
??.. ?????????????????????????????????D ???????0 ?Mon Apr 11 01:46:34 2016
??hello.txt ??????????????????????????????????12 ?Mon Apr 11 01:48:43 2016
?
????????????????36825 blocks of size 524288. 18248 blocks available
smb: \> get hello.txt
getting file \hello.txt of size 12 as hello.txt (0.3 KiloBytes/sec) (average 0.3 KiloBytes/sec)
smb: \> put a.txt
putting file a.txt as \a.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \> quit
2.3使用mount命令掛載共享
2.3.1手動(dòng)掛載
[root@xias smbdir]# mount -o username=nick,password=1234 //192.168.11.135/documents /mnt/smbdir/????????????????????//通過(guò)mount命令掛載documents共享,由于要求用戶
?????????????????????????????????認(rèn)證,因此要結(jié)合-o選項(xiàng)指定用戶名,密碼才能掛上。
[root@xias smbdir]# mount | tail -1
//192.168.11.135/documents on /mnt/smbdir type cifs (rw)
[root@xias smbdir]# df -hT /mnt/smbdir/
Filesystem ????????????????Type ?Size ?Used Avail Use% Mounted on
//192.168.11.135/documents cifs ??18G ?8.2G ?9.0G ?48% /mnt/smbdir
[root@xias smbdir]# ls /mnt/smbdir/
a.?txt ?hello.txt
2.3.2為documents配置開機(jī)自動(dòng)掛載
[root@xias smbdir]# tail -1 /etc/fstab ??????????//配置開機(jī)自動(dòng)掛載
//192.168.11.135/documents /mnt/smbdir cifs defaults,username=nick,password=1234 0 0
[root@xias smbdir]# umount /mnt/smbdir/??????//卸載已掛載目錄
[root@xias smbdir]# mount | grep cifs??????????//確認(rèn)已卸載
[root@xias smbdir]# mount /mnt/smbdir/???????//測(cè)試fstab配置
[root@xias smbdir]# mount | grep cifs??????????//確認(rèn)掛載結(jié)果
//192.168.11.135/documents on /mnt/smbdir type cifs (rw)
2.4通過(guò)別名賬戶訪問(wèn)共享
通過(guò)別名賬戶訪問(wèn)共享,這是為了提升賬戶安全性,知道賬戶名,可以暴力破解嘗試一下,而不知道用戶名,沒法破解。
2.4.1建立別名記錄文件
Vim /etc/samba/smbusers ???????????????????//修改配置文件
# Unix_name = SMB_name1 SMB_name2????????//告訴你格式
root = administrator admin
nobody = guest pcguest smbguest??????????????//添加以幾行
hunter = hijack
?
2.4.2啟用別名文件,smbd進(jìn)程在運(yùn)行,調(diào)整配置后會(huì)自動(dòng)生效,無(wú)需重啟
[global]
????????username map = /etc/samba/smbusers
?
?
2.4.3采用別名賬號(hào)訪問(wèn)documents共享
[root@xias ~]# smbclient -U hijack //192.168.11.135/documents
Enter hijack's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-25.el6_7]
smb: \>
?
2.4.4為documents共享添加客戶機(jī)地址限制
Vim /etc/samba/smb.conf
Hosts allow = 192.168.11.135 ???????????????//允許客戶機(jī)訪問(wèn)的ip地址
?
2.4.5測(cè)試客戶機(jī)訪問(wèn)限制
將ip地址改為其他ip后,作為測(cè)試機(jī)的客戶端不能訪問(wèn),出現(xiàn)以下提示
?
2.5配置文件測(cè)試工具
[root@localhost ~]# testparm
?
2.6常見配置
workgroup 工作組名稱
server string 服務(wù)器描述
security user|share安全級(jí)別,user為要去用戶驗(yàn)證
comment對(duì)此共享目錄的說(shuō)明文字
path共享目錄的實(shí)際位置,方括號(hào)的類似于別名
browseable是否可見,no為隱藏共享
public是否所有人可用,等效于guest ok
writeable 是否可寫,與read only相反
共享目錄的認(rèn)證配置
設(shè)置共享訪問(wèn)權(quán)限
valid users = 共享賬號(hào)
write list = 共享賬號(hào)
用戶名或者 @組名,多個(gè)賬號(hào)之間以逗號(hào)分隔
主機(jī)地址控制
hosts allow = ip或網(wǎng)段地址
hosts deny = ip或網(wǎng)段地址
3.出現(xiàn)的問(wèn)題
3.1把該在服務(wù)器端的配置寫到了客戶端
問(wèn)題:在準(zhǔn)備測(cè)試別名賬號(hào)的時(shí)候出現(xiàn)以下錯(cuò)誤,這是因?yàn)榕渲玫臅r(shí)候把配置都寫到了客戶端,不是在服務(wù)器端做的配置。修改之后,正常
3.2防火墻為開放139和445
問(wèn)題:在使用smbclient時(shí)老提示錯(cuò)誤,但是能ping通如下圖
解決:這說(shuō)明服務(wù)器是沒有down機(jī)的,然后查看進(jìn)程也正常,最終定位防火墻問(wèn)題,開放服務(wù)器的139和445端口后,成功。
需要在服務(wù)器端開放這兩個(gè)端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
常見配置
?
3.3不看提示瞎回車
這個(gè)報(bào)錯(cuò)是自己疏忽大意了,沒輸密碼就直接按回車,每次都是拒絕
這個(gè)報(bào)錯(cuò)應(yīng)該就是selinux的關(guān)系了,當(dāng)時(shí)是執(zhí)行了下邊第一條命令就可以了
3.4selinux安全上下文
如果是selinux的問(wèn)題,設(shè)置安全上下文
setsebool?-P?samba_export_all_rw?on
1.?samba共享的文件必須用正確的selinux安全上下文標(biāo)記。
chcon?-R?-t?samba_share_t?/tmp/abc
2.如果共享/home/abc,需要設(shè)置整個(gè)主目錄的安全上下文。
chcon?-R?-r?samba_share_t?/home
查看samba共享,提示一下
這是由于wuhaoshu僅僅只是系統(tǒng)用戶,而沒有將它加入到samba賬戶中來(lái),換言之,用來(lái)登錄samba服務(wù)器的賬戶,首先是一個(gè)系統(tǒng)賬戶,同時(shí)還應(yīng)是samba賬戶。
smbpasswd -a wuhaoshu
轉(zhuǎn)載于:https://blog.51cto.com/zhangdl/1881869
總結(jié)
以上是生活随笔為你收集整理的我之我见:samba共享的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL性能优化的21条最佳经验【转】
- 下一篇: Effective stl---笔记