原始文章:Samba 伺服器(第二版)
微軟的網路芳鄰檔案系統為 CIFS(Common Internet File System),若想讓 Unix-Like 主機加入微軟的網路芳鄰並共享資源時,就必須架設 Samba Server,目的就是要讓微軟的使用者在網路芳鄰中看到這台主機的 NetBIOS name,進而存取共享的資源。
以下的示範,將分為二部份:
- 建立一個共享資料夾為 share(/srv/share),不必驗證即可登入與上傳
- 建立一個共享資料夾為 mygroup(/srv/mygroup),必須使用者驗證成功後,才可登入與上傳
# yum install -y samba samba-client samba-common cifs-utils
開機時啟動
# chkconfig nmb on ; chkconfig smb on
開啟防火牆
# iptables -A INPUT -i eth0 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -I INPUT -i eth0 -p udp --dport 137:138 -m state --state NEW -j ACCEPT
# iptables -I INPUT -i eth0 -p tcp -m multiport --dport 139,445 -m state --state NEW -j ACCEPT
# service iptables save
# iptables -L -n | grep --color -Ew '13[789]|445'
Part1:建立一個共享資料夾為 share(/srv/share),不必驗證即可登入與上傳,編輯設定檔 /etc/samba/smb.conf
# mkdir /srv/share
// 建立共享資料夾
# chmod 2777 /srv/share // 變更共享資料夾權限
# ll -dZ /srv/share // SELinux 設定
drwxrwsr-x. root root unconfined_u:object_r:var_t:s0 /srv/share
# chcon -t samba_share_t /srv/share
# ll -dZ /srv/share
drwxrwsr-x. root root unconfined_u:object_r:samba_share_t:s0 /srv/share
# vim /etc/samba/smb.conf
[global]
workgroup = career
security = usr
passdb backend = tdbsam // 檔案是 passdb.tdb
[share] // 共享目錄名稱,使用 smbclient 查詢時所顯示的共享資料夾名稱
path = /srv/share
guest ok = yes
guest only = yes
read only = no // 同等於 writeable = yes
使用 testparm 測試 /etc/samba/smb.conf 語法是否正確。
# testparm // 自動載入 /etc/samba/smb.conf;參數 -v 詳細列出
啟動服務
# service nmb start; service smb start
Samba 客戶端(10.10.10.129)測試
- 找出目前網域上的 Workgroup
- 查詢分享資源
- 登入 samba 伺服器,並上傳資料到 /srv/share
- 使用檔案總管 nautilus 登入並上傳
# nmblookup -A 10.10.10.160 // 亦可用主機名稱
# smbclient -L 10.10.10.160 // 亦可用主機名稱
# smbclient //10.10.10.160/share
Enter root's password: 直接按 Enter 進入
Anonymous login successful
Domain=[CAREER] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> put install.log
putting file install.log as \install.log (9833.5 kb/s) (average 9833.7 kb/s)
# nautilus &
Part2:建立一個共享資料夾為 mygroup(/srv/mygroup),必須使用者驗證成功後,才可登入與上傳,編輯設定檔 /etc/samba/smb.conf
# useradd guest2 // 新增使用者guest2,當他登入/srv/mygroup時,是被目錄的安全性拒絕,而不是samba伺服器。
# passwd guest2
# groupadd -g 8000 sambauser
# mkdir /srv/mygroup
// 建立共享資料夾
# chgrp sambauser /srv/mygroup
// 變更共享資料夾群組
# chmod 2777 /srv/mygroup // 變更共享資料夾權限
# chcon -t samba_share_t /srv/mygroup // SELinux 設定
# vim /etc/samba/smb.conf
[global]
workgroup = career
security = usr
passdb backend = tdbsam // 檔案是 passdb.tdb
[share] // 共享目錄名稱,使用 smbclient 查詢時所顯示的共享資料夾名稱
path = /srv/share
guest ok = yes
guest only = yes
read only = no // 同等於 writeable = yes
[members] // 共享目錄名稱,使用 smbclient 查詢時所顯示的共享資料夾名稱
path = /srv/mygroup
guest ok = no
guest only = no
read only = no // 同等於 writeable = yes
vaild users = @sambauser // 允許群組成員存取
invaild users = guest // 拒絕使用者guest存取
samba使用者條件:
- 必須為Linux用戶
- 使用smbpasswd建立登入密碼,注意!使用者的samba密碼與系統登入密碼是不相同的。
# useradd -G 8000 -s /sbin/nologin user
# smbpasswd -a sambauser1
New SMB password: 『1』
Retype new SMB password: 『1』
Added user sambauser.
# useradd -G 8000 -s /sbin/nologin guest
# smbpasswd -a guest
New SMB password: 『1』
Retype new SMB password: 『1』
Added user sambauser2.
# useradd -s /sbin/nologin guest2
# smbpasswd -a guest2
New SMB password: 『1』
Retype new SMB password: 『1』
Added user sambauser2.
查詢 samba 使用者資料庫
# pdbedit -L // 查看 samba 使用者是否已建立;-v詳細模式
user:505:
guest:500:guest
guest2:504:
啟動服務
# service smb start
Samba 客戶端(10.10.10.129)測試 登入 samba 伺服器
# smbclient //10.10.10.160/members -U user
Enter user's password:
Domain=[CAREER] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> exit
# smbclient //10.10.10.160/members -U guest
Enter guest's password:
Domain=[CAREER] OS=[Unix] Server=[Samba 3.5.10-125.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED // 此連線是被samba伺服器拒絕
# smbclient //10.10.10.160/members -U guest2
Enter guest2's password:
Domain=[CAREER] OS=[Unix] Server=[Samba 3.5.10-125.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED // 此連線是被目錄拒絕
沒有留言:
張貼留言