濮阳杆衣贸易有限公司

主頁 > 知識庫 > Linux中Samba服務器的編譯安裝以及配置的宏的寫法

Linux中Samba服務器的編譯安裝以及配置的宏的寫法

熱門標簽:萊蕪移動外呼系統(tǒng) 小語股票電銷機器人 高德地圖標注在電腦上 軟件電話機器人 柯城手機地圖如何做地圖標注 金華呼叫中心外呼系統(tǒng)廠家 杭州電銷機器人有效果嗎 襄陽地圖標注店 申請400電話流程好嗎

編譯安裝
查詢系統(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 做實驗,路徑/home/)
解包源文件包

復制代碼
代碼如下:

# tar -jxf samba-3.0.24.tar.gz

編譯安裝

復制代碼
代碼如下:

# cd /home/samba-3.0.24/source/

新版本的source目錄有兩個:source3目錄里是samba-3.x的源文件,source4目錄里是samba-4.x的源文件
 
復制代碼
代碼如下:

# ./autogen.sh
# ./configure

samba默認安裝在/usr/local/samba目錄
可以通過指定prefix=your location的方式來指定安裝目錄:
復制代碼
代碼如下:
# ./configure --prefix=/install/samba

期間,configure提示找不到cups頭文件,于是又先安裝了cups。

復制代碼
代碼如下:

# make
# make install

配置動態(tài)鏈接庫路徑
 
復制代碼
代碼如下:

# vi /etc/ld.so.conf

加入一行

復制代碼
代碼如下:

/usr/myname/install/samba/lib/p> p># ldconfig

執(zhí)行l(wèi)dconfig命令讓配置生效

到安裝目錄

復制代碼
代碼如下:

# cd /usr/local/samba/

準備配置文件
 
復制代碼
代碼如下:

# mkdir -v etc/
# cp -v /home/samba-3.0.24/examples/smb.conf.default ./etc/smb.conf

修改配置文件,添加一個共享test

復制代碼
代碼如下:

# vi ./etc/smb.conf
workgroup = MSHOME 改為你linux所在的工作組
security = share 開放共享

在smb.conf最后加上

復制代碼
代碼如下:

[test]
comment = test
path = /home/
public = no
writable = yes
user = kk

檢測配置文件

復制代碼
代碼如下:

# cp -v ./etc/smb.conf ./lib/
# ./bin/testparm

添加賬戶kk

復制代碼
代碼如下:

# ./bin/smbpasswd -a kk

輸入密碼
 

啟動samba

復制代碼
代碼如下:

# /sbin/service network restart
# ./sbin/smbd -D
# ./sbin/nmbd -D

檢測是否啟動

復制代碼
代碼如下:

# ps aux | grep smb
# ps aux | grep nmb

 
win7/win8 下訪問Samba服務 密碼出錯 問題
    
    windows系統(tǒng)中,單擊[開始]——[運行] 輸入 “secpol.msc”打開管理工具,展開“本地策略”;
    然后,單擊“安全選項”。 雙擊“網(wǎng)絡安全:LAN Manager 身份驗證級別”;
    最后,單擊列表中:發(fā)送LM和NTLMv2,如果已協(xié)商,則使用NTLMv2協(xié)議。

基本的宏的編寫

Samba 字符處理系統(tǒng)
1.  samba使用多字節(jié)字符串——unix字符串(unix strings)
unix字符串沒有固定的字節(jié)長度,但是遵循以下原則:
    a. 除非是在終端,否則不能含有NULL;
    b. 兼容7位的C字符串(C strings),對于C中的常量字符和字符串,其每一位都要和unix字符(串)中的位完全等同;
    c. 大小寫轉換是,轉換后的字符(串)不能占更多的位;
    d. 能夠準確接收客戶端傳入的全部字符。
UTF-8和大多數(shù)多字節(jié)的亞洲語言都能夠很好的兼容unix。UCS2是例外(含NULL)。
在smb.conf中定義unix charset。
在與客戶端發(fā)送或接收數(shù)據(jù)的時候,為了兼容客戶端的字符編碼,需要使用pull_(接收) 和push_(發(fā)送)開頭的函數(shù)在buffer中格式化數(shù)據(jù)。
lp_開頭的函數(shù),返回值全部是unix strings。
2.  相關宏定義(byteorder.h)
CVAL(buf,pos) 將buf中pos處的字節(jié)以無符號字符返回
PVAL(buf,pos) 將buf中pos處的字節(jié)以無符號整型返回
SCVAL(buf,pos,val) 將buf中pos處的字節(jié)設置為val
SVAL(buf,pos) 將buf中pos處的字節(jié)以無符號小端整型(16bit,ushort)返回
IVAL(buf,pos) 將buf中pos處的字節(jié)以無符號小端整型(32bit)返回
SVALS(buf,pos) 將buf中pos處的字節(jié)以有符號小端整型(16bit)返回
IVALS(buf,pos) 將buf中pos處的字節(jié)以有符號小端整型(32bit)返回
SSVAL(buf,pos,val) 將buf中pos處的無符號小端整型(16bit)值設置為val
SIVAL(buf,pos,val) 將buf中pos處的無符號小端整型(32bit)值設置為val
SSVALS(buf,pos,val) 將buf中pos處的有符號小端整型(16bit)值設置為val
SIVALS(buf,pos,val) 將buf中pos處的有符號小端整型(32bit)值設置為val
RSVAL(buf,pos) 將buf中pos處的字節(jié)以無符號大端整型(16bit)返回
RIVAL(buf,pos) 將buf中pos處的字節(jié)以無符號大端整型(32bit)返回
RSSVAL(buf,pos,val) 將buf中pos處的無符號大端整型(16bit,ushort)值設置為val
RSIVAL(buf,pos,val) 將buf中pos處的無符號大端整型(32bit)值設置為val


Samba DEBUG SYSTEM
DEBUG書寫規(guī)則

復制代碼
代碼如下:

>debugfile:=={>debugmsg}
>debugmsg:==>debughdr’/n’>debugtext
>debughdr:==’[’TIME’,’LEVEL’]’FILE’:’[FUNCTION]’(’LINE’)’
>debugtext:=={>debugline}
>debugline:==TEXT’/n’

其中,
TIME  時間戳,
LEVEL DEBUG級別,
FILE DEBUG信息產生的源文件,
FUNCTION DEBUG信息產生的函數(shù),
LINE DEBUG信息產生的行數(shù),不支持 __FUNCTION__ 宏的顯示不出來,
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級別,凡是小于等于全局變量DEBUGLEVEL的,該DEBUG信息將輸出到日志,
para2  DEBUG信息,即書寫規(guī)則中的TEXT。在TEXT中,每遇到'/n',將產生一條新的日志(書寫規(guī)則中的debugfile);沒遇到'/n'時,追加TEXT。
EG:

復制代碼
代碼如下:

DEBUG(0, ("The test returned "));
if(test())
{
DEBUG(0, ("True"));
}
else
{
DEBUG(0, ("False"));
}
DEBUG(0, ("./n"));

假設test() == true,則會輸出:

復制代碼
代碼如下:

[2010/07/30 16:00:51, 0] file.c:function (256)
The test returned True.

DEBUGADD()宏
DEBUGADD(para1, para2);
其中,
para1  DEBUG級別,凡是小于等于全局變量DEBUGLEVEL的,該DEBUG信息將輸出到日志,
para2  DEBUG信息,即書寫規(guī)則中的TEXT。在TEXT中,每遇到'/n',將產生TEXT新行;沒遇到'/n'時,追加。它與DEBUG()的區(qū)別就是,它從不產生書寫規(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級別,凡是小于等于全局變量DEBUGLEVEL的,該宏返回true,
該函數(shù)主要為了解決書寫規(guī)則中TEXT太長造成的不便。
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ù)
用于調用相關函數(shù)輸出DEBUG信息到日志文件,即輸出書寫規(guī)則中的TEXT。
函數(shù)調用vslprintf()函數(shù)對TEXT格式化后,調用format debug text()函數(shù)將TEXT輸出。
一般在DEBUGLVL()宏中使用。
 
dbghdr()函數(shù)
用于輸出DEBUG信息中的頭信息,即輸出書寫規(guī)則中的debughdr。
不對輸出內容進行格式化處理。
一般在DEBUG()宏 DEBUGADD()宏中使用。
 
format debug text()函數(shù)
用于輸出DEBUG信息到日志文件,即輸出書寫規(guī)則中的TEXT。
函數(shù)將要輸出的TEXT保存到buffer中,直到找到一個'/n',增加縮進,調用Debug1()函數(shù),輸出TEXT到日志,并清空buffer。

標簽:玉樹 昌都 哈密 臺州 九江 孝感 海東 優(yōu)質穩(wěn)定

巨人網(wǎng)絡通訊聲明:本文標題《Linux中Samba服務器的編譯安裝以及配置的宏的寫法》,本文關鍵詞  Linux,中,Samba,服務器,的,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux中Samba服務器的編譯安裝以及配置的宏的寫法》相關的同類信息!
  • 本頁收集關于Linux中Samba服務器的編譯安裝以及配置的宏的寫法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    兴隆县| 彰武县| 白水县| 铁岭市| 寿光市| 林西县| 大城县| 丁青县| 西华县| 宁海县| 宝坻区| 临高县| 龙江县| 建水县| 依安县| 和硕县| 合川市| 疏勒县| 莱芜市| 汝阳县| 清流县| 和顺县| 镇江市| 钟祥市| 顺昌县| 兰西县| 保山市| 区。| 成武县| 秭归县| 舒兰市| 博湖县| 南部县| 响水县| 荥经县| 岑巩县| 临西县| 马龙县| 兴海县| 托克逊县| 四平市|