项目五 配置与应用Samba服务
任务一 安装samba与共享家目录的用户
第一步 samba软件的安装
第二步 查看与备份samba的配置文件
第三步 服务的启动与停止
第四步 新建Samba用户
第五步 Windows客户端访问
任务二 配置学校Samba服务器
【groupadd students】建立学生群组
【groupadd teachers】建立教师群组
【useradd -g students student1】建立学生用户并加入相应群组
【useradd -g teachers teacher1】建立教师用户并加入相应群组
第二步 建立Samba用户
【smbpasswd -a student1】设置student1用户的samba访问密码,并使能student1用户具有samba访问权限
【smbpasswd -a teacher1 】设置teacher1用户的samba访问密码,并使能teacher1用户具有samba访问权限
第三步 建立共享目录以及设置文件夹权限
【mkdir /home/student】建立共享目录
【chgrp students /home/student】设置共享目录的所属组为students
【chmod 757 /home/student】设置共享目录的权限
【chmod g+s /home/student】该目录下所建文件的所属组都会变成和该目录一样
第四步 备份配置文件
【cp /etc/samba/smb.conf /etc/samba/smb.conf.bak】备份配置文件
第五步 编辑Samba配置文件的全局参数
通过【vim /etc/samba/smb.conf】命令编辑/etc/samba/smb.conf配置文件,更改的内容如下,全局参数在【global】下设置,对所有共享都有效。
workgroup =MYGROUP #设定 Samba Server 所要加入的工作组或者域
server string = Samba Server Version %v #设定 Samba Server 的注释,可以是任何字符串,也可以不填。“%”表示显示Samba的版本号#
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 #设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。#
hosts allow = 127. 192.168.1. 192.168.10.1 #表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。#
hosts allow=172.17.2.EXCEPT172.17.2.50 #表示容许来自172.17.2.*的主机连接,但排除172.17.2.50这台主机。
hosts allow=172.17.2.0/255.255.0.0 #表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接#
hosts allow=M1,M2 #表示容许来自M1和M2两台计算机连接
hosts [email protected] 9#表示容许来自XQ网域的所有计算机连接
max connections = 0 #max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
deadtime = 0 #deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
log file = /var/log/samba/log.%m #设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。#
max log size = 50 #设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。
security = user #设置用户访问Samba Server的验证方式,一共有四种验证方式。1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。3. server:依靠其他Windows系列系统或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个Windows系统上,使用Windows进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。4. domain:域安全级别,使用主域控制器(PDC)来完成认证。#
passdb backend = tdbsam #passdb backend就是用户后台的意思。目前有三种后台:1. smbpasswd:使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码; 2.tdbsam:使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”#
encrypt passwords = yes/no #是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。#
username map = /etc/samba/smbusers #用来定义用户名映射,比如可以将root换成administrator.admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。#
pdbedit命令的参数很多,我们列出几个主要的。
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。
第六步 编辑Samba配置文件的共享参数
通过【vim /etc/samba/smb.conf】命令编辑/etc/samba/smb.conf文件,在最后增加如下内容:
第七步 启动服务
【/etc/init.d/smb restart】或【 service smb restart】重启samba服务
【chkconfig smb on】设置samba服务在服务器重启后任然运行
任务三 配置企业级Samba权限
子任务一 配置企业一般文件权限
第一步 建立共享目录
通过如下命令建立共享目录【mkdir -p /samba/market sales pub】依次建立共享的三个文件夹
第二步 建立用户群组
通过如下命令建立用户群组
【groupadd marketusers】建立市场部用户组
【groupadd salesusers】建立销售部用户组
【useradd user –s /sbin/nologin】建立user用户,并指明不可用的shell,
第三步 设置文件夹权限
通过如下命令设置文件夹权限:
【chmod 770 sales market】设置sales和market两个文件夹的权限为770
【chmod 777 pub】设置pub文件夹的权限为777
【chown :marketusers market】设置market文件夹的所属组为marketusers组
【chown :salesusers sales】设置sales文件夹的所属组为salesusers组
第四步 备份配置文件
在修改任何配置文件之前请先备份原有配置文件【cp /etc/samba/smb.conf /etc/samba/smb.conf.bak】备份配置文件
第五步 编辑samba配置文件的共享参数
通过【vim /etc/samba/smb.conf】命令编辑/etc/samba/smb.conf文件。
第六步 建立samba用户
【smbpasswd –a user】建立samba用户
第七步 客户端的连接测试
通过Windows的客户端访问共享目录通过【\\服务器IP】形式,在DOS仿真窗口,可以通过【net use】命令查看当前会在回话的网络连接,通过【net use \\服务器IP /del】命令中断当前正在会话的网络连接,在测试阶段,如果不中断当前正在会话的网络连接,就无法使用另一个用户访问samba了。
子任务二 配置企业特殊文件权限
第一步 分析企业需求。
公司有二个部门( sales market ),销售部和市场部有自己单独的共享目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。(这一个内容与第一个类似,只是用户组变成用户,多了一个用户组,只需要把文件夹所有者给总经理,所属组为用户组就OK)
第二步 建立共享目录。
【mkdir /home/sales】建立销售部共享文件夹
【 mkdir /home/market】建立市场部文件夹
第三步 建立用户以及群组
【groupadd sales】建立sales用户组
【groupadd market】建立market用户组
【useradd -g sales salesuser】建立salesuser用户并加入sales组中
【useradd -g market marketuser】建立marketuser用户并加入market组中
【useradd ceo】建立ceo账号
第四步 建立samba访问账号
【smbpasswd -a salesuser】建立samba用户salesuser
【smbpasswd -a marketuser】建立samba用户marketuser
【smbpasswd -a ceo】建立samba用户ceo
第五步 设置文件夹权限
【chgrp sales /home/sales】修改/home/sales文件夹的所属组为sales组
【chgrp market /home/market】修改/home/ market文件夹的所属组为market组
【chown ceo /home/sales】修改/home/sales文件夹的所有者为ceo用户
【chown ceo /home/market】修改/home/ market文件夹的所有者为ceo用户
【chmod 770 /home/sales】修改/home/sales文件夹的权限为770
【chmod 770 /home/market】修改/home/ market文件夹的权限为770
【chmod g+s /home/sales】为/home/sales目录加上setgid标志
【chmod g+s /home/market】为/home/ market目录加上setgid标志
备注:setgid: 该权限只对目录有效。目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
第六步 备份配置文件
【cp /etc/samba/smb.conf /etc/samba/smb.conf.bak】备份配置文件
第七步 编辑samba的主配置文件
通过【vim /etc/samba/smb.conf】命令编辑smb.conf配置文件,更改的内容如下:
第八步 配置samba服务在系统中运行。
【/etc/init.d/smb restart】或【service smb restart】重启samba服务
【chkconfig rpcbind on】设置rpcbind开机后自动启动
【chkconfig smb on】设置samba服务开机后自动启动
子任务三 配置企业严格文件权限
第一步 功能分析
其实实现这个主要靠加载独立的配置文件来实现,只要把独立的文件设置好相应的权限就OK,SMB主配置文件中加入独立的配置文件,其他不用设置)关于用户的增加我这里就不写出来了,和上面的没有区别。(在此略过)
第二步 复制配置文件
首先把原始的smb.conf复制出来,后面加上相应的用户或用户组,如:smb.conf.user、 smb.conf.group
第三步 配置各自的配置文件
子任务四
第一步 熟悉samba服务器的用户控制语句
public = no #不允许匿名用户访问
browseable = no#隐藏目录,知道目录同样可以访问,系统默认yes
valid users = 用户或列表或@用户组
writable = yes #共享权限可写,目录本身要可写
write list = 用户或列表或@用户组
readonly = yes #是否设置只读(系统默认yes,可以不写
create mask = 0744 #控制客户机创建文件的权限(系统默认0744
directory mask = 0744 #控制客户机创建目录的权限(系统默认0755)
第二步 配置Samba的几个关键字段
public = no #不允许匿名用户访问
browseable = no#隐藏目录,知道目录同样可以访问,系统默认yes
valid users = 用户或列表或@用户组
writable = yes #共享权限可写,目录本身要可写
write list = 用户或列表或@用户组
readonly = yes #是否设置只读(系统默认yes,可以不写)
create mask = 0744 #控制客户机创建文件的权限(系统默认0744)
directory mask = 0744 #控制客户机创建目录的权限(系统默认0755)
第三步 熟悉批量增加SMB用户语句
以下几个设置,可以根据需要增加在全局配置文件里面。虽然简单,但功能不简单
include = /etc/samba/%G.smb.conf #调用用户组相关的配置文件
include = /etc/samba/%U.smb.conf #调用用户相关的配置文件
username map = /etc/samba/smbusers #调用映射用户账号的配置文件
第四步 熟悉管理SMB的用户账号命令
器建好samba服务器以后,还需要对其账户进行维护与管理,下面是其常用的命令以及释义:
【smbpasswd -a】增加一个账号
【smbpasswd -d】禁用一个账号
【smbpasswd –e】启用一个账号
【smbpasswd -x】删除一个账号
【smbpasswd】更改用户密码
pdbedit
【pdbedit -L】列出SMB中的账号
【pdbedit –a】增加一个账号
【pdbedit -x】删除一个账号
第五步 熟悉Linux客户端的访问测试方法
【smbtree 】显示局域网中的所有共享主机和目录列表
【smbtree –D】 只显示局域网中的工作组或域名。后面可以加上-U username%passwd ,则表示是相关用户的访问权限
【nmblookup 】查看局域网的所有主机的ip地址以及netbios主机名或工作组。 smbclient命令格式
【smbclient –L //主机名或IP -U 登录用户名】列出目标主机共享资源列表
【smbclient //主机名或IP/共享目录名 -U 登录用户名】使用共享资源
mount命令格式
【mount//目标IP或主机名/共享目录 挂载点 -o username=用户名】挂载共享
【umount 挂载点】 卸载共享
【smbtar -s server –u user –p passwd –x shareneam –t output.tar 】把远程的内容备份到本地
扩展训练五
一、选择题
1.Samba服务器的默认安全级别是(c)
A.share B. user C.server D.domain
2.以下启动Samba服务的命令有(A)
A.[service smb restart] B.[ /etc/samba/smb/ start] C.[service smb stop] D.[service smb start]
3.Samba的主要配置文件是(B)
A. /etc/smb.ini B. /etc/samba.conf C. /etc/smb.conf D. /etc/samba/smb.conf