samba记录

samba记录 (by hanlray(at)gmail.com)

用sudo设置任何用户都可以smbmount:

%users ALL=NOPASSWD:/usr/bin/smbmount

smbclient -L <netbios name>可以列出该机器提供的服务名

用smbclient //<netbios name>/service -U <username> -W <workgroup>登录,help列出常用命令,打开prompt和recurse后用mget可以get一个目录

访问samba共享时使用的用户名必须是linux系统的一个有效用户,samba将以该用户来决定对被访问资源具有的权限。这对guest用户同样有效,因此当设置了设置了某个共享为guest ok = yes,必须保证通过guest account = <username>设置的用户名在系统中存在,虽然对guest账户并不要求能成功login。

samba并不是用linux系统的password来验证用户的,它使用自己维护的password,用smbpasswd来操作samba password

name resovle

当指定要访问的主机的共享(service)时,我们通常使用的是该主机的名字,因此需要把名字解析为地址,samba不是简单地使用resolver库提供的解析方法,它还使用wins、broadcast以及和hosts文件类似的一个lmhosts文件;用name resolve order来配置使用这些方法的顺序:

name resolve order = host lmhosts wins bcast

其中host代表resolver库的解析方法,不是指hosts文件。这里指定的值即是缺省值。

当使用OpenDNS时,这个缺省的resolve order可能会带来问题。因为当一个解析方法失败后才会使用下一个方法来解析,而即使OpenDNS解析失败它也会返回一个指向OpenDNS服务器的IP地址,这主要是为了当在浏览器里输入了一个错误的域名后能跳转到一个OpenDNS的出错页面上,这样host方式的解析永远不会失败,于是其后的解析方法也不会用到。

解决方法可以把host方法移到后面,使之前的解析方法能解析本地的名字(如netbios名),或者在/etc/hosts里添加本地名字的映射,同时保证host.conf里host的解析方法在bind之前。

共享一个目录

每个共享在smb.conf里都对应一个section来配置。要共享目录/home/bar,共享名为foo,在smb.conf里加入:
[foo] path = /home/bar 

[homes]

[homes]是个特殊的共享section,并不存在homes这个共享名,它用来配置//host/<username>形式的共享。当请求的共享名在smb.conf里没有找到对应的section时,该共享名被当作一个username来处理,如果该username是linux系统的一个用户,并且password验证通过,则通过克隆[homes]创建一个共享:
  • 共享名为username
  • 如果[homes]没有指定path,则path被设置为该用户的home目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值