在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
编译安装 复制代码 代码如下:# 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 配置动态链接库路径 复制代码 代码如下:# vi /etc/ld.so.conf 加入一行 复制代码 代码如下:/usr/myname/install/samba/lib</p> <p># ldconfig 执行ldconfig命令让配置生效 到安装目录 复制代码 代码如下:# 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系统中,单击[开始]——[运行] 输入 “secpol.msc”打开管理工具,展开“本地策略”; 然后,单击“安全选项”。 双击“网络安全:LAN Manager 身份验证级别”; 最后,单击列表中:发送LM和NTLMv2,如果已协商,则使用NTLMv2协议。 基本的宏的编写 Samba 字符处理系统
复制代码 代码如下:>debugfile<:=={>debugmsg<} >debugmsg<:==>debughdr<’/n’>debugtext< >debughdr<:==’[’TIME’,’LEVEL’]’FILE’:’[FUNCTION]’(’LINE’)’ >debugtext<:=={>debugline<} >debugline<:==TEXT’/n’ 其中, TIME 时间戳, LEVEL DEBUG级别, FILE DEBUG信息产生的源文件, FUNCTION DEBUG信息产生的函数, LINE DEBUG信息产生的行数,不支持 __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(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信息,即书写规则中的TEXT。在TEXT中,每遇到'/n',将产生TEXT新行;没遇到'/n'时,追加。它与DEBUG()的区别就是,它从不产生书写规则中的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, 该函数主要为了解决书写规则中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()函数 用于调用相关函数输出DEBUG信息到日志文件,即输出书写规则中的TEXT。 函数调用vslprintf()函数对TEXT格式化后,调用format debug text()函数将TEXT输出。 一般在DEBUGLVL()宏中使用。 dbghdr()函数 用于输出DEBUG信息中的头信息,即输出书写规则中的debughdr。 不对输出内容进行格式化处理。 一般在DEBUG()宏 & DEBUGADD()宏中使用。 format debug text()函数 用于输出DEBUG信息到日志文件,即输出书写规则中的TEXT。 函数将要输出的TEXT保存到buffer中,直到找到一个'/n',增加缩进,调用Debug1()函数,输出TEXT到日志,并清空buffer。 |
请发表评论