LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1380|回复: 7

[原创]Samba学习笔记

[复制链接]
发表于 2006-6-7 14:06:44 | 显示全部楼层 |阅读模式
目录
      1.Samba服务器的安装
      2.Samba客户端的使用
      3.Samba服务器配置
      4.Linux中访问网上邻居
      5.Smaba用户帐户
      6.Smaba配置文件详解
      7.访问控制
+++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++++++++++
1.Samba服务器的安装:
samba                samba服务器软件包
smba-client         samba客户端工具
smba-common    通用工具和库
安装samba依赖软件包
  1. rpm -ivh rpmdb-fedora*.rpm
复制代码
(rpmdb包含了所有软件包的依赖关系)
安装samba软件包
  1. rpm -ivh --aid smba*.rpm
复制代码

     --aid参数自动解决依赖关系,必须安装 rpmdb包,并且与以来包在同一目录下
/etc/rc.d/init.d/smb 服务器启动脚本
/usr/sbin/nmbd 提供名称解析服务:也就是提供一个输出的数据,能够模仿微服务,提供用户验证,索引目录的查询
/usr/sbin/smbd 传送数据
/usr/share/doc/samba-x.x.x/docs/Samba-HOWTO-Colection.pdf
这是非常全面的HOWTO的一个集合
/usr/share/doc/samba-x.x.x/docs/Samba-Developers-Guide.pdf
Samba开发者的最丰富的资料

2.Samba客户端的使用
smbtree
作用:显示局域网种的所有主机的共享列表
用法:smbtree [-b](广播)[-D](域或工作组名)[-U username%password]
默认会使用当前用户搜索主机
  1. #smbtree
  2. Password:
  3. WORKGROUP
  4.         \\WIN2000
复制代码

  1. #smbtree -b
  2. Password:
  3. WORKGROUP
  4.         \\WIN2000
复制代码

  1. #smbtree -b -D
  2. Password:
  3. WORKGROUP
复制代码
  1. #smbtree -b -D -U tpxcer%tpxcer
  2. WORKGROUP
复制代码
  1. #smbtree -b -U tpxcer%tpxcer
  2. WORKGROUP
  3.         ==WIN2000
复制代码

nmblookup
作用:显示一台主机的 netbios主机ip地址

  1. #nmblookup win2000
  2. querying win2000 on 10.0.0.255
  3. 10.0.0.241 win2000<00>
  4. 192.138.242.1 win2000<00>
  5. 192.168.44.1 win2000<00>
复制代码

  1. #nmblookup \* (由于*号默认表示当前目录的所有文件,所以需要转义)
  2. querying * on 10.0.0.255
  3. 10.0.0.241 *<00>
  4. 10.0.0.1 *<00>
  5. 192.168.242.1 *<00>
  6. 192.168.44.1 *<00>
  7. 192.168.0.254 *<00>
复制代码


smbclient
作用:显示/登录局域网中的共享目录
用法:smbclient -L host
     smbclient //host/share

  1. #smbclient -L win2000 (如果想快一点我们最好用前面查到的IP地址)
  2. # smbclient -L 10.0.0.241
  3. Password:
  4. .....
  5. # smbclient -L 10.0.0.241 -U tpxcer
  6. Password:
复制代码


共享的内容
  1. # smbclient -L 10.0.0.241 -U tpxcer%tpxcer
  2. # smbclient //10.0.0.241/lab -U tpxcer%tpxcer
  3. smb:\>help
  4. smb:\>put 本机地址 远程地址 (若没有远程地址则与本机地址一样)
  5. smb:\>get 文件名
复制代码


smbmount
作用:挂载共享目录
用法 -o username=username%password
  1. #smbmount //10.0.0.241/lab /mnt(默认是使用匿名用户)
  2. #smbmount //10.0.0.241/lab /mnt -o username=tpxcer%tpxcer
复制代码


smbtar
作用
作用:远程备份网上邻居种的文件(需要稍作修改)
用法:smbtar -S SEVER -U USER -P PASSWORD -X sharename -t output

  1. #smbtar -s 10.0.0.241 -u tpxcer -p tpxcer -X tpxcer -t smbtar.tar
  2. 默认的smbtar是有问题的,他是一个脚本文件,我们需要手动修改,到最后把-N去掉
复制代码


3.Samba服务器配置
* 修改配置文件/etc/samba/smb.conf
  workgroup=workgroup
  security=share
  [docs]
        path=/usr/sharc/doc
        comment=share documents
        public=yes(允许匿名访问)
* 重新启动smb服务器
  #service smb restart
  #chkconfig smb on
* 测试
  #smbclient -L localhost

4.Linux中访问网上邻居
*需要samba客户端软件的支持
*使用挂载的方法
  1. #mount -t smbfs //sever/sharename /localdir
  2. #smbmount //sever/sharename /localdir
复制代码

*使用smbclient
  1. #smbclient //sever/sharename -U name%passwd
复制代码


5.Samb用户账户
1共享目录设置有效用户
[redhat]
  path=var/redhat
  comment = redhat's files
  valid users = <username>  <@groupname>
2新建samba用户
  1. #useradd username
  2.   #smbpasswd -a username
复制代码

3.用户帐号映射
[global]
  username map = /etc/samba/
  1. #smbuseradd unixname:mapname
复制代码


E.G.
[redhat]
  path = /var/redhat
  comment = redhat's files
  public = no
  valid users = redhat
  既然只允许redhat用户访问就加进samba的用户数据库里
  注意samba用户必须首先是系统用户
  1. #useradd useradd
  2. #smbpasswd -a redhat
  3. New SMB pasword:
  4. Retype new SMB password:
复制代码

加好以后会在 /etc/samba/smbpasswd这个文件里
为了防止用户猜测您的服务器的系统帐号,我们使用用户帐号映射
[global]
  username map = /etc/samba/smbusers
  1. #smbuseradd unixname(系统帐号):mapname(映射帐号)
  2. (以上命令有可能已经被取消)
  3. #vi /etc/samba/smbusers
复制代码

左边为系统用户 右边为映射用户
E.G
  1. redhat = tpxcer tpxc
复制代码

注意smb.conf配置文件中用户名一定要用系统用户帐号

HOME 目录

[global]
[homes]
        comment = home Directories
        valid users = %S(%S指的是属主)
                browseable = no(默认不让浏览到的)
        writable =yes(是否允许写)
注意如果要使用帐号访问一定要把security设置成user

Samba用户的权限

[redhat]
        path = /var/redhat
        comment = redhat's files
        public = no
        valid users = <username> <@groupname>多用户组用空格分开
        write list = <username> <@groupname>允许谁写
        create mask =0660
        directory mask =0770
注意:客户端所有的请求访问身份在服务器端都会映射成登录帐号的身份.
                测试工具
testparm
默认情况下可以检查你的配置文件有没有语法错误
E.G.测试某一个具体的客户机是否能够访问我们的服务器以及额范围.
指定配置文件                  客户机名字  IP 地址
testparm  /etc/samba/smb.conf  win2000    10.0.0.1

                               
6.Smaba配置文件详解
[global]
workgroup=workgroup 工作组的名称
netbios name = redhat netbios的主机名
server string = Samba server 主机的解释信息
security =share/user/server 主机额安全级别
         user 需要认证 (user级别对 linux用户来说是不能保护目录列表的
                smbclient -L 10.0.0.254)
         share 不需要用户验证
         server 客户端必须输入合法的用户才能访问该服务器,但客户端需要连接到其他的服务器上进行人证
;password server = <server>
log file =/var/log/samba/log.%m 日志文件的路径
encrypt passwords = yes 是否要使用加密密码
                   如果是明文密码windows那边需要改注册表
smb passwd file = /etc/samba/smbpasswd samba密码文件的地方
include =/etc/samba/smb.conf.%m 包含一个外部的配置文件(对不同客户机的额外配置)
interfaces= 192.168.0.0/24 开启那个端口网段
;name resolve order = wins lmhosts bcast 主机名解析的顺序
                wins: wins主机
                lmhosts: 本机的一个配置文件(/etc/samba/lmhosts)
                        保存客户机与主机的对应关系
                bcast: 广播形式
;wins support = yes 是否支持wins服务器(本地做wins服务器)
;wins server = w.x.y.z (谁是我的wins server,本地是客户机,这两项只能开启一项

7.访问控制
一.全局访问控制
[global]
        hosts deny = ALl
        hosts allow =10.0.0.
二局部访问控制
[docs]
        hosts deny = 10.0.0.
        hosts allow =10.0.241
[redhat]
        hosts allow = 10.0.0.  
        hosts deny = 10.0.0.241(失效)
[tpxc]
        hosts allow = 10.0.0. EXCEPT 10.0.0.241
        全部允许 除了 10.0.0.241
允许优先!
具体写法查看帮助 man 5 hosts_access

Linux群:24406485
发表于 2006-6-7 21:46:37 | 显示全部楼层
不错,不错,收藏了。  以后设置Samba 方便了。
回复 支持 反对

使用道具 举报

发表于 2006-6-7 23:42:32 | 显示全部楼层
好,支持一下
回复 支持 反对

使用道具 举报

发表于 2006-6-8 00:08:15 | 显示全部楼层
原创要支持下
回复 支持 反对

使用道具 举报

发表于 2006-6-9 12:58:07 | 显示全部楼层
怎么添加单个用户阿?我记得好像是有个命令是smbadduser还是什么?具体忘了是什么了。希望您可以告诉我!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-9 13:43:52 | 显示全部楼层
Post by wuvnm
怎么添加单个用户阿?我记得好像是有个命令是smbadduser还是什么?具体忘了是什么了。希望您可以告诉我!

兄弟看上面的 5Samb用户账户
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-9 13:46:07 | 显示全部楼层
Post by wuvnm
怎么添加单个用户阿?我记得好像是有个命令是smbadduser还是什么?具体忘了是什么了。希望您可以告诉我!

兄弟看上面的 5Samb用户账户
回复 支持 反对

使用道具 举报

发表于 2006-6-12 11:24:24 | 显示全部楼层
3Q
学习中!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表