Samba服务:在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,应用范围主要是Windows和Linux系统共存的网络,主要是提供共享文件和共享打印机的服务,使得跨平台的文件共享更容易。
实验要求:
1.安装装samba软件包,开启samba服务。
2.设置可匿名访问共享:将/var/share/public/目录共享为public,所有用户都可以访问,但只有只读权限。
3.设置需用户验证的共享:将/var/share/training/目录共享为peixun,允许root和技术部所有员工访问,但只有root用户可以写入,并要求root用户可以用adm账户访问,禁止其他人访问。
4.在linux客户机访问共享,并使用mount命令把public共享目录挂载到/media/smbdir目录下,从/media/smbdir目录下使用共享文件。
1.安装samba软件包
可以先查看linux系统中samba相关软件的安装情况
挂载系统镜像光盘(centos6.5),安装samba服务器核心软件包。
开启smb服务和nmb服务
Samba服务器提供两种服务程序:smbd 负责提供服务器中的共享资源
nmbd 负责提供基于NetBIOS协议的主机名称解析,以便为Windows网络中的主机进行 查询服务。
验证服务进程状态,查看相关端口是否处于监听状态。
Smdb服务程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议)
Nmbd服务程序负责监听UDP协议的137-138端口(NetBIOS协议)
注意:开启samba相关服务之前,需要现将网卡配置完成。
2.主配置文件/etc/samba/smb.cof各部分含义
全局配置:这部分配置项内容对整个Samba服务器都有效,主要的配置项如下
workgroup 设置服务器所在的工作组名称
server string 设置服务器的说明文字
security 设置服务器的安全级别即验证登陆方式,共有四种:
share(可匿名访问)
user(需要本服务器验证用户名及密码)
server(需要指定另一台服务器来验证用户名及密码)
domain(由windows域控制器验证用户名及密码)
log file 设置samba服务器的日志文件,默认设置为“/var/log/samba/log.%m”,按每客户机建立一个日志文件,其中“%m”变量表示客户端主机名或IP地址。
passwd backend 设置共享账户文件类型,默认使用tdbsam(TDB数据库文件)。
宿主目录共享设置:设置linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主文件夹中。
打印机共享设置:可以在这里配置共享打印机设备
comment 设置对应共享目录的注释、说明信息
path 设置对应共享目录在服务器中的文件夹路径
browseable 设置共享目录在“网上邻居”中是否可见,设置为no时相当于隐藏共享目录。
guest ok 与“public”配置项作用相同,设置是否所有人都可以访问共享目录。
writable 与“read only”配置项作用相反,设置该共享目录是否可写。
3.配置可匿名访问的共享
在修改配置文件smb.conf之前,先将其备份。
修改smb.conf配置文件
在[global]全局配置下,将安全级别设置为share。
添加共享目录public
选项:public 是否所有人都可以访问此目录,等同于”guest ok”
重新载入smb.conf文件,更新服务。
设置目录/var/share/public/的访问权限,因为在配置文件中已经将共享目录设置为了只读,所以这里给权限为777。
4.配置用户验证的共享
先创建jishubu组和fjc系统用户,并将fjc的基本组改为jishubu
(注意:共享用户必须对应系统中存在的用户)
命令:”pdbedit” 对共享用户进行管理
选项:”-a” 添加
“-u” 指定用户名称
“-L” 列出所有的samba共享用户
“-v” 输出详细内容
“-x” 删除指定的samba共享用户
(注意:共享需要授权一个组时,需要为组内每个系统用户都创建对应的samba共享用户)
修改配置文件/etc/samba/smbusers,给root设置一个别名adm
启用别名配置文件
使用用户验证访问samba共享,需要将安全级别提升为user
添加peixun的共享目录配置段
选项:valid users 能够使用该共享资源的用户和组
write list 能够读取和写入该共享资源的用户和组
重新载入配置文件smb.conf
对共享目录/var/share/training/设置访问权限
补充:
hosts allow 指定仅允许访问共享的客户机地址段(白名单)
host deny 指定仅拒绝访问共享的客户机地址段(黑名单)
testparm程序可以对smb.conf配置文件的正确性进行检查
5.访问共享文件夹
Windows系统访问共享的方法比较简单,这里说一下linux访问samba共享的方法。
命令:”smbclient -L” 查询目标主机的共享资源列表(在工作组环境,不需要用户验证,在提示输入密码时直接按Eenter键。)
登录并访问共享文件夹(允许匿名访问的不需要指定密码,直接回车。)
在”smb:\>”环境中,使用”?”或”help”命令查看各种交互命令的在线帮助
选项:”-U” 指定用户访问需要验证的共享文件,这里的用户adm便是root的别名。
将共享文件夹挂载到本地,即可通过挂载点目录直接使用共享文件夹的内容。
注意:当samba服务器的默认安全级别为”user”时,对于那些允许匿名访问的共享文件夹,在客户机中通过smbclient工具任然可以正常连接访问,但使用mount工具时将被拒绝挂载。
Samba常见的配置项:
comment: 对共享目录的备注
path:共享的路径。
allow hosts和deny hosts:允许或者拒绝的主机
writeable:目录缺省是否可写,也可以用readonly = no来设置可写
valid users:能够使用该共享资源的用户和组
invalid users:不能够使用该共享资源的用户和组
read list:只能读取该共享资源的用户和组
write list:能读取和写该共享资源的用户和组
admin list:能管理该共享资源(包括读写和权限赋予等)的用户和组
public:该共享资源是否能给游客帐号访问,等同于”guest ok”
hide dot files:是否隐藏以“.”号开头的文件
create mode:新建立的文件的属性,一般是0644
directory mode:新建立的目录的属性,一般是0755
sync always:对该共享资源进行写操作后是否进行同步操作
short preserve case:不管文件名大小写
preserve case:保持大小写
case sensitive:是否对大小写敏感,一般选no,不然可能引起错误
mangle case:指明混合大小写
default case:缺省的文件名是全部大写还是小写(lower/upper)
force user:强制制定新建立文件的属主
wide links:是否允许共享链接文件
max connections = n:设定最大并发连接数
delete readonly:能否删除共享资源里面已经被定义为只读的文件