ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux实践工程师学习笔记:samba---转

Linux实践工程师学习笔记:samba---转

原创 Linux操作系统 作者:andyxu 时间:2009-08-03 10:07:03 0 删除 编辑
samba软件包使用

Fedora core/Redhat Linux提供的软件包

samba samba服务器软件包

samba-client samba客户端工具

samba-common 通用工具和库



安装rpmdb-fedora/rpmdb-redhat软件包(一般在第三张光盘)

但在FC5已找不到这个软件包

安装了rpmdb可以解决依赖性问题

#rpm –ivh rpmdb-fedora*.rpm

#rpm –ivh --aid samba*.rpm 装了rpmdb才有效



1.#rpm –ivh cups-libs*.rpm 第一张光盘

2.#rpm –ivh samba*.rpm 第一张光盘(client,common)

3.#rpm –ivh samba*.rpm 第二张光盘

#rpm –qa |grep samba 查看所有软件包列表

#rpm –ql samba | more 查讯某个软件列表



samba客户端工具

smbtree

作用:显示局域网中的所有共享主机和目录列表(默认使用当前用户登录)

用法:smbtree [-b] [-D] [-U username%password]

-D 表示只显示工作组名,不显示主机

-b 使用广播查询列表,不用WINS服务器

-D和-U 不能共用,因为不可能用同一个用户登录域上所有主机



nmblookup

作用:显示一台主机的nethios主机名

nmblookup my-server 查询服务器的IP

nmblookup \* 查询所有活动的主机的IP



smbclient

作用:显示/登录局域网中的共享文件夹

用法:smbclient –L host

smbclient //host/share

smbclient –L 192.168.0.22 –U redhat%redhat 以redhat用户登录并显示共享目录

smbclient //192.168.0.22/linux –U redhat%redhat

登入目录,查看目录内容,通过put,get上下载文件



smbtar(先要修改/usr/bin/smbtar命令,把最后一行的参数-N匿名登陆删掉)

远程备份网上邻居中的文件

smbtar –s win2000 –u redhat –p redhat –x chinalab –t itlab.tar



将共享目录挂载到本地目录,然后再访问

mount.cifs //192.168.0.22/linux /mnt –o username=redhat%redhat



tar tvf lab.tar 显示备份包里的文件



samba服务器配置

1.修改配置文件/etc/samba/smb.conf

workgroup = WORKGROUP

security = share

[docs]

path = /usr/share/doc

comment = share documents #说明共享目录

public = yes

2.重启smb服务器

#service smb restart

#chkconfig smb on 让smb每次自动启动

3.测试

#smbclient –L localhost



chkconfig smb –list 查看服务的启动状态



SMB 提供名称解释服务

NMB 提供数据传输服务

两个总是一起工作的



samba文件服务器

(WINS)在网上邻居看不到主机列表,可以在地址栏直接输入IP如\\192.168.0.1查看共享目录

网上邻居看到的主机列表,主要有三个来源,一是配置文件lmhosts,主机名与IP的对应关系

二是通过浏览服务器 三是通过广播方式获取主机列表


linux访问网上邻居

1.挂载方法
#mount –t smbfs //192.168.0.1/linux /mnt
或 #mount.cifs //192.168.0.1/linux /mnt
2.#smbclient //192.168.0.1/linux –U redhat%123

访问控制
public = yes 允许所有人访问
= no 不允许匿名访问
1.共享目录设置有效用户
[redhat]
path = /var/redhat
comment = redhat’s files
valid users = <@groupname>
2.创建samba用户
#useradd username 新建一个系统用户
#smbpasswd –a username 将用户加入到samba中
3.用户账号映射
[global]
username map = /etc/samba/smbusers
4.修改上面指定的smbusers文件,添加虚拟用户名
redhat = tom jack

也可以直接用以下命令:

#smbuseradd unixname:mapname

5.需重启smb服务读取映射文件

HOME目录(用于用户访问用户自己的主目录)
[global]

[homes]


comment = Home Directories
validusers = %S %S目录属主
browseable = no 默认不允许浏览home目录
writable = yes 允许写
valid users = 有效用户列表
write list = 可写用户列表
create mask = 0660 定义创建文件的默认权限
directory mask = 0770 定义创建目录的默认权限

chown redhat /var/redhat 改变目录属主
ls –lh 显示目录里各个文件的详细信息
ls –ld /usr/redhat 只显示目录本身的详细信息

#testparm 测试配置默认文件smb.conf的正确性
#testparm /etc/samba/smb.conf my-server 192.168.0.1
测试客户机能访问服务器的哪些目录

[redhat]
path = /var/redhat
comment = redhat’s files
public = no
valid users = <@groupname>
write list = <@groupname>
create mask = 0660
directory mask = 0770
注意:客户端所有请求访问身份在服务器端都会映射成登录账号的身份




samba配置文件
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP 组或域名
server string = samba server 服务器描述
netbios name = redhat 指定samba服务器名
security = share/user/server share不需验证用户,user要验证
;password server =
需与security=server配合使用
log file = /var/log/samba/log.%m %m指客户机的netbios名,日志按客户机名分类
encrypt passwords = yes
加密密码,windows客户机一般使用加密密码,所以为yes.如果不加密直接用明文密码,可改为no,但windows客户机需修改注册表指定不加密
smb passwd file = /etc/samba/smbpasswd
上面两句要一起使用!
include = /etc/samba/smb.conf.%m 包含外部配置文件,如根据不同的客户机名称,定义不同的共享资源
;interfaces = 192.168.0.0/24 samba应用在哪个接口上,默认是在所有网卡,所有接口上
;name resolve rder = wins lmhosts bcaast 名称解释顺序
;wins support = yes 自己作为WINS服务器,并提供给客户机查询
;wins server = w.x..y.z 与WINS配合使用,作为WINS服务器,请求会发送到w.x.y.z

/etc/samba/lmhosts文件(保存客户机IP与名称的对应关系)
左边IP 右边名称
127.0.0.1 localhost

wins support,wins server 不能同时使用
wins server 说明本身作为客户机,而指定一台wins服务器的IP




samba的安全级别
[global]
security =
1.share
windows用户不需要认证就能访问共享列表
2.user
windows客户机需输入用户才能访问共享名列表,服务器上需建立用户账号
3.server
客户端需输入合法用户帮能访问,但认证过程在另一服务器进行,用户账号保存在认证的那台服务器上。
share,user只对windows客户机有效,linux客户机在user级别不用密码也能访问共享名列表。security只保护主机的共享名列表,具体到目录的访问则由目录的规则决定。

#hostname 查看主机名
#nmblookup my-server 查询主机IP(与samba netbios name有关)
#man smb.conf 查看相关帮助
vi搜索技巧:
/%m 先输入”/”再输入要查找的字符串
/redhat 如查找”redhat”字符串
shift+G 跳到文件尾

默认服务器名与机器DNS的第一部分相同
如Fedora.cyrich.com则这台samba服务器的名称就是Fedora

访问控制
一、全局控制
[global]
hosts deny = ALL
hosts allow = 192.168.0.
二、局部访问控制
[docs]
hosts deny = 192.168.0.
hosts allow = 192.168.0.1
[redhat]
hosts allow = 192.168.0.
host deny = 192.168.0.1 (失效)
允许优先!!
hosts 后面的格式语法,可以通过man 5 host.access查看帮助
1.点开头 .edu.cn
2.点结尾 192.168.0.
3.192.168.0.0/255.255.255.0
192.168.0.0/24
4.ALL LOCAL UNKNOWN DNS不能解析的
5./开头 指定一个文件
6.hosts allow = 192.168.0.0 EXCEPT 192.168.0.1
允许192.168.0网段主机访问,但192.168.0.1除外

技巧:
#tail /etc/samba/smb.conf
显示文件最后的十行




应用案例
要求:
1.所有员工都能够在公司内流动办公,但不管在哪台电脑上工作,都要把自己的文件数据保存在samba文件服务器上。
2.市场部,技术部都各有自己的目录,同一个部门的人共同拥有一个共享目录,其他部门的人都只能访问在服务器上自己个人的home目录
3.所有用户都不允许使用服务器上的shell
分析:
1.需要samba作为文件服务器,为所有用户创建账号和目录,用户默认都 在服务器上有一个home目录,只有认证通过才能看到。
2.需为市场部和技术部创建不同的组sales和tech,并且分配目录,把所有市场部员工加入sales组,技术部员工加入tech组,通过samba共享sales和tect
3.建立用户账号时,不分配shell
案例实施:
1.为所有用户创建账号和目录,不分配shell,假设市场部有tom,jack,技术部有red,blue,总经理ceo,财务finance
2.建组sales和tech,把所有市场部员工加入sales组,技术部员工加入tect组
3.创建两个目录/home/sales和/home/tech,并修改两个目录的权限,分别属于sales组和tect组
4.通过samba共享/home/sales和/home/tect
5.测试
如有错误,检查
/etc/samba/smbpasswd 确定账户
/etc/samba/smbusers 查看映射文件
tail /var/log/samba/redhat.log 查看/var/log/samba/目录下的日志

具体操作:
#vi /etc/samba/smb.conf 安全级别为user
#groupadd sales
#groupadd tech
#useradd –g sales –s /bin/false tom
#useradd –g sales –s /bin/false jack
#smbpasswd –a tom
#smbpasswd –a jack
#for user in red blue
>do
> useradd –g tech –s /bin/false $user
> smbpasswd –a $user
> done

#useradd ceo
#useradd finance
#smbpasswd –a ceo
#smbpasswd –a finance
#mkdir /home/sales /home/tech
#chgrp sales /home/sales
#chgrp tech /home/tech
#chmod 770 /home/sales
#chmod 770 /home/tech
#chmod g+s /home/sales 防止权限发生混乱
#chmod g+s /home/tech
#vi /etc/samba/smb.conf
[global]
path = /home/sales
comment = sales
public = no
valid users = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
path = /home/tech
comment = tech
public = no
valid users = @tech
write list = @tech
create mask = 0770
directory mask = 0770

linux测试
1.smbclient –L 192.168.0.22 –U tom%tom
2.mount.cifs //192.168.0.22/ceo –o username ceo%ceo
windows客户机映射网络驱动器,再设定“我的文档”位置,就可随时随地将文件保存在samba服务器上。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/110321/viewspace-611113/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-26

  • 博文量
    167
  • 访问量
    294815