1. 什么是samba?
Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù)。SMB協(xié)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(jī)通過(guò)該協(xié)議可以訪問(wèn)服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源?!緛?lái)自百度百科】
說(shuō)白了,就是客戶端機(jī)器通過(guò)samba使用SMB協(xié)議進(jìn)行和linux服務(wù)器資源共享、編輯等。
2. 下載和安裝samba?
可到這個(gè)鏈接里下載最新的tar包https://download.samba.org/pub/samba/stable/,比如我下載了samba-3.5.8.tar.gz?
解壓:tar -zxvf ?samba-3.5.8.tar.gz
編譯-安裝: cd samba-3.5.8/source3; ./configure && make -j 4; make install
3. 文件配置
cd /usr/local/samba/ (默認(rèn)安裝到該路徑下)
新建lib/smb.conf, 添加如下內(nèi)容:
[global]
display charset: utf-8
unix charset = gbk
dos charset = gbk
workgroup = work
netbios name = work
server string = samba server
security = user
wide links = yes
follow symlinks = yes
unix extensions =no
[work]
comment = work user
path=/home/work
create mask = 0774
directory mask = 0775
writable = yes
valid users = work
browseable = yes
[sharefile]
comment = share user
path=/home/work
public=yes
writable = yes
guest ok = yes
配置解釋?zhuān)?/p>
[global] #全局配置字段
display charset: 指定使用SWAT(一種通過(guò)瀏覽器控制Samba的工具)時(shí)頁(yè)面的默認(rèn)文字編碼
unix charset: 指定Samba所在的CentOS服務(wù)端新建文件或目錄時(shí)的編碼
dos charset: Windows 客戶端的文字編碼
workgroup:工作組,使用大寫(xiě)WORK
netbios name: 顯示出來(lái)的機(jī)器名
server string: samba服務(wù)器說(shuō)明
security: 驗(yàn)證和登錄方式,這里我們用了user ;驗(yàn)證方式有好多種,這是其中一種;另外一種常用的是user的驗(yàn)證方式;如果用share呢,就是不用設(shè)置用戶和密碼了;
wide links: 不允許進(jìn)行符號(hào)連接
follow symlinks:?
unix extensions:?
[work]: 看到的共享目錄
path: 設(shè)置共享的目錄放到哪里
create mask: 設(shè)置新建文件的默認(rèn)權(quán)限
directory mask:設(shè)置創(chuàng)建文件夾時(shí)的默認(rèn)權(quán)限
valid users: 有效用戶(即可以訪問(wèn)該Samba服務(wù)器的用戶)
writetable: 是否可寫(xiě)
browseable: 是否可瀏覽,若可瀏覽意味著工作組下可看到共享文件夾
[sharefile]:共享目錄配置
4. 啟動(dòng)samba
添加samba lib到系統(tǒng)庫(kù),修改~/.bash_profile:
?1) export LD_LIBRARY_PATH=/usr/local/samba/lib:$LD_LIBRARY_PATH
生效:
2) . ~/.bash_profile
添加samba用戶,注意添加的用戶需要是在系統(tǒng)里已存在的用戶,然后設(shè)置密碼:
3) smbpasswd -a work (設(shè)置work用戶的SMB密碼)
啟動(dòng)samba進(jìn)程:
4) cd /usr/local/samba/sbin; ./smbd -D
查看進(jìn)程是否真的啟動(dòng)了或通過(guò)端口139,445判斷
5) ps auxf | grep smbd
?netstat -npl |grep smbd
5. 使用sambd
打開(kāi)Mac Finder,按下CMD+K,輸入你的samba server ip,比如:?
smb://10.10.10.10
右邊有個(gè)+號(hào)可進(jìn)行添加保存,下次使用直接在下拉欄里找就行,不需再次輸入。
連接完成后,會(huì)提示你用『客人』還是『注冊(cè)用戶』登錄。
6. 遇到的問(wèn)題
1)全部的安裝-啟停操作需使用root身份
2)./smbd -D報(bào)錯(cuò):
/usr/local/samba/sbin/smbd: error while loading shared libraries: libwbclient.so.0: cannot open shared object file: No such file or directory
解決辦法:
首先查找這個(gè)so在哪,find / -name libwbclient.so.0
/usr/local/samba/lib/libwbclient.so.0
然后將so的位置放到系統(tǒng)so配置:echo "/usr/local/samba/lib/" >> /etc/ld.so.conf
生效:cd /usr/local/samba/sbin;ldconfig /etc/ld.so.conf
查看是否生效,如果輸出關(guān)于samba的使用方法,那就對(duì)了:/usr/local/samba/sbin/smbd --help
3)在使用samba時(shí),選擇『注冊(cè)用戶』,輸入用戶名和密碼(就是剛才執(zhí)行的smbpasswd的用戶和密碼),一直登錄不了,不知道什么原因。。。因?yàn)樵趕mb.conf里還配置了共享方式,所以更改/usr/local/samba/lib/smb.conf中的security為share,然后Finder中連接登錄時(shí)選擇第一個(gè)『客人』的身份,完美解決。share方式有個(gè)缺陷,注:只能瀏覽,不能write。
參考: