Linux下Centos 7的Samba服务器的用途及安装与配置(附在Windows机上的测试)

最近公司在组织一次linux的考试,做上层软件的我也报名参加了,对于没接触过linux的我也开始了学习之路,然而我并没有师傅可以带,就只好在网上学习了,看了各种博客各种贴吧,可感觉每个都不一样,结果越配越乱了。还好,最后和大神们交流一下,原来配置可以如此简单。

注:此配置为linux的基础,并无具体项目要求

Samba服务的用途:为了实现Window主机与Linux服务器之间的资源共享,Linux操作系统提供了 Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使 Linux 系统和Window系统之间能够实现互相通信。

本文所用虚拟机为VMware 12和Centos 7的Minimal版本;随后进行傻瓜式安装即可,由虚拟机进行磁盘分区等操作,待安装完成后重启虚拟机即可。下面为具体步骤:

由于我的是最新安装的虚拟机需要重新配置静态IP地址以连接Windows主机的网络(用NAT方式共享主机ip);

一、给Centos7配置网络连接

   配置详情请见:

配置完网络后查看能不能连接网络,ping www.baidu.com,如果显示已连接就说明网络已通。

二、下载安装Samba服务器

如果忘记有没有安装过,可以先查询是否安装:

rpm -qa | grep samba

如果没有则直接进行安装:

yum -y install samba

看到complete!则说明安装成功;此时将samba服务放入开机启动:

systemctl enable samba

三、创建Samba服务器中用于共享的文件夹

在本机的根目录下创建名为develop的目录,并在目录下创建dell和lkk的目录;

1.要求dll用户(密码123456),可以对dell目录下的文件进行读、写、执行等操作。

2.要求lkk用户(密码345678),可以对lkk目录下的文件进行读、写、执行等操作。

3.dll用户不能访问lkk目录,lkk用户不能访问dell目录。

4.要求psy用户(密码456789)对dell目录和lkk目录只能是只读操作。

  1. 首先在根目录创建develop目录;

mkdir /develop

     2.在develop下创建dell目录和lkk目录;

mkdir dell lkk

四、将dell目录和lkk目录配置到Samba的服务器中

 在/etc/samba中会有Samba的配置文件,先进行备份;

cd /etc/samba                  #进入到samba目录中

cp smb.conf smb.conf~bak       #将smb服务的配置文件进行拷贝,以免丢失信息

编辑smb.conf文件

vi smb.conf

i对文件进行编辑

      因为我们是要输入用户名密码才能访问文件,所以在 [global]中的security必须要是user(需要用户名密码才能访问),而share模式是匿名就可以访问。

而后配置共享文件夹:

     [dell]

                 comment=dell Share     #comment是对该共享的描述,可以是任意字符串。

                 path=/develop/dell        #path用来指定共享目录的路径。

                 browseable=yes            #browseable用来指定该共享是否可以浏览。

                 admin users=dll            #admin users用来指定该共享的管理员(对该共享具有完全控制权限)。

                 valid users=dll,psy         #valid users用来指定允许访问该共享资源的用户。

                 write list=dll                    #write list用来指定可以在该共享下写入文件的用户。        

                 writeable=yes                #writeable=yes是允许这个目录可写,是首要条件。

                 create mask=0755        #create mask 定义新创建的文件将允许哪些权限。(0代表八进制)

                 directory mask=0755     #directory mask 定义新创建的目录所允许的权限。

                                                   #755 权限代表本用户可读、写、执行;同用户组可读、可执行;其他用户可读、可执行。

      [lkk]                (此共享文件的配置同上)

                 comment=wwe Share

                 path=/develop/lkk

                 browseable=yes

                 admin users=lkk   

                 valid users=lkk,psy

                 write list=lkk 

                 writeable=yes

                 create mask=0755

                 directory mask=0755                       

     按下:wq 便可以将此配置文件保存。此步骤便是将两个共享文件放在了Samba服务器端,接下来就是让Windows直接访问了。

  首先,关闭系统的防火墙:

systemctl stop firewalld

            禁止开机启动防火墙:

systemctl disable firewalld

           关闭SELinux:(详情请看https://baike.baidu.com/item/SELinux/8865268?fr=aladdin)

setenforce 0

          重启smb服务(每次改完配置文件一定要重启smb服务才可以的

systemctl restart smb

到此步就可以去Windows下访问了,当然也可以在同一网段的其它电脑上登录,但会需要用户名密码。所以我们来创建在Centos7上创建Samba服务的用户名密码。

五、创建用户名密码,并给develop下的两个共享文件修改权限

1.先创建系统用户(根据上题创建)

useradd dll

useradd lkk

useradd psy

2.将这些用户加入到Samba用户组

smbpasswd  -a dll    #(接下来他会让你输入两次密码,看到Added user zhang就是添加成功了!)

smbpasswd  -a lkk

smbpasswd  -a psy

然后就可以去修改刚刚创建的两个共享文件夹的权限了;

据题分析:dll用户可以对dell共享文件进行读、写、执行操作;而psy(为其他用户)用户是对它只读操作。

由于我是用root用户登录的系统,所以在develop创建的文件都属于root用户,所以将dell共享文件夹的所属用户改为dll,同时修改权限为755;

chown -R dell/

同时也将此目录及以下的文件的权限改为755(也可以是o+rwx,g+rx,u+rx)

chmod -R 755 dell/

此时,上题中的1、2题已经解决了,dll用户和lkk用户分别可以访问dell目录和lkk目录。

而第3题也已经解决,因为在配置文件中的各自的【共享文件配置】的valid users就是各自可以访问文件夹的用户。dell文件夹没有配置lkk用户,而lkk【共享文件配置】中的valid users也没有配置dll用户,所以各自用户只能访问对应的共享文件。

而第4题也以解决,因为我们已将develop目录下的共享文件夹dell和lkk及目录下的文件权限设置为755,也就是其他用户访问文件夹只可以进行读和执行的操作,不能编辑及进行写的操作。

注:

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;
对目录来说,具有新建,删除,修改,移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

六、在自己的Windows上进行测试(也可在同段ip地址的电脑上进行测试)

方法一:

1.打开电脑的运行(可用快捷键win+r),输入//+centos设置的静态IP地址(例://192.168.5.166)

会弹出一个登录框,此时输入我们创建的samba服务的用户(dll和lkk、psy都可)尽可以进入到我们的Samba服务端里了,可以看到有两个共享文件夹。测试权限就可以了,如下图:

Linux下Centos 7的Samba服务器的用途及安装与配置(附在Windows机上的测试)

如果说想要切换用户登录,需要接映射连接清除

2.Windows下<<运行(win+r)<<cmd<<输入net use * /delete<<y(确认) 就可以清空连接了

可能会清的比较慢,需要等待。如下图:

Linux下Centos 7的Samba服务器的用途及安装与配置(附在Windows机上的测试)

 

然后重复第一步重新换个用户就可以了,挨个用户测试就好;

方法二:

右键我的电脑<<选择映射网络驱动器<<在文件夹的输入框里输入地址+访问的文件夹名称就可以(例:\\192.168.5.166\dell)<<输入用户名密码就可以进入目录了

此方法的好处不用使用cmd命令来清空映射连接,不用担心有延时。如下图:

Linux下Centos 7的Samba服务器的用途及安装与配置(附在Windows机上的测试)

 

输入用户名密码,就可以进入到对应目录里了,里面就是要共享的文件了。如下图:

Linux下Centos 7的Samba服务器的用途及安装与配置(附在Windows机上的测试)

 

到现在我们linux下创建的Samba服务器已经可以使用,可以使用它来联系我们的Windows和虚拟机下的linux进行传输文件等操作。

自己创作的第一篇博客,有什么错误,恳请大家指正。