共计 10029 个字符,预计需要花费 26 分钟才能阅读完成。
1. 实验需求:
1) 使用 RPM 包安装 samba 服务
2) 实现匿名访问,验证可以读写文件、目录
3) 实现指定用户的访问
4) 实现指定用户的访问,并为用户赋予不同的权限
5) 实现用户的别名访问,并测试权限
6) 实现对特定的访问地址进行限制
7) 实现访问 windows 系统中的共享资源
2. 实验环境:
Linux 服务器系统版本:Red Hat Enterprise Linux 6.5 IP:192.168.10.3
Windows 客户机系统版本:Windows 7 Ultimate x64 IP:192.168.10.2
Samba 软件版本:samba-3.6.9
3. 实验步骤:
基本安装操作
A. 挂载系统光盘并安装 samba
要安装 samba 服务需要从 rpm 软件包安装,rpm 安装包一般放在系统光盘中的 Packages 目录中,我们首先用 mount 命令看一下是否挂载了光盘到系统中
如果没有挂载,将光盘手动挂载到系统的 mnt 目录下
查看光盘已经被挂载
在 Packages 目录下找到 samba 服务的软件包并安装
B. 查看 samba 配置文件
安装好 samba 之后我们要想服务器能够按照我们的意愿工作就要去修改配置文件了
可以用 rpm -qc 来 查看一个已经安装软件的文档安装位置
发现并没有显示 conf 配置文件,但根据经验一般 conf 配置文件都会放在 /etc 目录下,查找 /etc/samba/ 目录,找到主配置文件 smb.conf
[root@localhost~]# more /etc/samba/smb.conf 查看文件里面的内容,发现内容很长,并且有很多 #号的注释
我们为了看起来方便,可以过滤掉所有带 #号的行,并把过滤过后的文件内容保存为另外一个文件 smb.con:
[root@localhost ~]# grep -v”#” /etc/samba/smb.conf > /etc/samba/smb.con
查看发现已经有了 smb.con 文件,建议原来以.conf 结尾的配置文件也不要删除,可以给它改个名字做个备份,以防将来配置出错还可以把它继续拿来修改
[root@localhost ~]# cd /etc/samba #切换到 samba 目录
[root@localhost samba]# mv smb.confsmb.conf.back #将 conf 文件备份
[root@localhost samba]# mv smb.consmb.conf #将 smb.con 改名为 smb.conf
实现匿名访问,验证可以读写文件、目录
[root@localhostsamba]# vi 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=guest ok,设为 yes 允许匿名用户访问
browseable= yes #让匿名用户可以看到共享内容
writable= yes #设置可以有写入的权限
createmask = 0644 #设置新建文件的权限,表示属主具有读写权限,其他人都只有只读权限(rw-r–r–)
directory mask = 0755 #设置新建目录的权限,表示属主具有读写执行权限,其他人没有写入权限(rwxr-xr-x)
A. 修改后的脚本:
[root@localhostsamba]# mkdir /opt/share #创建 share 共享目录
[root@localhostsamba]# chmod 777 /opt/share #修改权限为 777
[root@localhostsamba]# service smb start #启动 samba 服务
[root@localhostsamba]# netstat -ant #查看网络端口状态
139 和 445 两个 samba 服务的端口正在被监听,samba 服务是正常的,下面就可以去客户机上测试了。测试之前,必须把防火墙和 selinux 关掉
[root@localhost samba]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则:[确定]
iptables:正在卸载模块:[确定]
[root@localhost samba]# setenforce 0
———————————— 分割线 ————————————
如何在 Ubuntu 14.04 中使用 Samba 共享文件 http://www.linuxidc.com/Linux/2014-07/104894.htm
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm
Samba 文件共享服务器加入 Windows Server 2003 域 http://www.linuxidc.com/Linux/2013-06/86391.htm
Samba 安装配置 http://www.linuxidc.com/Linux/2013-06/86101.htm
CentOS 6.2 下 Samba 服务的配置 http://www.linuxidc.com/Linux/2013-01/78390.htm
Samba 服务器安装和配置 http://www.linuxidc.com/Linux/2014-12/110459.htm
Win7+VMware+Fedora18 Samba 服务器的搭建图解 http://www.linuxidc.com/Linux/2013-01/78234.htm
———————————— 分割线 ————————————
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-07/119842p2.htm
B. 效果验证:
在客户机上测试能否 ping 通服务器
在【开始】菜单的搜索框中输入 \\192.168.10.3,可以看到名为 share 的共享文件夹
进入文件夹,可以新建文件和文件夹,文件里可以写入任何内容,文件夹下也能够再新建文件,和配置文件里的设置是一样的,匿名访问成功。
回到服务器,我们查看共享文件夹下匿名用户访问时新建的文件,发现属主和属组都是 nobody,新建的文件权限是 644,文件夹的权限是 755
nobody 是一个系统账号,匿名访问新建的就会显示为 nobody
实现指定用户的访问
因为是要指定用户进行访问了,所以 [global] 全局模式里面只需要修改 security
使默认安全级别为 user
security = user
下面是根据具体的共享目录进行配置,在配置文件的末尾插入以下行,新建一个 test 的目录的共享配置,不让他匿名访问,只有指定用户才能访问
[test] #指定目录的共享名称
path= /opt/test #指定共享 test 目录
browseable= yes #设置可以看到共享内容
writable= yes #设置可以有写入的权限
createmask = 0644 #设置新建文件的权限,表示属主具有读写权限,其他人都只有只读权限(rw-r–r–)
directory mask = 0755 #设置新建文件夹的权限,表示属主具有读写执行权限,其他人没有写入权限(rwxr-xr-x)
系统当中的用户当然也可以访问共享目录,但是我们这里希望用 samba 自己的账户来访问,新建两个用于 samba 的账户不设置他们的密码,这样他们可以作为 samba 用户使用但是不能够登陆系统
[root@localhost samba]# useradd jery #创建账户 jery 和 jene
[root@localhost samba]# useradd jene
[root@localhost samba]# smbpasswd -ajery #设置账户为 samba 用户并设置密码
New SMB password:
Retype new SMB password:
Added user jery.
[root@localhost samba]# smbpasswd -ajene
New SMB password:
Retype new SMB password:
Added user jene.
[root@localhost samba]#
[root@localhost samba]# pdbedit -L #查看新建的 samba 账户信息
jery:500:
jene:501:
[root@localhost samba]# mkdir /opt/test #创建共享目录 test
[root@localhost samba]# chmod 777/opt/test #修改权限为 777
[root@localhost samba]# service smbrestart #重启 samba 服务,这里也可以使用 reload,但是 reload 是重新加载配置并不会和客户机彻底断开连接,这里为了测试用了 restart
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
A. 修改后的脚本
B. 效果验证
测试之前先要在客户机上清除之前的连接否则会因为缓存而直接进入共享目录
在【开始】菜单的搜索框中输入 \\192.168.10.3\test,跳出对话框,输入 jery 的账号和密码
jery 这个用户可以登陆并且对 test 共享目录可以进行读写操作
在共享目录里面新建了一个名为 jery 的文件,回到服务器查看这个文件的权限,显示为 jery
1. 实验需求:
1) 使用 RPM 包安装 samba 服务
2) 实现匿名访问,验证可以读写文件、目录
3) 实现指定用户的访问
4) 实现指定用户的访问,并为用户赋予不同的权限
5) 实现用户的别名访问,并测试权限
6) 实现对特定的访问地址进行限制
7) 实现访问 windows 系统中的共享资源
2. 实验环境:
Linux 服务器系统版本:Red Hat Enterprise Linux 6.5 IP:192.168.10.3
Windows 客户机系统版本:Windows 7 Ultimate x64 IP:192.168.10.2
Samba 软件版本:samba-3.6.9
3. 实验步骤:
基本安装操作
A. 挂载系统光盘并安装 samba
要安装 samba 服务需要从 rpm 软件包安装,rpm 安装包一般放在系统光盘中的 Packages 目录中,我们首先用 mount 命令看一下是否挂载了光盘到系统中
如果没有挂载,将光盘手动挂载到系统的 mnt 目录下
查看光盘已经被挂载
在 Packages 目录下找到 samba 服务的软件包并安装
B. 查看 samba 配置文件
安装好 samba 之后我们要想服务器能够按照我们的意愿工作就要去修改配置文件了
可以用 rpm -qc 来 查看一个已经安装软件的文档安装位置
发现并没有显示 conf 配置文件,但根据经验一般 conf 配置文件都会放在 /etc 目录下,查找 /etc/samba/ 目录,找到主配置文件 smb.conf
[root@localhost~]# more /etc/samba/smb.conf 查看文件里面的内容,发现内容很长,并且有很多 #号的注释
我们为了看起来方便,可以过滤掉所有带 #号的行,并把过滤过后的文件内容保存为另外一个文件 smb.con:
[root@localhost ~]# grep -v”#” /etc/samba/smb.conf > /etc/samba/smb.con
查看发现已经有了 smb.con 文件,建议原来以.conf 结尾的配置文件也不要删除,可以给它改个名字做个备份,以防将来配置出错还可以把它继续拿来修改
[root@localhost ~]# cd /etc/samba #切换到 samba 目录
[root@localhost samba]# mv smb.confsmb.conf.back #将 conf 文件备份
[root@localhost samba]# mv smb.consmb.conf #将 smb.con 改名为 smb.conf
实现匿名访问,验证可以读写文件、目录
[root@localhostsamba]# vi 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=guest ok,设为 yes 允许匿名用户访问
browseable= yes #让匿名用户可以看到共享内容
writable= yes #设置可以有写入的权限
createmask = 0644 #设置新建文件的权限,表示属主具有读写权限,其他人都只有只读权限(rw-r–r–)
directory mask = 0755 #设置新建目录的权限,表示属主具有读写执行权限,其他人没有写入权限(rwxr-xr-x)
A. 修改后的脚本:
[root@localhostsamba]# mkdir /opt/share #创建 share 共享目录
[root@localhostsamba]# chmod 777 /opt/share #修改权限为 777
[root@localhostsamba]# service smb start #启动 samba 服务
[root@localhostsamba]# netstat -ant #查看网络端口状态
139 和 445 两个 samba 服务的端口正在被监听,samba 服务是正常的,下面就可以去客户机上测试了。测试之前,必须把防火墙和 selinux 关掉
[root@localhost samba]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则:[确定]
iptables:正在卸载模块:[确定]
[root@localhost samba]# setenforce 0
———————————— 分割线 ————————————
如何在 Ubuntu 14.04 中使用 Samba 共享文件 http://www.linuxidc.com/Linux/2014-07/104894.htm
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm
Samba 文件共享服务器加入 Windows Server 2003 域 http://www.linuxidc.com/Linux/2013-06/86391.htm
Samba 安装配置 http://www.linuxidc.com/Linux/2013-06/86101.htm
CentOS 6.2 下 Samba 服务的配置 http://www.linuxidc.com/Linux/2013-01/78390.htm
Samba 服务器安装和配置 http://www.linuxidc.com/Linux/2014-12/110459.htm
Win7+VMware+Fedora18 Samba 服务器的搭建图解 http://www.linuxidc.com/Linux/2013-01/78234.htm
———————————— 分割线 ————————————
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-07/119842p2.htm
实现指定用户的访问,并为用户赋予不同的权限
接着为了测试访问的用户的不同权限,在 [test] 配置中加入以下两行
valid users =jery, jene #允许这两个用户可以访问
write list =jene #只允许 jene 这个用户可以写入
A. 修改后的脚本
B. 效果验证
[root@localhostsamba]# service smb restart #重启服务
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
客户机上 net use * / d 清除连接
这次以 jery 登陆,测试写入文件
这个时候明明我们设置了只有 jene 可以写入为什么用 jery 登陆进去的时候还是可以写入文件呢?我们回到服务器上检查配置文件
所以要使配置生效就必须删除 writable = yes 这一行配置
[root@localhostsamba]# service smb restart #重启服务
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
清除连接(net use * /d),还是以 jery 的身份登陆,发现创建文件的时候被拒绝
回到服务器,写入一行内容到 test 文件中:
[root@localhostsamba]# echo “this is test” > /opt/test/test.txt
客户机上已经有名为 test 的文件了,当打开这个文件,为它加上一行内容时被拒绝
退出 jery,清除连接,再用 jene 登陆,jene 写入文件和文件夹成功。
实现用户的别名访问,并测试权限
samba 目录下有一个 smbusers 的文件,这个文件就是设置别名的
[root@localhostsamba]# vi smbusers
打开这个文件,在文件的末尾加上一行 jene = t01 t02 t03 相当于给 jene 起了三个别名,将后面三个的用户名都映射到 jene,密码不变,实际登陆的账号还是 jene
接着在主配置文件的 [global] 中添加:username map = /etc/samba/smbusers配置映射关联,用户名就指向了 smbusers 这个文件中设置的内容
A. 修改后的脚本
B. 效果验证
[root@localhostsamba]# service smb restart #重启服务
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
客户机清除连接(net use * /d)
用 t01 账号登陆 \\192.168.10.3
看到多了一个名为 jene 的共享文件夹,是因为全局配置中有 [homes] 家目录的配置,谁登陆就会把自己的家目录共享,因为 t01 映射的还是 jene 账号,所以 jene 登陆时也会看到自己的家目录也被共享了,在家目录的共享文件夹中是可以进行任何操作的
在 test 文件夹中新建一个名为 iamt01 的文件,回到服务器查看这个文件的属性,属主和属组是 jene 证明登陆的还是 jene,t02 和 t03 登陆也是这样,这里就不多做测试了
实现对特定的访问地址进行限制
若要拒绝谁访问,只需要在主配置文件的 [test] 中添加一行:hosts deny = 192.168.10. 10.0.0. #192.168.10. 表示 192.168.10.0 这个网段,让这个网段的所以主机都不可以访问,这里设置拒绝两个网段 192.168.10.0 和 10.0.0.0
A. 修改后的脚本
B. 效果验证
[root@localhostsamba]# service smb restart #重启服务
关闭 SMB 服务:[确定]
启动 SMB 服务:[确定]
客户机清除连接(net use * /d)
这次使用 t02 这个账号来访问,可以访问其他共享文件夹但是因为客户机 ip 地址为 192.168.10.2,在 test 共享文件夹拒绝访问的网段里面所以当打开 test 文件夹时提示了拒绝访问
实现访问 windows 系统中的共享资源
我们在客户机(win7 系统)上共享了一个名为 LAMP 的文件夹
[root@localhost samba]# smbclient -L192.168.10.2 #列出客户机中的共享资源
[root@localhost samba]# mount.cifs//192.168.10.2/LAMP /tmp/ #如果想要访问这个 LAMP 文件夹,可以将 LAMP 挂载到服务器的 tmp 目录下
[root@localhost ~]# df -hT #查看挂载情况,已挂载
查看挂载后的 tmp 目录下的内容,LAMP 里面都是 tar 压缩包
[root@localhost samba]# cp/tmp/apr-1.4.6.tar.gz ~ #将其中一个压缩文件拷贝到根目录下(根目录可以是 /root 也可以直接写成~)
[root@localhostsamba]# umount /tmp #把挂载的 LAMP 从 tmp 目录下卸载掉
卸载之后查看 tmp 目录显示了原来 tmp 目录下的文件和目录
4. 实验总结:
1) samba 服务在 Linux 的系统中实现了微软的 SMB/CIFS 网络协议,在部署 windows、Linux 混合平台的企业环境时,能够很好的解决不同系统之间的文件互访问题,使文件共享变得更加容易,是非常强大的功能
2) samba 服务提供了几种很实用的访问共享权限,也提供了服务器客户端的访问控制,在修改配置文件时一定要注意各个权限的配置是否冲突或者遗漏,平时可多做权限方面的测试。
Samba 的详细介绍:请点这里
Samba 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/119842.htm