Centos配置samba
samba(windows和linux系統之間共享檔案 )
功能:windows和linux系統之間共享檔案 CIFS協議
環境:
server 192.168.100.11 desk1.uplooking.com
client 192.168.100.12 desk2.uplooking.com
埠:udp/137 udp/138 名稱解析 tcp/139 通訊會話 tcp/445 cifs
伺服器
一、檢視軟體包是否安裝
rpm -qa | grep samba
samba-common-4.4.4-9.el7.noarch 通用元件包
samba-common-tools-4.4.4-9.el7.x86_64 工具包
samba-4.4.4-9.el7.x86_64 主程式包
samba-client-4.4.4-9.el7.x86_64 客戶端軟體包 linux
yum install samba -y //安裝軟體
二、伺服器端的配置檔案
rpm -ql samba-common
/etc/samba/smb.conf //主配置檔案
/etc/samba/smb.conf.example
vim /etc/samba/smb.conf
---------------------------------------參考↓---------------------------------------------
[global] //全域性設定
workgroup = SAMBA //定義工作組
security = user //安全驗證的設定
user :需要提供使用者名稱和密碼才能訪問共享,驗證使用的是本地伺服器
share:匿名使用者,不需要提供使用者名稱和密碼直接就能訪問共享 //7已廢棄
passdb backend = tdbsam //使用者和密碼存放的格式 /var/lib/samba/private/
printing = cups //列印相關選項
printcap name = cups
load printers = yes
cups options = raw
[homes] //定義一個
comment = Home Directories //註釋,對共享的描述
valid users = %S, %D%w%S //只允許某個使用者訪問
browseable = No //不登陸就不可以檢視共享目錄
read only = No //可寫
inherit acls = Yes //繼承acl許可權
許可權控制
read only = Yes
write list = 使用者名稱 @組名 可寫列表
read only = No
read list = 使用者名稱 @組名 只讀列表
訪問控制
限制ip
hosts allow = 192.168.1. //只允許網段192.168.1.訪問
hosts deny = 192.168.2. //拒絕網段192.168.2.訪問
限制使用者
valid users = 使用者 @組名 //只允許哪些使用者訪問
invalid users = 使用者 @組名 //拒絕哪些使用者訪問
-------------------------------------參考↑--------------------------------------------
共享一個/share目錄,共享名叫sharetest,匿名使用者可寫可瀏覽
伺服器配置:
mkdir /share
chmod 777 /share
vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
map to guest = bad user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
//阿里雲 smb ports = 1315 1314 #很重要,貌似阿里雲屏蔽了samba預設的埠
[sharetest] //共享名
comment = share test 123 //描述資訊
path = /share //共享檔案的路徑
browseable = Yes //可瀏覽
guest ok = Yes //允許guest使用者訪問
read only = No //可寫
testparm //測試配置語法
systemctl restart smb
systemctl restart nmb
三、Samba網路配置
阿里雲上配置,最重要的是要記得配置相應的埠開啟,不然外網是訪問不了的
-
一方法是關閉防火牆
systemctl stop firewalld.service
setenforce 0 -
二方法是新增規則(推薦)
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload-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 -A INPUT -m state –state NEW -m udp -p udp –dport 137 -j ACCEPT -A INPUT -m state –state NEW -m udp -p udp –dport 138 -j ACCEPT -A INPUT -p tcp –dport 22 -j ACCEPT -A INPUT -p tcp –dport 21 -j ACCEPT -A INPUT -p tcp –dport 80 -j ACCEPT -A INPUT -p tcp –dport 443 -j ACCEPT -A INPUT -p icmp –icmp-type 8 -j ACCEPT -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT -P OUTPUT ACCEPT
-
埠轉發
由於我使用的阿里雲,阿里雲的445埠被遮蔽了,即使你在阿里雲端開放了該埠也無效果,所以需要開放其他埠,並在Windows端進行埠轉發。
//Windows
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=你的伺服器地址 connectport=你的埠例如1314
netsh interface portproxy show all #命令檢視埠轉發是否成功。
- 關閉SELINUX
setenforce 0
四、新增使用者登入(samba使用者)
pdbedit -a username(這裡要是你本機以有的使用者如:root)
[root@iZuf6dnzy9ygt2sur8q2iuZ /]# pdbedit -a root
new password:
retype new password:
Unix username: root
NT username:
Account Flags: [U ]
User SID: S-1-5-21-6561631652-1627451568-1611045335-1000
Primary Group SID: S-1-5-21-6561631652-1627451568-1611045335-513
Full Name: root
Home Directory: \\aaaaaaaaa\root
之後會讓你輸入新建使用者的密碼
pdbedit -L 顯示已存在的使用者
新增samba使用者提示 Failed to add entry for user.
這是因為沒有加相應的系統賬號,只需增加相應的系統賬號就可以了
(samba使用者名稱=系統賬號)
測試本地掛載
mount -t cifs -o username=username,password=123456,port=1314 //ip/sharetest /掛載目錄
windows客戶端:
在位址列輸入:\伺服器的ip地址
以後想直接訪問共享--->在共享資料夾上右鍵-->對映為網路驅動器-->選擇驅動器R:-->\伺服器的ip地址\共享名-->完成
例: \ip\sharetest
測試:把windows的檔案拷貝到共享目錄 如可以拷貝表示成功
1.共享一個/smbtest目錄,共享名叫test,samba伺服器提供三個smb使用者,分別是smb1~smb3,smb1和smb2使用者可寫,smba3只能讀和瀏覽,並且只允許192.168.100.11訪問