Linux实践工程师学习笔记六:Samba

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 /mnt2.#smbclient //192.168.0.1/linux –U redhat%123访问控制public = yes 允许所有人访问 = no 不允许匿名访问1.共享目录设置有效用户[redhat] path = /var/redhat comment = redhat’s files valid users = <username> <@groupname>2.创建samba用户 #useradd username 新建一个系统用户 #smbpasswd –a username 将用户加入到samba中3.用户账号映射[global] username map = /etc/samba/smbusers4.修改上面指定的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 = <username> <@groupname> write list = <username> <@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 = <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 order = 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 localhostwins support,wins server 不能同时使用wins server 说明本身作为客户机,而指定一台wins服务器的IP

samba的安全级别[global] security = <level>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.cn2.点结尾 192.168.0.3.192.168.0.0/255.255.255.0 192.168.0.0/244.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和tect3.建立用户账号时,不分配shell案例实施:1.为所有用户创建账号和目录,不分配shell,假设市场部有tom,jack,技术部有red,blue,总经理ceo,财务finance2.建组sales和tech,把所有市场部员工加入sales组,技术部员工加入tect组3.创建两个目录/home/sales和/home/tech,并修改两个目录的权限,分别属于sales组和tect组4.通过samba共享/home/sales和/home/tect5.测试如有错误,检查/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 批量添加用户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[sales] path = /home/sales comment = sales public = no valid users = @sales write list = @sales create mask = 0770 其实效果就是0760,因为samba服务器会自动把可执行权限拿掉 directory mask = 0770[tech] path = /home/tech comment = tech public = no valid users = @tech write list = @tech create mask = 0770 directory mask = 0770linux测试1.smbclient –L 192.168.0.22 –U tom%tom2.mount.cifs //192.168.0.22/ceo –o username=ceo%ceowindows客户机映射网络驱动器,再设定“我的文档”位置,就可随时随地将文件保存在samba服务器

两粒种子,一片森林。

Linux实践工程师学习笔记六:Samba

相关文章:

你感兴趣的文章:

标签云: