【中级】RHEL6.5下部署samba企业级文件服务器实战

 

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

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

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

[[email protected] ~]# grep -v"#" /etc/samba/smb.conf > /etc/samba/smb.con

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

[[email protected] ~]# cd /etc/samba  #切换到samba目录

[[email protected] samba]# mv smb.confsmb.conf.back   #将conf文件备份

[[email protected] samba]# mv smb.consmb.conf    #将smb.con改名为smb.conf

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

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

[[email protected]]# mkdir /opt/share  #创建share共享目录

[[email protected]]# chmod 777 /opt/share  #修改权限为777

[[email protected]]# service smb start  #启动samba服务

[[email protected]]# netstat -ant  #查看网络端口状态

139和445两个samba服务的端口正在被监听,samba服务是正常的,下面就可以去客户机上测试了。测试之前,必须把防火墙和selinux关掉

[[email protected] samba]# service iptables stop

iptables:将链设置为政策ACCEPT:filter                    [确定]

iptables:清除防火墙规则:                                [确定]

iptables:正在卸载模块:                                  [确定]

[[email protected] samba]# setenforce 0

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用户使用但是不能够登陆系统

[[email protected] samba]# useradd jery        #创建账户jery和jene

[[email protected] samba]# useradd jene

[[email protected] samba]# smbpasswd -ajery   #设置账户为samba用户并设置密码

New SMB password:

Retype new SMB password:

Added user jery.

[[email protected] samba]# smbpasswd -ajene

New SMB password:

Retype new SMB password:

Added user jene.

[[email protected] samba]#

[[email protected] samba]# pdbedit -L  #查看新建的samba账户信息

jery:500:

jene:501:

[[email protected] samba]# mkdir /opt/test  #创建共享目录test

[[email protected] samba]# chmod 777/opt/test #修改权限为777

[[email protected] samba]# service smbrestart  #重启samba服务,这里也可以使用reload,但是reload是重新加载配置并不会和客户机彻底断开连接,这里为了测试用了restart

关闭 SMB 服务:                                            [确定]

启动 SMB 服务:                                            [确定]

A.   修改后的脚本

B.   效果验证

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

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

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

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

实现指定用户的访问,并为用户赋予不同的权限

接着为了测试访问的用户的不同权限,在[test]配置中加入以下两行

valid users =jery, jene  #允许这两个用户可以访问

write list =jene         #只允许jene这个用户可以写入

A.   修改后的脚本

B.   效果验证

[[email protected]]# service smb restart   #重启服务

关闭SMB 服务:                                            [确定]

启动SMB 服务:                                            [确定]

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

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

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

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

[[email protected]]# service smb restart  #重启服务

关闭SMB 服务:                                            [确定]

启动SMB 服务:                                            [确定]

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

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

[[email protected]]# echo "this is test" > /opt/test/test.txt

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

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

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

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

[[email protected]]# vi smbusers

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

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

A.   修改后的脚本 

B.   效果验证

[[email protected]]# 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.   效果验证

[[email protected]]# service smb restart  #重启服务

关闭SMB 服务:                                            [确定]

启动SMB 服务:                                            [确定]

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

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

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

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

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

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

[[email protected] ~]# df -hT  #查看挂载情况,已挂载

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

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

[[email protected]]# umount /tmp  #把挂载的LAMP从tmp目录下卸载掉

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

4.          实验总结:

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

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

时间: 2024-10-23 05:27:09

【中级】RHEL6.5下部署samba企业级文件服务器实战的相关文章

【中级】RHEL6.5下部署vsftpd实战全集

  1.          实验需求: 1)     使用RPM包安装vsftpd服务 2)     实现匿名用户访问,验证仅可以访问和下载,不可以上传 3)     实现匿名用户可上传.下载.修改等完全权限(现实环境中这样的需求可能性很小) 4)     实现把登陆的用户禁锢在自己的家目录中 5)     实现限制某些用户的访问 6)     实现虚拟用户的访问 7)     实现针对不同的虚拟用户拥有不同的权限 2.          实验环境: Linux服务器系统版本:Red Hat E

Linux下安装部署Samba共享盘的操作手册

简述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源.

【CentOS】部署开源企业级Linux备份工具—BackupPC

BackupPC安装所需的主要的安装包下载地址:http://pan.baidu.com/s/1bnCGCY7 (BackupPC的版本为3.2.1) (该版本的BackupPC是支持中文的,BackupPC配置好后,可以在其Web页面设置其显示语言即可) 1.添加backuppc组及用户 groupadd   backuppc useradd   -g   backuppc   backuppc 2.安装httpd.mod_perl及BackupPC yum   install   httpd

RHEL6.5x64下memcached安装和使用

RHEL6.5x64下memcached安装和使用 从网上下载libevent-2.0.21-stable.tar.gz 和memcached-1.4.5.tar.gz,然后运行 第一步:安装gcc编译器 [[email protected] ~]#yum -y isnatll gcc 第二步:安装libevent和memcached [[email protected] srv]# tar zxvf libevent-2.0.21-stable.tar.gz [[email protected

windows下连接samba服务器用户切换问题

部署了一台samba服务器了之后用windows连接有一个很普遍的问题,就是登陆过samba一个用户之后windows系统会自动记录上次登陆的samba用户名和密码,所以在下次登陆就不用重新输入账号密码,个人认为这是比较危险的一个地方,特别是在公共客户端上,一般用户不会再使用后进行清除记录操作,很可能导致资料泄露问题. 针对这个问题,网上普遍的做法是在windows下运行一条命令: net use \\192.168.xxx.xxx\IPC$ /DELETE 来删除默认的记录.但是尝试过了之后发

Kubernetes部署(十二):helm部署harbor企业级镜像仓库

相关内容: Kubernetes部署(一):架构及功能说明Kubernetes部署(二):系统环境初始化Kubernetes部署(三):CA证书制作Kubernetes部署(四):ETCD集群部署Kubernetes部署(五):Haproxy.Keppalived部署Kubernetes部署(六):Master节点部署Kubernetes部署(七):Node节点部署Kubernetes部署(八):Flannel网络部署Kubernetes部署(九):CoreDNS.Dashboard.Ingre

深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图

原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Core Module.Kestrel.dotnet.exe, 后面我们会理清楚这三个组件的作用和组件之间的交互原理. 引入Kestrel的原因 进程内HTTP服务器,与老牌web服务器解耦,实现跨平台部署 IIS.Nginx.Apache等老牌web服务器有他们自己的启动进程和环境:为了实现跨平台部署

基于LDAP下的Samba服务

基于LDAP下的Samba服务 一.环境情况: 实验环境:俩台机器,分别为2012R2,安装有 AD 并作为域控制器Domain Controller(DC),同时也作为 DNS 服务器和时间服务器:一台CentOS 6.5服务器. Windows作为主域控,CentOS需要加域并完成Samba服务部署. 二.CentOS组件 yum -y install samba samba-client samba-winbind samba-winbind-clients krb5-workstatio

msmtp在RHEL6.5下的安装

1.解压 [[email protected] ~]# tar -jxvf msmtp-1.4.32.tar.bz2 2.配置 [[email protected] ~]# cd msmtp-1.4.32 [[email protected] msmtp-1.4.32]# ./configure --prefix=/usr/local/msmtp --sysconfdir=/usr/local/msmtp/etcchecking build system type... x86_64-unkno