2008年9月26日 星期五

Debian Samba 安裝設定

  • 安裝Samba

    debian:~# apt-get install samba
    debian:~# apt-get install samba-client
    debian:~# apt-get install smbfs

  • 設定samba

    Server--
    |----share (/mnt/share),可讓任何讓上傳修改公用資料夾
    |----tony (/home/tony),僅讓tony可以登入此資料夾

    debian:/etc/samba# vi smb.conf

    add

    [global]
    security = SHARE

    [share]
    comment = share
    path = /mnt/share #必需設定為777才能讓任何人進入
    read only = No
    guest ok = Yes

    [tony]
    comment = tony
    path = /home/tony #目錄必需讓vaild users的指定的使用者
    valid users = tony #有權限存取
    read only = No
    only user = Yes

    save&exit

    debian:~# /etc/init.d/samba restart

    設定使用者帳號密碼,本機帳號必需存在才能設定其smb的密碼

    debian:~# smbpasswd tony
    New SMB password:
    Retype new SMB password:

  • 測試

    Linux:

    debian:~# smbclient -L ip 列出分享資料夾
    debian:~# smbclient //ip/tony 測試密碼是否可以正常使用

    WinXP:

    開啟網路的芳鄰,或是直接在開始->執行輸入"\\ip"做測試,如要斷線請選上方工具->中斷網路磁碟機即可

  • 在Debian中利用smbmout將samba掛載至資料夾中

    解決語系的問題

    debian:/etc/samba# vi smb.conf

    add

    [global]
    dos charset = CP950
    unix charset = UTF8
    display charset = UTF8

    sav&exit

    debian:~# /etc/init.d/samba restart
    debian:~# smbmount //ip/share /mnt/tony_share -o iocharset=utf8,codepage=cp950,dmask=777,fmask=777

    iocharset及codepage為語系設定,dmask為目錄權限,fmask為檔案權限

  • 老師的教學資料



    Sambs 與 NetBIOS over TCP/IP

    在 UNIX/Linux 環境中,主機與主機的檔案分享可以透過 NFS(Network File System)進行,但若是環境中還有 Windows 系統,則因 Windows 系統未支援 NFS 而無法達到檔案及印表機的資源分享。Samba Server 是一套好軟體,它可以建立 Linux 與 Linux 之間或是 Linux 與 Windows 之間的檔案與印表機分享,及所謂的『網路芳鄰』。

    Windows 環境下的網路芳鄰使用 NetBIOS 通訊協定。NetBIOS 通訊協定為 IBM 所創造與發展,用在區域網路環境中機器與機器連線的基本通訊協定,後因效能不佳而放棄繼續研發與使用。Microsoft 在發展 Windows 95 系統時,將 NetBIOS 通訊協定應用在網路芳鄰,讓 Windows 系統透過該通訊協定達到資源方想的目的。

    不過,NetBIOS 除了效能不佳外,始終存在著無法跨越路由問題。在網際網路風行後,TCP/IP通訊協定嚴然成為機器通訊的最佳方式,而機器與機器間的資源分享,也因為網路連線的範圍擴大,需要一套能夠跨越路由的通訊協定。於是將 NetBIOS 放到 TCP/IP 上,搭載以 TCP/IP 為基礎的通訊,讓 NetBIOS 可以跨越路由,稱為 NetBIOS over TCP/IP。

    工作群組與網域

    網路作主要的用途是進行資源分享與訊息交換,最小的網路是將兩台電腦以電纜線連接來達到資源分享。一般的小型企業電腦數目不多,透過簡單的電纜或集線器即可形成一個工作群組,在工作群組內的機器都擁有資源釋出分享的能力,而為了安全,美台機器會為分享出來的資源作密碼保護,要存取者必須獲得密碼後登入來可以使用資源。在不同機器會有不同的資源與密碼,資源存取者需要記憶美台不同機器的資源密碼,顯然是很不方便。

    網域的出現,解決了上述的問題。在網域中會有一部機器擔任網域的主控站(稱為 PDC,Primary Domain Controller),PDC 將網域中的帳號與資源進行集中的管理,工作端只需要登入到網域中,便可以依據權限進行資源存取。

    設定

    Samba Server 一般預設的設定目錄為 /etc/samba,設定檔是 smb.conf,在設定檔案內,主要要設定伺服器啟動的相關設定以及資源分享兩部份。

    [Global]

    * workgroup = fcu_nw #設定群組或網域名稱
    * server string = Samba Server #主機的註解
    * security = user #設定 Samba 扮演的角色(share、User、Server、Domain、AD)
    * encrypt passwords = true #啟用密碼加密
    * passdb backend = tdbsam #新版 Samba 使用者帳號存放的方式以資料庫方式存在
    * smb passwd file = /etc/samba/smbpasswd #使用舊版的使用者帳號存放的方式,指定檔案路徑及名稱。
    * obey pam restrictions = yes #使用 PAM 認證機制
    * unix password sync = no #Windows 與 Linux 密碼同步化
    * passwd program = /usr/bin/passwd %u #密碼變更指令
    * passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* . #密碼變更交談方式內容
    * pam password change = no #密碼變更是否使用 PAM 而不用 passwd program
    * domain master = yes #指定 Samba 為 PDC
    * domain logons = yes #使用網域登入方式
    * logon path = \\%N\profiles\%U #用戶登入後所使用的 Profile 放置路徑
    * logon drive = H: #用戶登入後自動將家目錄連結成指定的磁碟機
    * logon home = \\%N\%U #用戶登入後的使用者家目錄
    * logon script = logon.cmd #用戶登入後執行的程序稿
    * wins support = no #是否讓 Samba 當成 WINS Server
    * wins server = 192.168.1.1 #指定使用哪一台 WINS Server(與 wins support 只能二選一)
    * local master = yes #為工作群組角色時,是否作為 Local Master。
    * os level = 33 #作業系統等級 (95->16、NT Workstation->32、NT Server->64)
    * add user script = /usr/sbin/adduser –quiet –disabled-password –gecos 「」 %u #新增用戶的指令
    * interfaces = 127.0.0.0/8 eth0 #指定 Samba 在哪些介面與 IP 監聽
    * host allow = 192.168.10. 127. 140.134.210. #允許哪些 IP 主機連線
    * socket options = TCP_NODELAY #指定伺服器與用會對話介面
    * name resolve order = lmhosts host wins bcast #主機名稱解析方式的順序
    * dns proxy = no #是否使用 DNS 作名稱解析

    [Share]

    * [Temp] #資源分享的名稱
    * comment = Test Share Directory #註解
    * path = /tmp #實際目錄路徑
    * public = yes #是否為公用資料夾
    * browseable = yes ##是否可被瀏覽
    * printable = no #是否為印表機圖示
    * writable = yes #是否可寫入
    * read olny = no #是否只能讀取
    * guest ok = no #是否允許來賓帳號存取

    設定檔的語法檢查

    Samba 提供 testparm 指令來作設定檔的語法檢查。

    # testparm

    服務的啟動

    Samba Server 啟動時有兩項服務會議起啟動,一項是 Samba 本身(smbd),另一項是 NetBIOS 通訊協定(nmbd)。

    # /etc/init.d/samba restart

    使用者帳號的建立

    * 必須是系統內已經存在的使用者帳號
    * 根據設定檔可以選擇使用新版的資料庫來存放使用者帳號。
    * 若設定檔內指定使用 smb passwd file 來存放設定檔,則需要事先建立指定的 smbpasswd 檔案。

    [使用資料庫存放]

    1. 設定檔案內指定 passdb backend = tdbsam。
    2. 重新啟動 Samba # /etc/init.d/smbd restart。
    3. 以 smbpasswd 建立使用者 # smbpasswd -a user01。

    [使用 smb passwd file]

    1. 設定檔案內指定 smb passwd file = /etc/samba/smbpasswd。
    2. 重新啟動 Samba # /etc/init.d/smbd restart。
    3. 以 smbpasswd 建立使用者 # smbpasswd -a user01。

    Client 端的連接

    [文字模式下使用 smbclient 指令]

    * # smbclient -L localhost 列出主機清單
    * # smbclient -L //teacher 列出 teacher 主機分享的資源清單
    * # smbclient //Teacher/Temp -U user01 以 User01 登入 Teacher 主機存取分享的 Temp 檔案資源
    * 登入後操作指令同 FTP。

    [X 視窗環境下使用 LinNeighorhood]

    * 安裝 # apt-get install linneighorhood
    * X 視窗下的開始選單選擇程式啟動。

    [Windows 系統下直接使用網路芳鄰]


沒有留言: