实验需求:1) 使用RPM包安装samba服务
2) 实现匿名访问,验证可以读写文件、目录
3) 实现指定用户的访问
4) 实现指定用户的访问,并为用户赋予不同的权限
启动LINUX系统,进行SAMBA服务器配置,并截图。
1. 为linux服务器的网卡设置IP地址:192.168.x.1/2,设置完毕后进入命令终端,查看设定的IP是否生效,用命令:ifconfig eth0,如果没有生效,重启网络服务,用命令:service network restart;虚拟机 XP系统IP地址设置为:192.168.x.2/24。(注:x为自己学号最后两位)
2. 在/media目录下新建目录RHEL,把第二个光驱/dev/sr1挂载到该目录(注:挂载前先把第二个虚拟光驱装载ISO文件,并连接)
#mkdir /media/RHEL
#mount /dev/sr1 /media/RHEL
4.安装Samba程序包
安装前先用ls搜索Samba相关软件包,命令提示:#ls /media/RHEL/Packages/samba*
命令提示:#rpm -ivh /media/RHEL/Packages/samba-3.6.9-164.el6.i686.rpm
5. 实现匿名访问,验证可以读写文件、目录
1) 用vi命令编辑samba主配置文件
[root@localhostsamba]# vi /etc/samba/smb.conf #编辑主配置文件
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
log file = /var/log/samba/log.%m
max log size = 50
security = share
passdb backend = tdbsam
以上为[global]全局模式的配置内容,其他保持默认即可,我们关心的是如果要实现匿名访问,只需要修改 security 使安全级别为share(默认的为user)
下面是对share共享目录进行配置,在配置文件的末尾插入以下行
[share] #指定目录的共享名称
path= /opt/share #指定共享share这个目录
public= yes #public设为yes允许匿名用户访问
browseable= yes #让匿名用户可以看到共享内容
writable= yes #设置可以有写入的权限
create mask = 0644 #设置新建文件的权限,表示属主具有读写权限,其他人都只有只读权限(rw-r--r--)
directory mask = 0755 #设置新建目录的权限,表示属主具有读写执行权限,其他人没有写入权限(rwxr-xr-x)
2)新建共享目录并启动samba服务
[root@localhostsamba]# mkdir /opt/share #创建share共享目录
[root@localhostsamba]# chmod 777 /opt/share #修改权限为777
[root@localhostsamba]# service smb start #启动samba服务
3)测试之前,必须把防火墙和selinux关掉
[root@localhost samba]# service iptables stop #关掉防火墙
[root@localhost samba]# setenforce 0 #关掉selinux服务
6. 效果验证:
1) 在客户机XP系统上测试能否ping通服务器,进入CMD控制台,ping 服务器IP 192.168.x.1
2) 在【开始】菜单的运行框中输入\\192.168.x.1,可以看到名为share的共享文件夹
3) 进入share文件夹,新建文件aa.txt和文件夹guest,在文件aa.txt里可以写入任何内容,文件夹下也能够再新建文件,和配置文件里的设置是一样的,匿名访问成功。
4) 切换到linux服务器,我们通过命令ls –l /opt/share查看共享文件夹下匿名用户访问时新建的文件,发现属主和属组都是nobody,新建的文件权限是644,文件夹的权限是755
nobody是一个系统账号,匿名访问新建的就会显示为nobody
7. 实现指定用户的访问
1) 用vi命令samba主配置文件
[root@localhost 桌面]# vi /etc/samba/smb.conf #编辑主配置文件
因为是要指定用户进行访问了,所以[global]全局模式里面只需要修改security ,使默认安全级别为user(默认值)
security = user
下面是根据具体的共享目录进行配置,在配置文件的末尾插入以下行,新建一个test 的目录的共享配置,不让他匿名访问,只有指定用户才能访问
[test] #指定目录的共享名称
path= /opt/test #指定共享test目录
browseable= yes #设置可以看到共享内容
writable= yes #设置可以有写入的权限
create mask = 0644 #设置新建文件的权限,表示属主具有读写权限,其他人都只有只读权限(rw-r--r--)
directory mask = 0755 #设置新建文件夹的权限,表示属主具有读写执行权限,其他人没有写入权限(rwxr-xr-x)
2) 系统当中的用户当然也可以访问共享目录,但是我们这里希望用samba自己的账户来访问,新建两个用于samba的账户并设置他们的密码,这样他们可以作为samba用户使用但是不能够登陆系统
[root@localhost 桌面]# useradd lily #创建账户lily和john
[root@localhost 桌面]# useradd john
[root@localhost 桌面]# smbpasswd -a lily #设置账户为samba用户并设置密码
[root@localhost 桌面]# smbpasswd –a john
3)新建共享目录并启动samba服务
[root@localhost 桌面]# mkdir /opt/test #创建test共享目录
[root@localhost 桌面]# chmod 777 /opt/test #修改权限为777
[root@localhost 桌面]# service smb start #启 动samba服务
4)测试之前,必须把防火墙和selinux关掉
[root@localhost 桌面]# service iptables stop #关掉防火墙
[root@localhost 桌面]# setenforce 0 #关掉selinux服务
5). 效果验证:
1) 在【开始】菜单的运行框中输入\\192.168.X.1\test,跳出对话框,输入lily的账号和密码
2) lily这个用户可以登陆并且对test共享目录可以进行读写操
3) 在共享目录test里面新建了一个名为lily.txt的文件,回到服务器通过命令ls –l /opt/test查看这个文件的权限,该文件的创建者和属组都是lily
4) 用另一用户john登陆到共享文件夹测试
注:测试之前先要在客户机上清除之前的连接否则会因为缓存而直接进入共享目录
8.实现指定用户的访问,并为用户赋予不同的权限
1)为了测试访问的用户的不同权限,在[test]配置中加入以下两行
valid users =lily, john #允许这两个用户可以访问
write list =john #只允许john这个用户可以写入
2) 效果验证
a.重启samba服务
[root@localhost 桌面]# service smb restart #重启samba服务
b. 客户机上net use * /d清除连接
c.以lily身份登陆访问共享文件夹,测试写入文件
我们发现,我们设置了只有john可以写入,为什么用lily登陆进去的时候还是可以写入文件呢?我们回到服务器上检查配置文件
所以要使配置生效就必须删除writable = yes这一行配置
[root@localhost 桌面]# service smb restart #重启samba服务
d. 清除连接(net use * /d),还是以lily的身份登陆,发现创建文件的时候被拒绝
e. 退出lily,清除连接,再用john登陆,john写入文件和文件夹成功,验证权限成功。
9. 实现对特定的访问地址进行限制
若要拒绝谁访问,只需要在主配置文件的[test]中添加一行:hosts deny = 192.168.X. #192.168.X.表示192.168.X.0这个网段,让这个网段的所以主机都不可以访问
1)效果验证
[root@localhost 桌面]# service smb restart #重启服务
2)客户机XP系统清除连接(net use * /d)
这次使用john这个账号来访问,可以访问其他共享文件夹但是因为客户机ip地址为192.168.X.2,其IP是192.168.X.0这个网段,在test共享文件夹拒绝访问的网段里面,所以当打开test文件夹时提示了拒绝访问
10.实验总结:
1) samba服务在Linux的系统中实现了微软的SMB/CIFS 网络协议,在部署windows、Linux混合平台的企业环境时,能够很好的解决不同系统之间的文件互访问题,使文件共享变得更加容易,是非常强大的功能。
2) samba服务提供了几种很实用的访问共享权限,也提供了服务器客户端的访问控制,在修改配置文件时一定要注意各个权限的配置是否冲突或者遗漏,平时可多做权限方面的测试。