13-安裝與配置Samba服務器
SambaServer:192.168.80.100/24
SambaClient:192.168.80.110/24
WinXP:192.168.80.120/24
一、安裝
1、安裝Samba服務
yum install samba
2、查看相關軟件包
rpm -qa | grep samba
samba4-libs-4.2.10-12.el6_9.x86_64 samba-winbind-3.6.23-45.el6_9.x86_64 samba-client-3.6.23-45.el6_9.x86_64 samba-3.6.23-45.el6_9.x86_64 samba-winbind-clients-3.6.23-45.el6_9.x86_64 samba-common-3.6.23-45.el6_9.x86_64
3、查看Samba相關配置文件
rpm -qc samba
/etc/logrotate.d/samba
/etc/pam.d/samba
/etc/samba/smbusers
4、查看Samba主配置文件
cat /etc/samba/smb.conf
5、設置開機自動啟動samba服務
chkconfig smb on
6、啟動samba服務
service smb start
二、配置防火墻規則
1、檢查防火墻是否啟動,是否開機啟動
service iptables start
chkconfig iptables on
2、添加防火墻規則,允許客戶端訪問共享文件夾
iptables -I INPUT -p tcp --dport 139 -j ACCEPT iptables -I INPUT -p tcp --dport 445 -j ACCEPT iptables -I INPUT -p udp --dport 137 -j ACCEPT iptables -I INPUT -p udp --dport 138 -j ACCEPT
3、保存防火墻規則
/sbin/service iptables save
4、查看防火墻配置
iptables -L
三、Samba服務器的配置文件
1、查看Samba主配置文件
cat /etc/samba/smb.conf
2、重命名配置文件
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
3、去掉註釋行並產生新的配置文件
grep -v "#" /etc/samba/smb.conf.bak >/etc/samba/smb.conf
4、測試配置文件是否正確
testparm -v
四、設置允許匿名用戶訪問的Samba服務器
1、創建文件夾
mkdir /data
2、修改權限
chmod 777 /data
3、設置配置文件
vi /etc/samba/smb.conf
[smb.conf]
①將[global]中security改為 = share
②在後邊添加以下內容
[data]
comment = dataFile #設置共享的說明信息(描述)
path = /data #指定共享目錄的路徑
browseable = yes #所有samba用戶都可以看到該目錄(是否可見)
read only = no #允許只讀(NO,可讀寫)
public = yes #是否允許匿名用戶訪問
create mode =0664 #與create mask參數意思相同,在主目錄中建立一個文件的默認權限
directory mode =0775 #與directory mask參數意思相同,在主目錄中建立一個目錄時的默認權限
writable = yes #用戶對共享目錄可寫
4、重啟Samba服務
service smb restart
5、驗證:在XP上訪問Samba服務器
①在瀏覽器中輸入\192.168.80.100
②上傳測試文件
③查看權限
ll /data/
總用量 8
-rw-rw-r-- 1 nobody nobody 23 1月 25 21:22 test.txt 664
drwxrwxr-x 2 nobody nobody 4096 1月 25 21:24 zhang 775
6、減少在Windows中打開Samba服務器的等待時間
vi /etc/hosts
[hosts]
127.0.0.1 SambaServer #寫自己的計算機名
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
五、創建需要登錄的Samba服務器
1、修改Samba配置文件來支持驗證
vi /etc/samba/smb.conf
[smb.conf]
security = user #修改
2、關於samba用戶密碼的文件
存放samba用戶密碼的文件有兩種類型
數據庫文件
/var/lib/samba/private/passdb.tdb
密碼文件
/var/lib/samba/private/smbpasswd
3、創建Linux用戶並設置密碼
useradd zhang
useradd wang
passwd zhang
passwd wang
4、將Linux用戶添加到Samba用戶並設置密碼
smbpasswd -a zhang
smbpasswd -a wang
5、查看有幾個Samba用戶
pdbedit -L
PS:
Smbpasswd:主要作用是為系統創建用戶創建samba用戶
-a 新建用戶
使用的時候創建的samba用戶必須在系統用戶中存在。否則samba找不到系統用戶則創建失敗
-d 凍結用戶,就是這個用戶不能在登錄了
-e 恢復用戶,解凍用戶,讓凍結的用戶可以在使用
-n 把用戶的密碼設置成空.
-x 刪除用戶
pdbedit:管理samba 用戶數據庫的一個工具
pdbedit -a -u username 增加一個samba用戶
pdbedit -x samba_user 刪除用戶
pdbedit -L查看創建的samba用戶
6、驗證:在WindowsXP訪問並進行上傳修改操作,在Linux上用ll 對應目錄 可以查看文件所有者。
PS:如想快速切換用戶可以在CMD中用net use * /del 刪除訪問憑證。
六、更改samba用戶密碼文件
1、修改配置文件
vi /etc/samba/smb.conf
在[global]中修改 passdb backend =為 smbpasswd,保存並重啟。
2、查看用戶數據庫文件夾中有沒有密碼文件
ll /var/lib/samba/private/
3、查看Samba用戶的狀態
pdbedit -L
回車後為空,需要創建賬戶
4、將Linux用戶添加到Samba用戶並設置密碼
smbpasswd -a zhang
smbpasswd -a wang
5、再次查看
pdbedit -L
zhang:500:
wang:501:
6、查看Samba賬戶密碼文件
cat /var/lib/samba/private/smbpasswd
zhang:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:3DBDE697D71690A769204BEB12283678:[U ]:LCT-5A69E386:
wang:501:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:5A420E7750B39BE09FA29D314FA4B51C:[U ]:LCT-5A69E38C:
7、驗證:再次在WindowsXP訪問
七、設置Samba服務器網絡安全
1、網絡訪問控制
①設置Samba服務允許通過哪個地址或哪個網卡來訪問(根據實際情況設置)
vi /etc/samba/smb.conf
[smb.conf]
; interfaces = lo eth1 #尋找這個,根據你的實際情況設置,可使用ifconfig查看
interfaces = 192.168.80.100/24 #添加
bind interfaces only = YES #強制綁定
重啟服務,在Windows客戶端中檢查可否訪問
service smb restart
②設置那些網段能夠訪問Samba服務器
vi /etc/samba/smb.conf
; interfaces = lo eth0
interfaces = 192.168.80.222/24
bind interfaces only = YES
hosts allow = 127. 192.168.80.0/24 EXCEPT 192.168.80.130 ,192.168.80.131 #允許那個網段訪問,EXCEPT排除那個訪問
hosts deny = 192.168.80.140
PS:
a.等價某一個網段寫法:
例如:
192.168.80.X等價於 192.168.80.0/24等價於 192.168.80.0/255.255.255.0
b.在Samba服務器中允許優先
③設置文件夾允許那些網段訪問
客戶端必須先通過全局網絡設置允許訪問Samba服務才可以,以下設置data文件夾只允許192.168.80.10和192.168.80.20訪問。
vi /etc/samba/smb.conf
[data]
comment = dataFile
path = /data
browseable = yes
read only = no
public = yes
create mode =0444
directory mode =0775
writable = yes
hosts allow = 192.168.80.10 192.168.80.20
④設置哪些用戶能夠訪問共享文件夾
invalid users 是合法用戶,valid users 是不合法用戶。這兩個參數分別設置允許訪問文件夾和不允許訪問文件夾的用戶列表。一個用戶同時出現在兩個列表中的時候,不允許註冊優先。列表中的用戶名可以用逗號隔開。@表示組,代表組中全部成員。
例如:
valid users = @managers
invalid users = wang,zhang
a.創建組,並將用戶添加到組,授權某個組能夠訪問共享文件夾
groupadd managers #創建組
usermod -G managers zhang #將zhang加入組
usermod -G managers wang #將wang加入組
b.更改samba配置文件
vi /etc/samba/smb.conf
修改以下配置:
[data]
comment = dataFile
path = /data
browseable = yes
valid users = @managers #允許那個組訪問
invalid users = wang #不合法用戶(拒絕優先)
; valid users = zhang,wang #合法用戶
read only = no
; public = yes
create mode =0444
directory mode =0775
writable = yes
; hosts allow = 192.168.80.10 192.168.80.20
④設置用戶訪問共享文件夾權限
a.設置文件夾默認的訪問權限
read only = no
writeable = yes
b.指定用戶對共享文件夾的訪問
write list = zhang
read list = wang
這兩個參數分別指定只允許對一個服務進行只讀訪問或同時有"寫"權限的主機列表,這裏,如果一個主機同時在兩個列表裏,則"寫"優先。
c.在Windows中刪除訪問共享文件夾憑證的命令
net use * /del
d.修改配置文件來實現功能
vi /etc/samba/smb.conf
[data]
comment = dataFile
path = /data
browseable = yes
valid users = @managers
; invalid users = wang
read only = yes #默認情況下只讀
write list = zhang #特定用戶寫入
read list = wang #特定用戶只讀
; public = yes
create mode =0444
directory mode =0775
writable = yes
⑤設置共享文件夾是否可見
browsable #可見
browseable #隱藏
這兩個功能相同的參數控制該段是否在瀏覽列表中列出。瀏覽列表列出的是可獲得的共享列表。一般[home]段禁止瀏覽,以提高安全性。
必須輸入共享名才能訪問隱藏的共享。
可以修改配置文件
[data]
comment = dataFile
path = /data
browseable = yes
valid users = @managers
; invalid users = wang
read only = yes
write list = zhang
read list = wang
; public = yes
create mode =0444
directory mode =0775
writable = yes
browsable = no
; hosts allow = 192.168.80.10 192.168.80.20
驗證後發現輸入共享名才能訪問。
八、將Windows用戶映射到samba用戶
1、編輯名稱映射文件
vi /etc/samba/smbusers
[smbusers]
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
#當Windows用戶輸入等號後邊的用戶名等價於前邊的Linux用戶
2、編輯配置文件,添加一行,指定映射文件位置和名稱
vi /etc/samba/smb.conf
[smb.conf]
security = user
passdb backend = smbpasswd
#添加一行,用戶映射文件
username map = /etc/samba/smbusers
3、將root用戶添加到samba用戶
smbpasswd -a root
4、驗證:在WindowsXP上使用administrator訪問,可以看到使用root用戶連接到了samba。
九、在Linux上訪問Samba服務器
1、使用smbclient(192.168.80.110)在zhang用戶來查看Samba服務器有那些共享
smbclient -L 192.168.80.100 -U zhang
2、使用smbclient(192.168.80.110)命令訪問共享文件夾
smbclient //192.168.80.100/data -U zhang
3、輸入?可查看smbclient所有可用命令
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
smb: \> ?
? allinfo altname archive blocksize
cancel case_sensitive cd chmod chown
close del dir du echo
exit get getfacl geteas hardlink
help history iosize lcd link
lock lowercase ls l mask
md mget mkdir more mput
newer open posix posix_encrypt posix_open
posix_mkdir posix_rmdir posix_unlink print prompt
put pwd q queue quit
readlink rd recurse reget rename
reput rm rmdir showacls setea
setmode stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect ..
!
smb: \>
smb: \> get wang.txt #下載文件
smb: \> q #退出
4、查看下載的文件
ls
anaconda-ks.cfg install.log install.log.syslog wang.txt
5、這麽下載是很不方便的,所以我們可以將samba服務器共享文件夾掛在到本地
mkdir /mnt/data
mount -t cifs -o username=zhang //192.168.80.100/data /mnt/data/
Password:
#輸入密碼
6、使用smbclient(192.168.80.110)在Linux訪問WindowsXP共享文件夾
①在Windows設置共享策略和共享文件夾並關閉防火墻(如沒有賬號可在CMD中用net user 用戶名 密碼 /add來創建用戶)
mkdir /mnt/winxp
mount -t cifs -o username=zhangyujia //192.168.80.120/winxp /mnt/winxp
Password:
#輸入密碼
②創建文件測試
touch /mnt/winxp/test.txt
歡迎關註
新浪微博:https://weibo.com/yougazhang0506
微信公眾平臺:張雨嘉
我的網站:http://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
13-安裝與配置Samba服務器