Linux系統:LFS 6.1 in vmware虛擬機器
軟體版本: samba-3.0.14a.tar.bz2
安裝過程
tar xvf samba-3.0.14a.tar.bz2
cd samba-3.0.14a\source
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-piddir=/var/run --with-fhs --with-smbmount
make
install -v -m755 -d /var/cache/samba
make install
mv -v /usr/lib/samba/libsmbclient.so /usr/lib
ln -v -sf ../libsmbclient.so /usr/lib/samba
chmod -v 644 /usr/include/libsmbclient.h
install -v -m755 nsswitch/libnss_win{s,bind}.so /lib
ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2
ln -v -sf libnss_wins.so /lib/libnss_wins.so.2
if [ -f nsswitch/pam_winbind.so ]; then
install -v -m755 nsswitch/pam_winbind.so /lib/security
fi
install -v -m644 ../examples/smb.conf.default /etc/samba
install -v -m644 ../docs/*.pdf /usr/share/samba
cd ../..
rm -rf samba-3.0.14a
好了,裝完啦,測試一下smbmount
因為我是用虛擬機器裝的Linux系統,所以可以在主機的WINDOWS中共用一個目錄出來,共用目錄許可權指定為某個WINDOWS帳戶,然後
mkdir ~/win_share
smbmount //host_ip/my_share_dir ~/win_share -o "username=XXXX,password=YYYYY"
失敗,提示沒有 /etc/samba/smb.conf 檔案
檢查安裝過程,原來是前面 copy smb.conf.default 檔案時,沒有去掉後面的.default副檔名
cp /etc/samba/smb.conf.default /etc/samba/smb.conf
再smbmount則成功(此時不需要配置smb.conf檔案的具體內容,那是smb伺服器才需要的)。
好,現在已經可以很方便的與訪問其它系統的檔案了。
接下來是配置smb服務
修改/etc/samba/smb.conf裡面的內容,根據檔案中的注釋就可以修改了
這裡有個比較簡單的方法,按這樣配置
[homes]
comment = Home Directories
path = %H
browseable = yes
writable = yes
valid users = %S
create mode = 0600
directory mode = 0700
locking = no
其中的 %S 會替換為 系統使用者名稱,%H 會替換為所對應的使用者主目錄。
則用不同linux系統的使用者訪問,系統自動化佈建為其使用者主目錄,如crazywill使用者,則訪問\\lfs-linux-ip\crazywill\ 以及 \\lfs-linux-ip\homes\ 就相當於 linux下的 /home/crazywill/ 目錄,擁有對使用者自己目錄下所有的檔案許可權。
修改完後,
smbd -D
nmbd -D 啟動
ps -aux | grep smb
檢查不到有smbd進程運行
懷疑是 smb.conf 配置有問題
testparm
檢查設定檔內容
似乎沒問題才對
再繼續檢查 smb 狀態 和 記錄檔
smbstatus
cat /var/log/samba/smbd.log
檢查日誌
[2006/08/10 23:12:37, 0] smbd/server.c:main(798)
smbd version 3.0.14a started.
Copyright Andrew Tridgell and the Samba Team 1992-2004
[2006/08/10 23:12:37, 0] printing/pcap.c:pcap_cache_reload(149)
Unable to open printcap file /etc/printcap for read!
不能讀取/etc/printcap 檔案
檢查當前環境確實沒有該檔案,因為現在沒有安裝印表機,先建立一個空檔案給它
echo "" > /etc/printcap
再啟動,仍失敗,檢查日誌
[2006/08/10 23:18:11, 0] smbd/server.c:main(798)
smbd version 3.0.14a started.
Copyright Andrew Tridgell and the Samba Team 1992-2004
[2006/08/10 23:18:11, 1] auth/auth_util.c:make_server_info_sam(840)
User nobody in passdb, but getpwnam() fails!
是使用者nobody 有問題,
檢查/etc/passwd 沒有該使用者,添加它,再啟動還是不行。
運行
smbpasswd -x nobody
刪除nobody使用者,刪除失敗
真是有點莫名其妙,反覆操作了幾次後就成功了,不知道問題在哪裡。
搞定 nobody後,終於非常辛苦的啟動smbd進程成功了,檢查日誌可知。
慶祝一下。
用smbclient檢查一下samba配置正常了沒
smbclient -L localhost -U crazywill
測試連接
提示輸入密碼,輸入LINUX本地帳號crazywill的密碼,錯誤。
反覆檢查,最後發現需要先運行
smbpasswd -a crazywill
設定 smb 登入使用者 crazywill 的密碼
之後再 smbclient 測試正常,
用windows 串連 \\lfs-linux-ip\crazywill
輸入使用者名稱 crazywill和剛設定好的密碼
正常登入
新增和修改目錄、檔案操作成功。
yeah.....