Samba 伺服器(第三版)

Samba 伺服器(第三版)修正了一些步驟並增加了觀念,但也簡化了內容,建議從舊版看起,可以了解作者遇到的問題和觀念的修正。

原始文章:Samba 伺服器(第二版)

微軟的網路芳鄰檔案系統為 CIFS(Common Internet File System),若想讓 Unix-Like 主機加入微軟的網路芳鄰並共享資源時,就必須架設 Samba Server,目的就是要讓微軟的使用者在網路芳鄰中看到這台主機的 NetBIOS name,進而存取共享的資源。


以下的示範,將分為二部份:
  1. 建立一個共享資料夾為 share(/srv/share),不必驗證即可登入與上傳
  2. 建立一個共享資料夾為 mygroup(/srv/mygroup),必須使用者驗證成功後,才可登入與上傳
安裝 Samba 伺服器(10.10.10.137) # 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)測試
  1. 找出目前網域上的 Workgroup
  2. # nmblookup -A 10.10.10.160  // 亦可用主機名稱

  3. 查詢分享資源
  4. # smbclient -L 10.10.10.160  // 亦可用主機名稱

  5. 登入 samba 伺服器,並上傳資料到 /srv/share
  6. # 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)

  7. 使用檔案總管 nautilus 登入並上傳
  8. # 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使用者條件:
  1. 必須為Linux用戶
  2. 使用smbpasswd建立登入密碼,注意!使用者的samba密碼與系統登入密碼是不相同的。
新增 Samba 使用者
  • 『user』,群組為『sabmauser』,密碼為『1』
  • 『guest』,群組為『sabmauser』,密碼為『1』
  • 『guest2』,不屬於群組『sabmauser』,密碼為『1』
  • # 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  // 此連線是被目錄拒絕

    沒有留言:

    張貼留言