在*nix上安裝samba的方法有很多,debian系的apt和.deb安裝,redhat系的yum和.rpm包安裝,還有通用的ios掛在安裝和源代碼編譯安裝,我介紹的是使用下載的源代碼安裝。原因有兩點,其一是源代碼安裝是通用的方法,在任何機器,不同操作系統下都可以使用,其次,源代碼只有一份,在samba官網可以下載,安全可靠,且在有需要的情況下可以自己拓展。
1.准備編譯環境gcc和python2.7
(gcc和python是*nix的標配,但是有些機器的python版本可能過低,一般我們推薦使用2.7版本。samba一般要求為2.5+,關於新版本python的安裝可以看另外一篇博客:http://www.cnblogs.com/ich1990/p/3779608.html)
2.下載samba源碼
http://www.samba.org/samba/download/
3.解壓
tar -tzxf samba-x.x.x.tar.gz
cd samba-x.x.x
4.配置
1)查找configure文件
find . -name configure
#版本3+在source3里,4+在samba根目錄下
cd source3
2)進行配置
./configure --prefix=/usr/local/smaba
5.編譯
make
make install
6.復制配置文件(有些版本不需要,但建議備份原配置文件)
cp examples/smb.conf.default /usr/local/samba/lib/smb.conf #或者
cp /usr/local/samba/lib/smb.conf /usr/local/samba/lib/smb.conf.copy
7.配置動態鏈接庫
vi /etc/ld.so.conf.d/samba.conf #輸入
/usr/local/samba/lib
#保存關閉
wq
#在默認搜尋目錄(/lib和/usr/lib) 以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件
ldconfig
8.配置共享文件
find . -name smb.conf
#一般在這個文件夾,如果不是,請替換為上個指令搜索到的結果
vi /usr/local/samba/lib/smb.conf
(1)全局配置
#找到全局設置標簽,在下面進行配置
[global]
#找到此行,改為workgroup = WORKGROUP,這里以Windows XP默認的“WORKGROUP”為例
workgroup = MYGROUP
#找到此行,去掉行首的“;”,並制定訪問限制改為hosts allow = x.x.x. 127.,指定內網IP地址及本地,只允許這兩種情況的訪問
#內網IP請自行用ifconfig查詢
; hosts allow = 192.168.1. 192.168.2. 127.
(2)配置最簡單訪問目錄幾個基本屬性
#windows客戶端查看時看到的文件夾名
[share]
#共享目錄位置,要系統中存在的目錄,也可以配置完再創建
path = /home/samba/share
#設置用戶
valid users = user
#是否只讀,其同義選項有writable
read only = no
#設定該共享服務是否能夠被游客訪問,其同義選項有guest ok
public = yes
9.給配置的共享目錄設置權限
#如剛才配置的共享目錄不存在則創建
mkdir /home/samba/share
#設置共享目錄歸屬為root
chown -R root. /home/samba/share
#將共享目錄屬性設置為777
chmod 777 /home/samba/share
ln -s /usr/local/samba/bin/smbpasswd /usr/bin/smbpasswd
11.將linux系統已存在用戶user加入到Samba用戶庫
#Windows訪問Samba共享目錄時需要輸入此用戶名和密碼
smbpasswd -a user
#在此輸入密碼
New SMB password:
#重復密碼
Retype new SMB password:
#激活用戶
smbpasswd -e user
12.測試是否安裝成功
cd /usr/local/samba/bin
./testparm
如果結果中沒錯誤,就表明安裝成功
13.啟動,執行下列命令
cd /usr/local/samba/sbin ./nmbd -D ./smbd -D
(之后在windows中,輸入\\x.x.x.x即samba服務器的地址,輸入剛才設定好的用戶名和密碼之后即可以訪問了)