這篇文章主要講解了“Linux中Samba服務(wù)器的編譯安裝以及宏的配制方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Linux中Samba服務(wù)器的編譯安裝以及宏的配制方法”吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了明溪免費(fèi)建站歡迎大家使用!
編譯安裝
查詢系統(tǒng)是否安裝samba
代碼如下:
# rpm -aq | grep samba
yast2-samba-client-2.13.36-0.8
samba-client-3.0.24-2.23
yast2-samba-server-2.13.22-0.8
samba-3.0.24-2.23
卸載原有的samba
代碼如下:
# rpm -e samba-3.0.24-2.23
獲取samba源代碼
http://samba.org/samba/ftp/
獲取samba源文件包(samba-3.0.24.tar.gz 做實(shí)驗(yàn),路徑/home/)
解包源文件包
代碼如下:
# tar -jxf samba-3.0.24.tar.gz
編譯安裝
代碼如下:
# cd /home/samba-3.0.24/source/
新版本的source目錄有兩個(gè):source3目錄里是samba-3.x的源文件,source4目錄里是samba-4.x的源文件
代碼如下:
# ./autogen.sh
# ./configure
samba默認(rèn)安裝在/usr/local/samba目錄
可以通過(guò)指定prefix=your location的方式來(lái)指定安裝目錄:
代碼如下:
# ./configure --prefix=/install/samba
期間,configure提示找不到cups頭文件,于是又先安裝了cups。
代碼如下:
# make
# make install
配置動(dòng)態(tài)鏈接庫(kù)路徑
代碼如下:
# vi /etc/ld.so.conf
加入一行
代碼如下:
/usr/myname/install/samba/lib</p>
<p># ldconfig
執(zhí)行l(wèi)dconfig命令讓配置生效
到安裝目錄
代碼如下:
# cd /usr/local/samba/
準(zhǔn)備配置文件
代碼如下:
# mkdir -v etc/
# cp -v /home/samba-3.0.24/examples/smb.conf.default ./etc/smb.conf
修改配置文件,添加一個(gè)共享test
代碼如下:
# vi ./etc/smb.conf
workgroup = MSHOME 改為你linux所在的工作組
security = share 開(kāi)放共享
在smb.conf最后加上
代碼如下:
[test]
comment = test
path = /home/
public = no
writable = yes
user = kk
檢測(cè)配置文件
代碼如下:
# cp -v ./etc/smb.conf ./lib/
# ./bin/testparm
添加賬戶kk
代碼如下:
# ./bin/smbpasswd -a kk
輸入密碼
啟動(dòng)samba
代碼如下:
# /sbin/service network restart
# ./sbin/smbd -D
# ./sbin/nmbd -D
檢測(cè)是否啟動(dòng)
代碼如下:
# ps aux | grep smb
# ps aux | grep nmb
win7/win8 下訪問(wèn)Samba服務(wù) 密碼出錯(cuò) 問(wèn)題
windows系統(tǒng)中,單擊[開(kāi)始]——[運(yùn)行] 輸入 “secpol.msc”打開(kāi)管理工具,展開(kāi)“本地策略”;
然后,單擊“安全選項(xiàng)”。 雙擊“網(wǎng)絡(luò)安全:LAN Manager 身份驗(yàn)證級(jí)別”;
最后,單擊列表中:發(fā)送LM和NTLMv2,如果已協(xié)商,則使用NTLMv2協(xié)議。
基本的宏的編寫(xiě)
Samba 字符處理系統(tǒng)
1. samba使用多字節(jié)字符串——unix字符串(unix strings)
unix字符串沒(méi)有固定的字節(jié)長(zhǎng)度,但是遵循以下原則:
a. 除非是在終端,否則不能含有NULL;
b. 兼容7位的C字符串(C strings),對(duì)于C中的常量字符和字符串,其每一位都要和unix字符(串)中的位完全等同;
c. 大小寫(xiě)轉(zhuǎn)換是,轉(zhuǎn)換后的字符(串)不能占更多的位;
d. 能夠準(zhǔn)確接收客戶端傳入的全部字符。
UTF-8和大多數(shù)多字節(jié)的亞洲語(yǔ)言都能夠很好的兼容unix。UCS2是例外(含NULL)。
在smb.conf中定義unix charset。
在與客戶端發(fā)送或接收數(shù)據(jù)的時(shí)候,為了兼容客戶端的字符編碼,需要使用pull_(接收) 和push_(發(fā)送)開(kāi)頭的函數(shù)在buffer中格式化數(shù)據(jù)。
lp_開(kāi)頭的函數(shù),返回值全部是unix strings。
2. 相關(guān)宏定義(byteorder.h)
CVAL(buf,pos) 將buf中pos處的字節(jié)以無(wú)符號(hào)字符返回
PVAL(buf,pos) 將buf中pos處的字節(jié)以無(wú)符號(hào)整型返回
SCVAL(buf,pos,val) 將buf中pos處的字節(jié)設(shè)置為val
SVAL(buf,pos) 將buf中pos處的字節(jié)以無(wú)符號(hào)小端整型(16bit,ushort)返回
IVAL(buf,pos) 將buf中pos處的字節(jié)以無(wú)符號(hào)小端整型(32bit)返回
SVALS(buf,pos) 將buf中pos處的字節(jié)以有符號(hào)小端整型(16bit)返回
IVALS(buf,pos) 將buf中pos處的字節(jié)以有符號(hào)小端整型(32bit)返回
SSVAL(buf,pos,val) 將buf中pos處的無(wú)符號(hào)小端整型(16bit)值設(shè)置為val
SIVAL(buf,pos,val) 將buf中pos處的無(wú)符號(hào)小端整型(32bit)值設(shè)置為val
SSVALS(buf,pos,val) 將buf中pos處的有符號(hào)小端整型(16bit)值設(shè)置為val
SIVALS(buf,pos,val) 將buf中pos處的有符號(hào)小端整型(32bit)值設(shè)置為val
RSVAL(buf,pos) 將buf中pos處的字節(jié)以無(wú)符號(hào)大端整型(16bit)返回
RIVAL(buf,pos) 將buf中pos處的字節(jié)以無(wú)符號(hào)大端整型(32bit)返回
RSSVAL(buf,pos,val) 將buf中pos處的無(wú)符號(hào)大端整型(16bit,ushort)值設(shè)置為val
RSIVAL(buf,pos,val) 將buf中pos處的無(wú)符號(hào)大端整型(32bit)值設(shè)置為val
Samba DEBUG SYSTEM
DEBUG書(shū)寫(xiě)規(guī)則
代碼如下:
>debugfile<:=={>debugmsg<}
>debugmsg<:==>debughdr<’/n’>debugtext<
>debughdr<:==’[’TIME’,’LEVEL’]’FILE’:’[FUNCTION]’(’LINE’)’
>debugtext<:=={>debugline<}
>debugline<:==TEXT’/n’
其中,
TIME 時(shí)間戳,
LEVEL DEBUG級(jí)別,
FILE DEBUG信息產(chǎn)生的源文件,
FUNCTION DEBUG信息產(chǎn)生的函數(shù),
LINE DEBUG信息產(chǎn)生的行數(shù),不支持 __FUNCTION__ 宏的顯示不出來(lái),
TEXT 不包含/n的DEBUG信息
EG:
代碼如下:
[2011/03/17 08:33:46, 3] smbd/process.c:switch_message(914)
switch message SMBclose (pid 12153) conn 0x7f60e9a2d330
[2011/03/17 08:33:46, 3] smbd/reply.c:reply_close(3298)
close directory fnum=6574
DEBUG()宏
DEBUG(para1, para2);
其中,
para1 DEBUG級(jí)別,凡是小于等于全局變量DEBUGLEVEL的,該DEBUG信息將輸出到日志,
para2 DEBUG信息,即書(shū)寫(xiě)規(guī)則中的TEXT。在TEXT中,每遇到'/n',將產(chǎn)生一條新的日志(書(shū)寫(xiě)規(guī)則中的debugfile);沒(méi)遇到'/n'時(shí),追加TEXT。
EG:
代碼如下:
DEBUG(0, ("The test returned "));
if(test())
{
DEBUG(0, ("True"));
}
else
{
DEBUG(0, ("False"));
}
DEBUG(0, ("./n"));
假設(shè)test() == true,則會(huì)輸出:
代碼如下:
[2010/07/30 16:00:51, 0] file.c:function (256)
The test returned True.
DEBUGADD()宏
DEBUGADD(para1, para2);
其中,
para1 DEBUG級(jí)別,凡是小于等于全局變量DEBUGLEVEL的,該DEBUG信息將輸出到日志,
para2 DEBUG信息,即書(shū)寫(xiě)規(guī)則中的TEXT。在TEXT中,每遇到'/n',將產(chǎn)生TEXT新行;沒(méi)遇到'/n'時(shí),追加。它與DEBUG()的區(qū)別就是,它從不產(chǎn)生書(shū)寫(xiě)規(guī)則中的debughdr。
EG:
代碼如下:
DEBUG(0, ("This is the first line./n"));
DEBUGADD(0, ("This is the second line./n This is the third line./n"));
輸出:
代碼如下:
[2010/07/30 16:00:51,0] file.c:function(512)
This is the first line.
This is the second line.
This is the third line.
DEBUGLVL()宏
BOOL DEBUGLVL(para1);
其中,
para1 DEBUG級(jí)別,凡是小于等于全局變量DEBUGLEVEL的,該宏返回true,
該函數(shù)主要為了解決書(shū)寫(xiě)規(guī)則中TEXT太長(zhǎng)造成的不便。
EG:
代碼如下:
DEBUG(3, ("send_local_master_announcement: type %x forname %s on subnet %s forwork group, type, global_myname, subrec->subnet_name, work->work_group));
可以替換為:
代碼如下:
DEBUG(3, ("send_local_master_announcement: "));
DEBUGADD(3, ("type %x forname %s", type, global_myname));
DEBUGADD(3, ("on subnet %s", subrec->subnet_name));
DEBUGADD(3, ("for work group %s/n", work->work_group));
更可以替換為:
代碼如下:
if(DEBUGLVL(3))
{
dbgtext("send_local_master_announcement: ");
dbgtext("type %x forname %s", type, global_myname);
dbgtext("on subnet %s", subrec->subnet_name);
dbgtext("for workgroup %s/n", work->work_group);
}
dbgtext()函數(shù)
用于調(diào)用相關(guān)函數(shù)輸出DEBUG信息到日志文件,即輸出書(shū)寫(xiě)規(guī)則中的TEXT。
函數(shù)調(diào)用vslprintf()函數(shù)對(duì)TEXT格式化后,調(diào)用format debug text()函數(shù)將TEXT輸出。
一般在DEBUGLVL()宏中使用。
dbghdr()函數(shù)
用于輸出DEBUG信息中的頭信息,即輸出書(shū)寫(xiě)規(guī)則中的debughdr。
不對(duì)輸出內(nèi)容進(jìn)行格式化處理。
一般在DEBUG()宏 & DEBUGADD()宏中使用。
format debug text()函數(shù)
用于輸出DEBUG信息到日志文件,即輸出書(shū)寫(xiě)規(guī)則中的TEXT。
函數(shù)將要輸出的TEXT保存到buffer中,直到找到一個(gè)'/n',增加縮進(jìn),調(diào)用Debug1()函數(shù),輸出TEXT到日志,并清空buffer。
感謝各位的閱讀,以上就是“Linux中Samba服務(wù)器的編譯安裝以及宏的配制方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Linux中Samba服務(wù)器的編譯安裝以及宏的配制方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
文章題目:Linux中Samba服務(wù)器的編譯安裝以及宏的配制方法
網(wǎng)頁(yè)網(wǎng)址:http://chinadenli.net/article14/jiooge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、商城網(wǎng)站、網(wǎng)站內(nèi)鏈、微信公眾號(hào)、外貿(mào)建站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)