開篇之言:關(guān)于Samba的相關(guān)原理請大家自行到網(wǎng)上查找,我們主要來講解如何搭建Samba服務(wù)
第一部分:Samba服務(wù)的控制選項
用戶控制
public = no 不允許匿名用戶訪問
browseable = yes 不隱藏目錄(知道目錄同樣可以訪問) (系統(tǒng)默認(rèn)yes,可以不寫)
valid users = 用戶或列表或@用戶組
writable = yes 可寫(目錄本身要可寫)
write list = 用戶或列表或@用戶組
readonly = yes 是否設(shè)置只讀(系統(tǒng)默認(rèn)yes,可以不寫)
create mask = 0744 控制客戶機創(chuàng)建文件的權(quán)限(系統(tǒng)默認(rèn)0744)
directory mask = 0744 控制客戶機創(chuàng)建目錄的權(quán)限(系統(tǒng)默認(rèn)0755)
訪問控制
max connections = 最大連接數(shù)目
deadtime = 斷掉連接時間(分鐘)0為不限制
注:在全局里增加
hosts deny = .sale.com .net free 表示禁止.sale.com域和.net域及主機名為free的客戶端訪問
hosts deny = All 表示所有客戶端,并不是說允許主機名為ALL的客戶端可以訪問。常用的通配符還有“*”,“?”,“LOCAL”等
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78 表示允許192.168.0.0網(wǎng)段IP地址訪問,但是192.168.0.100和192.168.0.78除外
注:在可在全局與局部里增加
注::允許優(yōu)先
第二部分:幾個關(guān)鍵字段
根據(jù)需要增加在全局里面。雖然簡單,但功能不簡單,大家在用到的時候慢慢來體會。
include = /etc/samba/%G.smb.conf 調(diào)用用戶組相關(guān)的配置文件
include = /etc/samba/%U.smb.conf 調(diào)用用戶相關(guān)的配置文件
username map = /etc/samba/smbusers 調(diào)用映射用戶賬號的配置文件
第三部分:和Samba有關(guān)的一些命令
批量增加SMB用戶(很多人想要的東東)
# for user in 用戶列表
>do
>useradd -g group -s shell $user
>smbpasswd -a $user
>done
編輯SMB的用戶賬號相關(guān)命令
smbpasswd
smbpasswd -a 增加一個賬號
smbpasswd -d 禁用一個賬號
smbpasswd -e 啟用一個賬號
smbpasswd -x 刪除一個賬號
smbpasswd 更改用戶密碼
pdbedit
pdbedit -L 列出SMB中的賬號
pdbedit -a 增加一個賬號
pdbedit -x 刪除一個賬號
注:上面兩個命令,大家根據(jù)需要選擇
Linux客戶端的訪問工具
smbtree 顯示局域網(wǎng)中的所有共享主機和目錄列表
smbtree -D 只顯示局域網(wǎng)中的工作組或域名。后面可以加上-U username%passwd ,則表示是相關(guān)用戶的訪問權(quán)限
nmblookup 某個主機的netbios主機名或工作組。 # 顯示相應(yīng)的IP
smbclient命令格式
smbclient -L //主機名或IP地址 -U 登錄用戶名 # 列出目標(biāo)主機共享資源列表
smbclient //主機名或IP地址/共享目錄名 -U 登錄用戶名 # 使用共享資源
mount命令格式
mount //目標(biāo)IP地址或主機名/共享目錄名稱 掛載點 -o username=用戶名 # 掛載共享
umount 掛載點 # 卸載共享
smbtar -s server –u user –p passwd –x shareneam –t output.tar # 把遠(yuǎn)程的內(nèi)容備份到本地
tar tvf *.tar # 查看TAR文件包里面的的內(nèi)容
第四部分:實例詳解
【實例1】員工可以在公司內(nèi)流動辦公,無論在任何一臺機器上工作,都能把自己的文件放到服務(wù)器里,同時不能使用服務(wù)器上的SHELL。(注解:SMB中有關(guān)于用戶家目錄的默共享設(shè)置,我們只要設(shè)置USER級別,然后再增加用戶和指定不可用的SHELL)
smb.conf配置文件更改的內(nèi)容如下
security = user
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
配置好后,就重新啟動SMB服務(wù)
# useradd user -s /dev/null
# smbpasswd -a user
增加好用戶和密碼后,就可以直接測試了!這個不用重新啟動SMB服務(wù)了哦!
【實例2】建立共享目錄student,它的本機路徑為“/home/student”,只有teachers組的用戶可以讀寫該目錄,students用戶組只能讀取。(注解:這個關(guān)鍵是不同組對同一個目錄的權(quán)限設(shè)置,student這個目錄屬于students用戶組,并設(shè)置他的OTHER 權(quán)限為7,我們通過這個OTHER權(quán)限來實現(xiàn)teachers組對student目錄的訪問,通過SMB的配置文件來限制用戶訪問)
# mkdir /home/student
# groupadd students
# groupadd teachers
# useradd -g students user
# useradd -g teachers user
# smbpasswd -a user
# chgrp students /home/student
# chmod 757 /home/student
# chmod g+s /home/student
smb.conf配置文件更改的內(nèi)容如下
security = user
[student]
path = /home/student
comment = student
write list = @teachers
valid users = @teachers @students
重新啟動SMB服務(wù),進行測試。
【實例3】公司有二個部門( sales market ),銷售部和市場部有自己單獨的共享目錄,只可以總經(jīng)理和相應(yīng)部門員工訪問,并且公司員工禁止訪問非本部門的共享目錄。(注解:這一個內(nèi)容與第二個類似,只是用戶組變成用戶,多了一個用戶組,只需要把文件夾所有者給總經(jīng)理,所屬組為用戶組就OK)
# mkdir /home/sales
# mkdir /home/market
# groupadd sales
# groupadd market
# useradd -g sales user
# useradd -g market user
# smbpasswd -a user
# chgrp sales /home/sales
# chgrp market /home/market
# chown ceo /home/sales
# chown ceo /home/market
# chmod 770 /home/sales
# chmod 770 /home/market
# chmod g+s /home/sales
# chmod g+s /home/market
smb.conf配置文件更改的內(nèi)容如下
security = user
[sales]
path = /home/sales
comment = sales
write list = @sales ceo
valid users = @sales ceo
create mask = 0770
directory mask = 0770
[market]
path = /home/market
comment = market
write list = @market ceo
valid users = @market ceo
create mask = 0770
directory mask = 0770
重新啟動SMB服務(wù),進行測試。
【實例4】實現(xiàn)在登陸的時候只能看到自己的共享目錄,沒有權(quán)限訪問的看不到。
(注解:其實實現(xiàn)這個主要靠加載獨立的配置文件來實現(xiàn),只要把獨立的文件設(shè)置好相應(yīng)的權(quán)限就OK,SMB主配置文件中加入獨立的配置文件,其他不用設(shè)置)
關(guān)于用戶的增加我這里就不寫出來了,和上面的沒有區(qū)別。(略過)
首先把源始的smb.conf COPY 出來,后面加上相應(yīng)的用戶或者組,如:smb.conf.user smb.conf.group
然后配置各己的配置文件
如:smb.conf.ceo
[sales]
comment = sales
path = /home/sales
writeable = yes
valid users = ceo
create mask = 0770
directory mask = 0770
[markets]
comment = markets
path = /home/markets
writeable = yes
valid users = ceo
create mask = 0770
directory mask = 0770
如:smb.conf.sales
[sales]
comment = sales
path = /home/sales
writeable = yes
valid users = @sales
create mask = 0770
directory mask = 0770
如:smb.conf.markets
[markets]
comment = markets
path = /home/markets
writeable = yes
valid users = @markets
create mask = 0770
directory mask = 0770
主配置文件如下:
security = user
include = /etc/samba/smb.conf.%G
include = /etc/samba/smb.conf.%U
其他的不用設(shè)置,重新啟動SMB服務(wù),然后測試!祝大家好遠(yuǎn)!??!
第五部分:Samba服務(wù)搭建的注意事項
1、防火墻和SELinux
2、主機名
3、建立Samba用戶
4、用戶的權(quán)限
5、目錄的權(quán)限
6、其他事項
第六部分:Samba服務(wù)排錯
(1)錯誤信息
(2)配置文件
(3)日志文件
testparm #查看配置文件
testparm /etc/samba/smb.conf 主機名 IP #測試具體機器能否訪問及訪問的范圍
netstat –tlunp | grep service #顯示服務(wù)的對應(yīng)端