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