linux整理笔记之六:samba软件包使用

samba软件包使用
Fedora core/Redhat Linux提供的软件包
samba       samba服务器软件包
samba-client    samba客户端工具
samba-common    通用工具和库
安装rpmdb-fedora/rpmdb-redhat软件包(一般在第三张光盘)
但在FC5已找不到这个软件包
安装了rpmdb可以解决依赖性问题
#rpm �Civh rpmdb-fedora*.rpm
#rpm �Civh --aid samba*.rpm 装了rpmdb才有效
1.#rpm �Civh cups-libs*.rpm     第一张光盘
2.#rpm �Civh samba*.rpm 第一张光盘(client,common)
3.#rpm �Civh samba*.rpm 第二张光盘
#rpm �Cqa |grep samba    查看所有软件包列表
#rpm �Cql 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 �CL host
     smbclient //host/share
     smbclient �CL 192.168.0.22 �CU redhat%redhat      以redhat用户登录并显示共享目录
     smbclient //192.168.0.22/linux �CU redhat%redhat     
登入目录,查看目录内容,通过put,get上下载文件
smbtar(先要修改/usr/bin/smbtar命令,把最后一行的参数-N匿名登陆删掉)
远程备份网上邻居中的文件
smbtar �Cs win2000 �Cu redhat �Cp redhat �Cx chinalab �Ct itlab.tar
将共享目录挂载到本地目录,然后再访问
mount.cifs //192.168.0.22/linux /mnt �Co 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 �CL localhost
chkconfig smb �Clist          查看服务的启动状态
SMB   提供名称解释服务
NMB   提供数据传输服务
两个总是一起工作的
samba文件服务器
(WINS)在网上邻居看不到主机列表,可以在地址栏直接输入IP如 \\192.168.0.1 查看共享目录
网上邻居看到的主机列表,主要有三个来源,一是配置文件lmhosts,主机名与IP的对应关系
二是通过浏览服务器 三是通过广播方式获取主机列表
linux访问网上邻居
1.挂载方法
       #mount �Ct smbfs //192.168.0.1/linux /mnt   
或   #mount.cifs //192.168.0.1/linux /mnt
2.#smbclient //192.168.0.1/linux �CU redhat%123
访问控制
public = yes           允许所有人访问
        = no             不允许匿名访问
1.共享目录设置有效用户
[redhat]
       path = /var/redhat
       comment = redhat’s files
       valid users = 
2.创建samba用户
       #useradd username        新建一个系统用户
       #smbpasswd �Ca 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 �Clh       显示目录里各个文件的详细信息
ls �Cld /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 = 
       write list  = 
       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 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        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 �Cg sales �Cs /bin/false tom
#useradd �Cg sales �Cs /bin/false jack
#smbpasswd �Ca tom
#smbpasswd �Ca jack
#for user in red blue                批量添加用户red,blue
>do
>    useradd �Cg tech �Cs /bin/false  $user
>     smbpasswd �Ca $user
>     done
#useradd ceo
#useradd finance
#smbpasswd �Ca ceo
#smbpasswd �Ca 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 = 0770
linux测试
1.smbclient �CL 192.168.0.22 �CU tom%tom
2.mount.cifs //192.168.0.22/ceo �Co username=ceo%ceo
windows客户机映射网络驱动器,再设定“我的文档”位置,就可随时随地将文件保存在samba服务器

你可能感兴趣的:(linux,配置,samba,休闲,Samba服务)