阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RHEL6.5下部署Samba企业级文件服务器实战

131次阅读
没有评论

共计 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 命令看一下是否挂载了光盘到系统中

RHEL6.5 下部署 Samba 企业级文件服务器实战

如果没有挂载,将光盘手动挂载到系统的 mnt 目录下

RHEL6.5 下部署 Samba 企业级文件服务器实战

查看光盘已经被挂载

RHEL6.5 下部署 Samba 企业级文件服务器实战

在 Packages 目录下找到 samba 服务的软件包并安装

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

B.   查看 samba 配置文件

安装好 samba 之后我们要想服务器能够按照我们的意愿工作就要去修改配置文件了

可以用 rpm -qc 来 查看一个已经安装软件的文档安装位置

RHEL6.5 下部署 Samba 企业级文件服务器实战

发现并没有显示 conf 配置文件,但根据经验一般 conf 配置文件都会放在 /etc 目录下,查找 /etc/samba/ 目录,找到主配置文件 smb.conf

RHEL6.5 下部署 Samba 企业级文件服务器实战

[root@localhost~]# more /etc/samba/smb.conf 查看文件里面的内容,发现内容很长,并且有很多 #号的注释

RHEL6.5 下部署 Samba 企业级文件服务器实战

我们为了看起来方便,可以过滤掉所有带 #号的行,并把过滤过后的文件内容保存为另外一个文件 smb.con:

[root@localhost ~]# grep -v”#” /etc/samba/smb.conf > /etc/samba/smb.con

 

查看发现已经有了 smb.con 文件,建议原来以.conf 结尾的配置文件也不要删除,可以给它改个名字做个备份,以防将来配置出错还可以把它继续拿来修改

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

          [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       

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

实现匿名访问,验证可以读写文件、目录

 

[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.   修改后的脚本:

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

[root@localhostsamba]# mkdir /opt/share  #创建 share 共享目录

[root@localhostsamba]# chmod 777 /opt/share  #修改权限为 777

 

[root@localhostsamba]# service smb start  #启动 samba 服务

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

[root@localhostsamba]# netstat -ant  #查看网络端口状态

RHEL6.5 下部署 Samba 企业级文件服务器实战

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 通服务器

RHEL6.5 下部署 Samba 企业级文件服务器实战

在【开始】菜单的搜索框中输入 \\192.168.10.3,可以看到名为 share 的共享文件夹

RHEL6.5 下部署 Samba 企业级文件服务器实战

进入文件夹,可以新建文件和文件夹,文件里可以写入任何内容,文件夹下也能够再新建文件,和配置文件里的设置是一样的,匿名访问成功。

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

回到服务器,我们查看共享文件夹下匿名用户访问时新建的文件,发现属主和属组都是 nobody,新建的文件权限是 644,文件夹的权限是 755

RHEL6.5 下部署 Samba 企业级文件服务器实战

nobody 是一个系统账号,匿名访问新建的就会显示为 nobody

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

 

实现指定用户的访问

因为是要指定用户进行访问了,所以 [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.   修改后的脚本

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

B.   效果验证

测试之前先要在客户机上清除之前的连接否则会因为缓存而直接进入共享目录

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

在【开始】菜单的搜索框中输入 \\192.168.10.3\test,跳出对话框,输入 jery 的账号和密码

RHEL6.5 下部署 Samba 企业级文件服务器实战

jery 这个用户可以登陆并且对 test 共享目录可以进行读写操作

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

在共享目录里面新建了一个名为 jery 的文件,回到服务器查看这个文件的权限,显示为 jery 

wKioL1SG-QTzLDWcAAA7Xz0P21I513.jpg

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 命令看一下是否挂载了光盘到系统中

RHEL6.5 下部署 Samba 企业级文件服务器实战

如果没有挂载,将光盘手动挂载到系统的 mnt 目录下

RHEL6.5 下部署 Samba 企业级文件服务器实战

查看光盘已经被挂载

RHEL6.5 下部署 Samba 企业级文件服务器实战

在 Packages 目录下找到 samba 服务的软件包并安装

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

B.   查看 samba 配置文件

安装好 samba 之后我们要想服务器能够按照我们的意愿工作就要去修改配置文件了

可以用 rpm -qc 来 查看一个已经安装软件的文档安装位置

RHEL6.5 下部署 Samba 企业级文件服务器实战

发现并没有显示 conf 配置文件,但根据经验一般 conf 配置文件都会放在 /etc 目录下,查找 /etc/samba/ 目录,找到主配置文件 smb.conf

RHEL6.5 下部署 Samba 企业级文件服务器实战

[root@localhost~]# more /etc/samba/smb.conf 查看文件里面的内容,发现内容很长,并且有很多 #号的注释

RHEL6.5 下部署 Samba 企业级文件服务器实战

我们为了看起来方便,可以过滤掉所有带 #号的行,并把过滤过后的文件内容保存为另外一个文件 smb.con:

[root@localhost ~]# grep -v”#” /etc/samba/smb.conf > /etc/samba/smb.con

 

查看发现已经有了 smb.con 文件,建议原来以.conf 结尾的配置文件也不要删除,可以给它改个名字做个备份,以防将来配置出错还可以把它继续拿来修改

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

          [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       

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

实现匿名访问,验证可以读写文件、目录

 

[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.   修改后的脚本:

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

[root@localhostsamba]# mkdir /opt/share  #创建 share 共享目录

[root@localhostsamba]# chmod 777 /opt/share  #修改权限为 777

 

[root@localhostsamba]# service smb start  #启动 samba 服务

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

[root@localhostsamba]# netstat -ant  #查看网络端口状态

RHEL6.5 下部署 Samba 企业级文件服务器实战

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.   修改后的脚本

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

B.   效果验证

 

[root@localhostsamba]# service smb restart  #重启服务

关闭 SMB 服务:[确定]

启动 SMB 服务:[确定]

 

客户机上 net use * / d 清除连接

 

这次以 jery 登陆,测试写入文件

RHEL6.5 下部署 Samba 企业级文件服务器实战

这个时候明明我们设置了只有 jene 可以写入为什么用 jery 登陆进去的时候还是可以写入文件呢?我们回到服务器上检查配置文件

RHEL6.5 下部署 Samba 企业级文件服务器实战

所以要使配置生效就必须删除 writable = yes 这一行配置

RHEL6.5 下部署 Samba 企业级文件服务器实战

[root@localhostsamba]# service smb restart  #重启服务

关闭 SMB 服务:[确定]

启动 SMB 服务:[确定]

清除连接(net use * /d),还是以 jery  的身份登陆,发现创建文件的时候被拒绝

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

回到服务器,写入一行内容到 test 文件中:

[root@localhostsamba]# echo “this is test” > /opt/test/test.txt

客户机上已经有名为 test 的文件了,当打开这个文件,为它加上一行内容时被拒绝

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

退出 jery,清除连接,再用 jene 登陆,jene 写入文件和文件夹成功。

 

RHEL6.5 下部署 Samba 企业级文件服务器实战

wKiom1SG-UyAHhfAAAGx1bgf0DA230.jpg

实现用户的别名访问,并测试权限

samba 目录下有一个 smbusers 的文件,这个文件就是设置别名的

RHEL6.5 下部署 Samba 企业级文件服务器实战

[root@localhostsamba]# vi smbusers 

RHEL6.5 下部署 Samba 企业级文件服务器实战

打开这个文件,在文件的末尾加上一行 jene = t01 t02 t03  相当于给 jene 起了三个别名,将后面三个的用户名都映射到 jene,密码不变,实际登陆的账号还是 jene

接着在主配置文件的 [global] 中添加:username map = /etc/samba/smbusers配置映射关联,用户名就指向了 smbusers 这个文件中设置的内容

 

A.   修改后的脚本 

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

B.   效果验证

[root@localhostsamba]# service smb restart  #重启服务

关闭 SMB 服务:[确定]

启动 SMB 服务:[确定]

 

客户机清除连接(net use * /d)

 

用 t01 账号登陆 \\192.168.10.3

RHEL6.5 下部署 Samba 企业级文件服务器实战

看到多了一个名为 jene 的共享文件夹,是因为全局配置中有 [homes] 家目录的配置,谁登陆就会把自己的家目录共享,因为 t01 映射的还是 jene 账号,所以 jene 登陆时也会看到自己的家目录也被共享了,在家目录的共享文件夹中是可以进行任何操作的

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

在 test 文件夹中新建一个名为 iamt01 的文件,回到服务器查看这个文件的属性,属主和属组是 jene 证明登陆的还是 jene,t02 和 t03 登陆也是这样,这里就不多做测试了

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战 

 

实现对特定的访问地址进行限制

若要拒绝谁访问,只需要在主配置文件的 [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.   修改后的脚本RHEL6.5 下部署 Samba 企业级文件服务器实战

 

 

B.   效果验证

[root@localhostsamba]# service smb restart  #重启服务

关闭 SMB 服务:[确定]

启动 SMB 服务:[确定]

 

客户机清除连接(net use * /d)

 

这次使用 t02 这个账号来访问,可以访问其他共享文件夹但是因为客户机 ip 地址为 192.168.10.2,在 test 共享文件夹拒绝访问的网段里面所以当打开 test 文件夹时提示了拒绝访问

RHEL6.5 下部署 Samba 企业级文件服务器实战

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

 

实现访问 windows 系统中的共享资源

 

我们在客户机(win7 系统)上共享了一个名为 LAMP 的文件夹

 

 [root@localhost samba]# smbclient -L192.168.10.2  #列出客户机中的共享资源

RHEL6.5 下部署 Samba 企业级文件服务器实战

 [root@localhost samba]# mount.cifs//192.168.10.2/LAMP /tmp/  #如果想要访问这个 LAMP 文件夹,可以将 LAMP 挂载到服务器的 tmp 目录下

 [root@localhost ~]# df -hT  #查看挂载情况,已挂载

RHEL6.5 下部署 Samba 企业级文件服务器实战

查看挂载后的 tmp 目录下的内容,LAMP 里面都是 tar 压缩包

RHEL6.5 下部署 Samba 企业级文件服务器实战

 [root@localhost samba]# cp/tmp/apr-1.4.6.tar.gz ~  #将其中一个压缩文件拷贝到根目录下(根目录可以是 /root 也可以直接写成~)

RHEL6.5 下部署 Samba 企业级文件服务器实战

[root@localhostsamba]# umount /tmp  #把挂载的 LAMP 从 tmp 目录下卸载掉

卸载之后查看 tmp 目录显示了原来 tmp 目录下的文件和目录

RHEL6.5 下部署 Samba 企业级文件服务器实战

 

4.          实验总结:

1)    samba 服务在 Linux 的系统中实现了微软的 SMB/CIFS  网络协议,在部署 windows、Linux 混合平台的企业环境时,能够很好的解决不同系统之间的文件互访问题,使文件共享变得更加容易,是非常强大的功能

2)    samba 服务提供了几种很实用的访问共享权限,也提供了服务器客户端的访问控制,在修改配置文件时一定要注意各个权限的配置是否冲突或者遗漏,平时可多做权限方面的测试。

Samba 的详细介绍:请点这里
Samba 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/119842.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计10029字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中