精華區beta FreeBSD 關於我們 聯絡資訊
各位前輩... 這是我前一陣子在板上問大家的問題... 經過和大家討論, 以及翻了好幾本書及參考眾多線上的文件... 終於弄出來了, 把心得跟大家分享. 目前 NT 及 Windows 2000 都能加入 SAMBA 所模擬的 NT 網域, 而且登入/登出都正常, 個設的桌面設定/我的最愛...等一些個人相關設定 也都能跟著帳號走. 但 Windows XP 則只能加入網域, 但是重開機後卻無法登入, 不知道問題出在那裡, 希望各位前輩看了我的設定方法後能幫我指出錯誤. 以下為我的設定步驟... 全部以 root 身份進行... 1. 先利用 ports 安裝 samba #cd /usr/ports/net/samba #make install clean 2.設定 smb.conf (設定範例於後面列出) #cd /usr/local/etc #ee smb.conf (或使用您習慣的編輯器, 如 pico 或 vi) 3.設定 samba.sh (讓 samba 開機後自動執行) #cd /usr/local/etc/rc.d #ee samba.sh (samba.sh 範例於後面列出) #chmod 755 samba.sh (將 samba.sh 設為可執行) 4.新增 root 帳號 (1)由於 samba 所使用的帳號和 bsd 的帳號是不一樣的, 所以要 新增 samba 自己的帳號, 通常一安裝好samba 就會自動把 bsd 裡 原有的帳號轉好一份了. 放在 /usr/local/private/smbpasswd 裡, (2)可以把這個檔案刪除, 然後自己建立要開放給那些使用者使用的帳號. 而且在建立samba帳號之前, 一定要確認這個帳號在 bsd 裡已經存在了, 否則無法 建立 samba 帳號. (3)samba 事先轉好的帳號, 都沒有設定密碼, 如果要使用那些帳號, 您得 使用 smbpasswd 這個指令來設定密碼, 例如要設定 smallduh 這個帳號的 samba密碼, 要使用 smbpasswd smallduh , 同理, 要設定 samba 的 root 帳號, 就用 smbpasswd root (4)如果要新增samba 的使用者(一定要確認bsd裡已存在這個帳號), 那就用 smbpasswd -a [使用者帳號] , 以 smallduh 為例: smbpasswd -a smallduh (5)設定samba的 root 帳號是為了將 NT client 加入網域時會用到. 所以現在 , 如果要新增就用 smbpasswd -a root 如果要用原來自動轉好的帳號檔, 就用 smbpasswd root 5.新增機器帳號(電腦帳號) (1)這裡指的是 Client 端的帳號, 要加入 NT 網域, 並不是只有使用者帳號就可以, NT 網域之所以讓企業界那麼喜歡, 我想有一個可能的原因就是公司內的電腦都可以受到 伺服器的控管, 任何人要使用電腦, 都一定要輸入帳號密碼, 而且個人的設定可以 跟著您的帳號移動, 而伺服器要如何控管公司的電腦呢? 不用懷疑, 電腦本身也要有 帳號才行, 利用這個帳號向伺服器註冊, 申請加入網域。所以這就是為什麼在這裡要 設定電腦的帳號。 (2)在 bsd 裡, 最好先開個群組給電腦帳號使用, 所以先編輯 /etc/group 這個檔案. #ee /etc/group 在檔案內增加一行. mechines:*:9000: 群組名稱為 mechines , gid 為 9000 ps.後來發現沒設也可以跑 (3)手動增加電腦帳號(FreeBSD的) #vipw 然後在檔案內的適當位置增加帳號 範例如下: sd1$:*:9900:9000::0:0:Win2000_Client:/dev/null:/sbin/false sd1 是我的電腦帳號 , 後面一定要加一個 '$' 電腦帳號是 windows 2000或 NT client 的電腦名稱(網芳上看到的那個) 9900 是這個帳號的 uid (每一個不要重覆) 9000 是這個帳號的 gid (要跟 /etc/group 對應) win2000_Client 是註解, 隨便打 . 其餘的不要改 一台電腦一個帳號. (4)新增samba的電腦帳號 前面已經提過了, 新增samba 的帳號前, 一定要確認FreeBSD裡已有這個帳號. 指令:smbpasswd -a -m [電腦帳號] 以(3)的 sd1為例: # smbpasswd -a -m sd1 ps. 不用加 '$' 符號. 6.先把 BSD 重開機,讓 samba 啟動,然後把 NT 或 Windows 2000 加入網域吧! 以 windows 2000為例, (1)在〔我的電腦〕按Mouse右鍵,選擇〔內容〕,然後選擇〔網路識別〕 (2)點選右下角〔內容〕,然後注意電腦名稱是不是前面 5-(4)裡有設定的電腦帳號. 如果沒有的話,趕快設一個. (3)選擇下面那個成員隸屬的〔網域〕,然後輸入smb.conf 裡所指定的 workgroup項。 (4)輸入samba的 root 的帳號及密碼,等20秒左右就會看到 「歡迎加入xxx網域」的字樣。 (重開機後,以後都得輸入帳號密碼才能使用。可以是 Windows 2000本機的密碼,也 可以是samba的帳號密碼。 ##smb.conf 範例 [global] ##log檔的位置(記得建目錄) log file = /var/log/samba/log.%m max log size = 50 domain master = yes default = netlogon dns proxy = no preserve case = yes domain logons = yes printing = bsd encrypt passwords = yes server string = Samba Server mangle case = yes ##群組名稱(網域名稱) workgroup = SDNET ##那些ip可連上來 這邊指 192.168.1.xxx都可以 hosts allow = 192.168.1. ##伺服器名稱 netbios name = SambaServer socket options = TCP_NODELAY case sensitive = yes local master = yes security = user ##OS level 不能比 2000或nt小 os level = 65 wins support = true domain admin group = @wheel ##使用者的個人漫遊設定檔的位置 logon path = \\%N\%U\profiles ##登入後家目錄指定為 H 磁碟 logon home = \\%N\%U logon drive = H: ##以下兩行一定要,否則中文檔名會不正常 client code page=950 coding system=cap [homes] path = %H writeable = yes comment = Home Directories sync always = yes locking = no create mode = 0600 directory mode = 0700 ##這個一定要才可以 [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = no writeable = no share modes = no browseable = no locking = no ############## ##/usr/local/etc/rc.d/samba.sh 範例 #!/bin/sh smbspool=/var/spool/samba pidfiledir=/var/run smbd=/usr/local/sbin/smbd nmbd=/usr/local/sbin/nmbd # start if [ "x$1" = "x" -o "x$1" = "xstart" ]; then if [ -f $smbd ]; then if [ -d $smbspool ]; then rm -f $smbspool/* fi echo -n ' Samba' $smbd -D $nmbd -D fi # stop elif [ "x$1" = "xstop" ]; then kill `cat $pidfiledir/smbd.pid` kill `cat $pidfiledir/nmbd.pid` fi ################### 到此為止 ############ 如果有任何問題歡迎跟我討論... 另外, 謝謝各位所提供的協助.. -- ※ Origin: 交大資工鳳凰城資訊站 <bbs.csie.nctu.edu.tw> ◆ From: ice-cream.idv.tw