注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

samba 配置  

2010-07-12 13:52:53|  分类: linux服务篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
samba 为windows与linux共享文件架起一座桥梁。主要应用环境包括:文件与打印机共享, 身份验证和权限设置。

主要端口号:137 138 139 445 (新版的用139 445)
主要进程:nmbd smbd
需要安装的包:samba-version.i386.rpm samba-client-version.i386.rpm samba-common-version.i386.rpm,如果需要在浏览器中配置还需要安装samba-swat-version.i386.rpm

配置:配置文件路径为/etc/samba/smb.conf,这里先简单说一下配置文件的格式,一般来说如果是“#”是说明性注释,如果是“;”是示例注释(即为例子)。我们先来运行 一下  cd /etc/samba/ ;  grep -v '#" smb.conf, 这时我们会看到如下内容:
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes

global是全局设置信息,workgroup是工作组或域,server string是服务器的描述信息
security是samba服务器的验证方式主要有:
share:适合公共的共享资源,不需要输入用户名和密码,直接可以访问
user:需要输入合法的用户名和密码才可以访问
server:用户需要将用户名和密码提交给指定的samba服务器进行验证,如果出错,则使用user方式来访问
domain:如果samba的服务器在windows的域中,则验证工作由windows域控制器来负责
ads:当samba 使用ads验证时,要求加入windows的域环境中,这时samba具有domain的所有功能并具备域控制的功能。

下面我们来做一个案例:公司规章制度要求所有人都可以访问,但不能修改,技术资料要求所有人可以浏览,并且允许开发部的人修改,财务只允许会计和经理浏览,并且会计具有修改的权力。
我们可以这样写:
[zhidu]
comment = gong si zhi du 
path = /share/zhidu
public = yes
readonly = yes
[jishu]
comment = jishuziliao
path = /share/jishuziliao
browseable = yes
writable = no
write list = @jishu
[caiwu]
comment = caiwu
path = /share/caiwu
writable = no
write list = kuuaiji
valid users = jingli kuaiji

配置完成后可以使用testparm来测试是否正确。

[xxxx]: xxxx是共享名,在用smbclient连接时使用
comment :备注信息
path: 是共享绝对路径
public: 是否允许匿名访问,yes为允许,no为不允许
browseable: 是否允许浏览,yes为允许,no为不允许
writable: 用户对该目录是否可写,yes为可以,no为不可以
write list: 允许哪些用户写入,以使用@+组名来允许一个组所有成员写入,如@dev,dev组中所有成员都可以写入,与wirtable=no连用,限制更严格。
valid users: 定义合法用户,可以使用@+组名来允许一个组所有成员访问 ,如@dev,dev组都是合法用户。
readonly:限制是否为只读,yes为只读。

通过/etc/init.d/smb start来启动服务
通过netstat -antuple | grep mbd来查看服务状态

添加用户: samba要求用户必须为系统用户,但是系统用户并不能直接拿来做Samba用户,需要使用命令:
smbpasswd -a user 来将系统用户user转换成samba用户。

添加完用户,我们会发现/etc/samba下并没有smbpasswd这个文件,这是因为samba启用了tdbsam验证(passdb backend=tdbsam); 我们只要注释掉这一行,加上smb passwd file = /etc/samba/smbpasswd,重启服务即可。

使用chkconfig smb on让samba开机启动。这时你可以通过smbclient来测试你的服务
列出共享:smbclient -L //smb_IP/share_name  -U user
也可以连接上,像使用ftp一样来使用:
smbclient -U user //smb_IP/share_name
当然如果你不习惯这样使用,可以使用mount来挂载到某个目录下:
mount -t cifs //ip/share_name /mnt -o username=user%passwd(如果selinux为强制,挂载不会成功)
或者你把samba的目录固化挂载到本地,打开/etc/fstab,添加一行
//ip/share_name /mnt  cifs  defaults, noauto 0 0 
注意,如果使用windows来验证时,会有缓存问题,第二次不需要输入密码,可以在windows的运行里输入cmd,在控制台中输入 net use * /del 再选Y来删除缓存。

高级配置:
用户帐号映射:我们直接使用系统的用户做为samba的用户,这样就为黑客攻击系统带来了方便,为了防止此类事情发生,可以使用在帐号映射,在smb.conf中加入一行
 username map = /etc/samba/smbusers
然后再打开smbusers这个文件,它的格式为:
samba 用户 = 映射帐号
访问控制:
可以使用 hosts allow hosts deny来进行访问控制

使用ip,或网段来控制, 多个ip或网段以空格分隔
hosts allow = 192.168.1.  允许192.168.1.0/24这个网段的所有用户访问

使用域名来控制
hosts deny = .cracker.org  .example.com

使用通配符,常用的通配符还有“*”, “?” "LOCAL"等 
hosts deny = ALL
hosts allow = boss

注意,当allow 和deny冲突的时候,allow起作用。

建立独立的配置文件: 有时把所有的配置文件都写在一起,并不是一个好的想法,我们真正想做的是不同的用户读取不同的配置文件,这样我我们可以在[global]中加入以下一句:
config file = /etc/samba/smb.conf.%U
其中%U代表当前登录用户。也可以在g[global]里加上:
include = /etc/samba/%U.smb.conf表示使samba服务器加载/etc/samba目录下格式为“用户名.smb.conf”的配置文件。
include = /etc/samba/%G.smb.conf表示使samba服务器加载/etc/samba目录下格式为“组名.smb.conf”的配置文件。
  评论这张
 
阅读(327)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017