TShopping

 找回密碼
 註冊
搜索
查看: 2492|回復: 4
打印 上一主題 下一主題

[教學] 設定 Samba 認證

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-10-2 12:42:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
 上一小節由於是採取最寬鬆的等級,所以 everybody 都可以存取 Samba。如果您所分享的目錄是希望使用者需經認證程序方能存取,那麼就需做一些調整才行。以下是筆者對整個 samba 認證的設定步驟:
  • 建立分享目錄

    1. suse:~ # mkdir /home/authdir 
    2. # 建立認證目錄。

    3. suse:~ # cp /etc/passwd /home/authdir/file 
    4. # 複製 passwd 至 /home/authdir/file 。

    5. suse:~ # chmod 1777 /home/authdir 
    6. # 讓所有人對 authdir 具所有權限,且讓 authdir 有 Sticky bit 的屬性。

    7. suse:~ # chmod 666 /home/authdir/file 
    8. # 讓所有人皆可修改 file 檔案。
    複製代碼

  • 設定 smb.conf

    1. suse:~ # vi /etc/samba/smb.conf

    2. [global]
    3.    workgroup = workgroup
    4.    server string = Samba Server
    5.    security = user 
    6.     # 使用者在存取 SAMBA 時,需輸入帳號密碼,且是透過此台 SAMBA 做認證。

    7.    netbios name = suse
    8.     encrypt passwords = yes 
    9.     # 在 SAMBA 與 Client 端之間,是以加密方式來傳送密碼。

    10.     smb passwd file = /etc/samba/smbpasswd 
    11.     # 使用者認證時所依據的檔案。
    12.    # 以上兩個參數為預設,所以也可以不做設定。

    13.    hosts allow = 192.168.1.0/24 192.168.5. 
    14.     # 設定允許存取的來源端。

    15. [Auth]
    16.    comment = Authentication
    17.    public = no 
    18.     # 因為要做認證,所以這裡設定為不公開分享。這是預設值。

    19.    path = /home/authdir
    20.     # 分享目錄的實際路徑。

    21.    browseable = yes 
    22.     # 在網芳中,允許看到 Auth 這個分享目錄名稱。這是預設值。

    23.    write list = barry,tina  
    24.     # 設定擁有寫入權限的使用者或群組名單。
    25.       
    26.    valid users = barry,tina
    27.    # 設定能存取此目錄的有效使用者及群組名單。

    28.    create mask = 0600 
    29.     # 設定使用者在該目錄下新增檔案時的預設權限為 600。

    30.    directory mask = 0700 
    31.     # 設定使用者在該目錄下新增目錄時的預設權限為 700。

    32. suse:~ # rcsmb restart
    複製代碼

     針對這個範例,稍微補充幾個參數的詳細用法:

    hosts allowhosts deny
    當您只想允許少數來源端做存取時,設定 hosts allow 即可 ﹔若只想拒絕少數來源端做存取,則設定 hosts deny 就行了。如 hosts allow 及 hosts deny 同時做設定時,則會先 allow 再 deny。當來源端符合 hosts allow 的設定,就不再往下比對,否則繼續比對 hosts deny,若是兩者都不符合時,則結果是會被 allow 的。建議您在對來源端做控管時,只設定這兩個參數中的其中一個就行了,這樣也才不容易搞混。
    再來就是其設定格式可以使用主機名稱或 IP 位址,之間可用「, 」或空白字元做區隔,比如:
    hosts allow = 192.168.10.0/255.255.255.0 , .paching.com.tw
    browseable
    是否可以在網芳中看到此分享目錄的名稱。若設定成 No,則使用者無法看見此目錄,就好像被隱藏起來一樣。不過如果 Client 事先已經知道此分享目錄名稱時,則可藉由 [開始] → [執行],然後輸入「\\suse\auth」來作存取:
    write list
    這個參數需要在預設「read-only = yes」的情況下才有效。假使您同時設定了「writable = yes」與「write list」時,那麼當本身具有寫入權限的使用者,其雖未被列在「write list」的名單之中,但這個使用者還是具有寫入權限的。
    另外也可以針對群組來設限,只要在群組名稱之前加上「@」即可。比如:
    write list = barry,mary,@group01,@group02
    而名稱與名稱之間可用「 ,」或空白字元做區隔。
    valid users
    當某個目錄設定此參數時,則只有在列表之中的使用者或群組成員,才可存取這個目錄。至於其設定格式與「write list」相同,不再贅述。

     設定完成後,請重新啟動 SAMBA:

    1. suse:~ # rcsmb restart
    複製代碼
  • 建立使用者認證資料

     待會兒所建立的認證帳號,必須已經存在於 /etc/passwd 之中才行。至於密碼部分,可設定成與 Linux 系統上的密碼 ( /etc/shadow ) 相同或不同,但不管如何設定,使用者最終還是要以這裡所設定的 Samba 密碼為主。

     建立 Samba 認證資料的指令為 smbpasswd,至於所建立完成後的帳號密碼,則會產生在 /etc/samba/smbpasswd 檔案內,也就是說使用者在做認證時,所依據的就是這個檔案啦。




    1. suse:~ # smbpasswd -a barry
    2. New SMB password :
    3. Retype new SMB password :
    4. Added user barry.

    5. suse:~ # cat /etc/samba/smbpasswd
    6. barry:1000:2A89DBF8EE6DF912AAD3B435B51404EE:782E8614AE676814F2C0A1E5994E09E8:[U ]CT-436E9104:
    複製代碼

     第一次建立該使用者認證資料時,需加上 -a ( add 之意 ) 參數,爾後想要修改這個使用者的 Samba 密碼,則執行「smbpasswd barry」即可。而當您想把某個使用者從認證檔案中移除時,可執行「smbpasswd -x username」,不然也可以用 vi 進去編輯,直接將該帳號刪除就行了。
[size=+1] [ homes ] 區段說明

 在 smb.conf 裡,會看到一個 homes 的 section,此乃一個特殊的區段設計,其主要作用是為了讓每個認證進來的使用者都能存取自己的家目錄。請注意,homes 這個名稱請勿隨意更改。至於其它相關說明,請參考以下:
  1. [homes] 
  2.    comment = Home Directories
  3.    valid users = %S
  4.    browseable = No
  5.    read only = No
  6.    inherit acls = Yes
複製代碼

 「valid users = %S」,是表示認證進來的使用者會被當成有效的使用者,且在使用者連線成功後,SAMBA 會以使用者的登入帳號名稱作為分享目錄名稱,比如使用者 barry 登入後,就會看到 barry這個分享目錄,因為那個 homes 已經被 barry 名稱取代掉了。

 另外在 [homes] 區段中,並沒有使用 path 去指定路徑,這沒關係啦,因為系統會自動幫您指定到預設的家目錄位置,當然您也可以改變這個預設的路徑,例如當設定成
path = /userdir/%S」時,則在 barry 登入後,對於 barry 這個分享目錄的實際存取路徑為 /userdir/barry。

 再來是「browseable = No」,這可不是說使用者看不到自己的家目錄噢,因為這裡的 browseable 是繼承 global 裡的設定值 ( global 預設是 browseable = Yes ),也就是說每個使用者都能看到自己的家目錄,但對其它 user 來說,您的家目錄是會被隱藏起來的。

 最後是「inherit acls = Yes」,這是說如果目前的目錄有設定 default acl 的話,則將來在此目錄下所新增的子目錄,其權限會繼承這個目錄的 default acl 設定。另外把這個參數設定成 yes 時,會凌駕在 create mask 及 directory mask 之上,但如果該目錄沒設定 default acl 的話,則不受影響。

[size=+1] Client 端測試

 打開網路芳鄰並點選 Suse 主機,此時會出現要求您輸入帳號密碼的對話視窗:
 認證通過後,就可以看到 Suse 主機所分享的目錄:
 有留意到多一個 barry 的分享目錄嗎 ? 這就是 [homes] 區段所帶來的效果。

 另外可嘗試在 Auth 目錄中去新增檔案目錄,並檢視這些檔案目錄的預設權限是不是與 "create mask" 與 "directory mask" 所指定的相同 ? 再來去修改 Auth 目錄下的 file 檔案,看能否成功寫入 ? 萬一練習過程發生問題的話,請再好好檢查一下您相關權限的設定。[size=+1]

 

臉書網友討論
2#
發表於 2011-8-21 00:53:55 | 只看該作者
慢慢來,呵呵  

版主招募中

3#
發表於 2011-11-25 00:52:28 | 只看該作者
謝謝大大的分享啊!


4#
發表於 2011-11-25 00:40:44 | 只看該作者
我在努力中  


*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-5-10 23:00 , Processed in 0.059647 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表