以下範例需要認證才能登入共享資料夾
安裝 Samba Server
# yum install -y samba
開機時啟動
# chkconfig nmb on // 提供 NetBIOS 名稱解析
# chkconfig smb on // 提供檔案共享及列印服務
開啟防火牆,nmbd 通訊埠為 137(udp)、138(udp),smbd 通訊埠為 139(tcp)、445(tcp)
# iptables -I INPUT -p udp --dport 137:138 -j ACCEPT
# iptables -I INPUT -p tcp --dport 139 -j ACCEPT
# iptables -I INPUT -p tcp --dport 445 -j ACCEPT
# service iptables save
設定共享資料及存取權限,組態檔 /etc/samba/smb.conf
# mkdir /sharedir // 建立共享資料夾
# chcon -t samba_share_t /sharedir // SELinux設定
# vim /etc/samba/smb.confg
[global]
workgroup = career
netbios name = santanalee
security = usr //share 不需要認證,user 需要認證
passdb backend = tdbsam // 檔案是 passdb.tdb
[share_samba] // 共享目錄名稱
path = /sharedir
valid users = sambauser
writeable = yes
public = no
browseable = yes // 若設定為no,但如果登入者知道完整路徑仍可存取。
available = yes // 此區段設定是否動作,預設是yes,可以不用輸入
使用 testparm 測試 /etc/samba/smb.conf 語法是否正確。
故意在組態檔內寫入一個錯誤參數名稱 printers。
# testparm // 自動載入 /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Unknown parameter encountered: "aprintable"
Ignoring unknown parameter "aprintable"
WARNING: [printers] service MUST be printable!
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
新增 Samba 使用者『sabmauser』,密碼為『1』
# useradd -s /sbin/nologin sambauser
# smbpasswd -a sambauser
New SMB password: 『1』
Retype new SMB password: 『1』
Added user sambauser.
查詢 samba 使用者資料庫
# pdbedit -L
sambauser:502:
啟動服務
# service nmb start ; service smb start
Windows 平台測試
- 打開網路芳鄰,可以看到 NetBIOS Name 為 SANTANALEE 的主機
- 進入主機要輸入帳/密 (sambauser/1)
- 登入後可看見共享目錄 share_samba 及使用者家目錄
- 登入使用者家目錄遭系統拒絕,是因為 SELinux 關係
設定 SELinux 布林值
# setsebool -P samba_enable_home_dirs 1
Linux 平台測試
安裝 Samba Client 套件
# yum install -y samba-client
查看 Samba Server 共享資源訊息
# smbclient -L 10.10.10.137
存取共享目錄,但無法支援許多常用的指令,故建議掛載以方便進行操作。
# smbclient //10.10.10.137/share_samba -U sambauser%1
// 可使用 NetBIOS Name 或 IP 位址,另外 sambauser%1 的寫法,密碼會留在歷史資料內,不加 %1 系統會出現提示輸入訊息。
手動掛載
# mkdir /mnt/smb
# mount(-t cifs)//10.10.10.137/share_samba /mnt/smb -o username=sambauser%1 // 檔案系統參數可以不用下
# df
開機時掛載
# chkconfig netfs on
# service netfs start
# echo '//10.10.10.137/share_samba /mnt/smb cifs username=sambauser%1 0 0' >> /etc/fstab
# mount -a
沒有留言:
張貼留言