本文討論範圍是samba使用過程中遇到的問題。
問題1:在win2000用戶端,用中文做檔案名稱,到linux的命令列下,變成亂碼怎麼解決?
解決:可能是命令列下不支援unicode,為了通用,強制samba使用GB2312就可以了在[global]小節加一行: unix charset = GB2312 後注:最好設定為GBK,否則某些字元會出問題,造成漫遊帳號不能用。
問題2:在共用目錄設定中可以用comment做註解,但是中文字元在win用戶端看過來會亂碼,怎麼解決?
解決:在[global]小節,添加一行: display charset = GB2312 就可以了,要求samba是3.0以上。
問題3:如何開放共用資源給匿名(guest)使用者?
解決:在[global]小節,添加一行: map to guest = bad user 然後在相應的共用資源小節增加2行: guest account = nobody guest ok = Yes 這樣所有沒有帳號對應和密碼錯誤的使用者連上來,訪問這個共用資源時,它的對應使用者就是nobody。
問題4:在某些win2000的機器上面不能修改域的帳號的密碼,samba的log提示 check_oem_password: incorrect password length (-312332314)。
解決: 卸載win2k的hotfix補丁:KB828741 或者下載更新當前最新版的samba3.04。
問題5: 原來使用的是發行版打包的samba,現在要下載最新版源碼編譯安裝,怎麼把原來的設定保留?
解決: 先停掉原來的samba服務:
/etc/init.d/smb stop
備份原來的域帳號資料到:
/root/anheng.backup: pdbedit -e smbpasswd:/root/anheng.backup
再編譯安裝新的samba:
./configure --prefix=/usr/local/samba
--enable-cups --with-smbmount --with-acl-support make make install
這樣新的samba就安裝在:
/usr/local/samba了smb.conf
放在了:
/usr/local/samba/lib/smb.conf
把老的smb.conf複製到上面的目錄:
cp /etc/samba/smb.conf /usr/local/samba/lib/smb.conf
用testparm測試設定檔案是否有問題,要指定絕對路徑:
/usr/local/samba/bin/testparm
如果直接執行testparm,執行的將是老版本的samba的testparm 一般不會有問題,我這裡遇到的一個問題是說passwd程式沒有找到,把smb.conf中行 passwd program = passwd %u 改成 passwd program = /usr/bin/passwd %u 最後,修改啟動指令碼,/etc/init.d/smb 將裡面的nmbd和smbd前面增加絕對路徑/usr/local/samba/sbin 就全部安裝完成了。啟動之前,恢複域帳號: pdbedit -i smbpasswd:/root/anheng.backup 然後就可以啟動了/etc/init.d/smb start 新安裝後,由於程式和設定檔案跟原來發行版的linux的目錄位置不一致,如果你使用webmin進行管理,就要重新設定一下webmin裡面samba模組的配置資訊。