samba服务器搭建+权限设置

 

目  录

 

第1章    绪论. 1

1.1Linux的发展历史. 1

1.2Linux应用现状. 2

1.3Linux各版本的特色和应用领域. 2

第2章    samba介绍. 4

2.1 samba总体概述. 4

2.2 samba功能介绍. 5

第3章    配置文件. 6

3.1 samba配置文件全局文件内容介绍. 6

3.2 samba配置文件每单项介绍. 8

第4章 实践内容. 9

4.1 实践要求. 9

4.2实践方法——用户创建. 9

4.3实践方法——文件创建. 10

4.4实践方法——文件权限管理. 11

4.5实践方法——对smb.conf配置. 12

4.6特色功能. 13

第5章 源程序解释. 14

5.1 Samba服务命令代码. 14

5.2 查看Samba服务器Ip地址. 14

5.3拷贝samba配置文件. 15

5.4 账户管理. 15

5.5 smbpasswd samba用户密码添加. 15

5.6对目标目录的添加 mkdir filename 16

5.7 chmod文件权限编辑. 17

5.8 文件查看使用. 17

5.9 用户以及用户组的查看. 18

5.10 对smb.conf文件进行配置. 18

5.10.1配置目录share 18

5.10.2配置目录private 18

5.10.3配置目录skh-A 19

5.10.4 配置目录skh-B 19

5.10.5目录skh-C、D、E、F配置. 20

第6章 课程设计日志. 21

第7章 佐证材料. 22

7.1功能1实现的截图. 22

7.2功能2实现的截图. 23

7.3功能3实现的截图. 25

7.4功能4实现的截图. 26

结语. 31

参考文献. 32

 


 

 

 

第1章     绪论

 

1.1Linux的发展历史

    Linux 系统的诞生主要源于林纳斯个人,而 Linux 系统的成长则更多得益于所采用的开源模式。林纳斯12岁开始接触计算机和编程,并从此狂热地爱上了编程。因为这份热爱,林纳斯自学了大量的编程知识,并不断地将学到的新知识进行练习。这些学习和练习为 Linux 系统储备了足够的知识弹药。而在开发过程中,林纳斯也不免遇到很多困难,但是他身上永不言弃的精神,让 Linux 系统最终诞生。在 Linux 系统诞生之后,它所采用的开源模式,令全世界对这个项目感兴趣的人都能参与进来。在世界各地优秀程序员的帮助下,Linux 系统不断走向完善,最终大获成功。在 Linux 系统获得广泛认可之后,林纳斯收获了名气,却并没有收获大量的财富。究其原因,是因为林纳斯希望 Linux 系统保持自由,不被商业因素所左右,所以他拒绝了很多公司抛来的巨额财富。开放源代码运动脱胎于自由软件运动,而自由软件运动又是继承早期的黑客文化而产生的。在最初的时候,软件是自由且不收费的,当时商业公司主要是销售硬件卖钱,软件则作为硬件的附属品免费赠送。当时的软件不掺杂商业利益,大家出于兴趣等原因编写程序并且分享给别人。这就是早期的黑客文化。打破黑客文化的人就是我们熟知的比尔·盖茨,他率先开始售卖软件,并且关闭软件的源代码。在他的影响下,软件便由最初的免费且自由模式发展成了现在的收费模式。而对此提出反对意见的是老牌黑客理查德·斯托曼,他发起了以源代码必须可以被自由获得为核心点的自由软件运动。但由于他提出的 Copyleft 概念有着很强烈的反商业感,自由软件运动下的 GPL 许可证又强制性要求修改后的软件,其被修改的那部分源代码也必须对外开放,这种对商业文化的不友好,令自由软件运动受到商业公司的排挤。当时Linux系统也是采用 GPL 许可证,所以也被称为自由软件。但是因为大家对自由“free”这个单词的总是产生歧义,认为那是免费的意思,于是林纳斯等人便提出了开放源代码这个概念,Linux 系统也就成了开源软件。源软件的条件比自由软件更宽松,对商业文化也更包容,于是伴随着 Linux 系统的成功,开源理念也就逐步被世界各地所接受。

 

1.2Linux应用现状

国内 Linux 操作系统发展现状 UOS系统现在处于使用阶段

国内目前涉足Linux操作系统研发除学校、研发机构外,主要 Linux 发行版包括红旗、中标、共创、新华、拓林思等,均有桌面和服务器两个版本; 国内各发行版均基于国际社区版本发展而来,基于国际社区成果,在界面定制上做了一些工作,并没有掌握核心技术,且与国际Linux 操作系统发行版之间存在一定的技术差距,缺少技术积累,面临Linux发展后劲不足等问题。

国外Linux操作系统发展现状

国外 Linux 操作系统发展现状 国外主要发行版包括redhat、ubuntu、Suse 等,均提供桌面和服务器两个不同版本。服务器领域 Linux 操作系统发展比较成熟,桌面发展比较缓慢,嵌入式领域发展较快。

 

 

1.3Linux各版本的特色和应用领域

Linux内核以及发行版介绍:

1.Linux内核版本

内核(kernel)是系统的心脏,是运行程序和打印机等硬件设备的核心程序。

内核版本分为稳定版和开发版,两种版本是相互关联,相互循环:

稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正

一些bug或加入一 些新的驱动程序。

开发版:由于要试验各种解决方案,所以变化很快。

2.linux发行版本

通常包含了包括桌面环境、办公套件、 媒体播放等应用软件。

应用领域:

1.桌面领域应用

关于此领域是传统呢linux领域最薄弱的环节,被win所压制,近些年来随着ubuntu、

fedora等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,linux在个人 湎领

域的占有率在逐渐的提高

典型代表: ubuntu、fedora、 suse linux

 

2.服务器领域

inux在服务器领域的应用是其重要分支

linux免费、稳定、高效等特点在这里得到了很好的体现,但早期因为维护、运行等原因同样受到了很大的限制,但近些年来linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛典型代表:

Red Hat公司的AS系列

完全开源的debian系列

suse EnterPrise 11系列等

 

3.嵌入式领域

近些年来linux在嵌入式领域的应用得到了飞速的提高linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。

 

第2章     samba介绍

 

2.1 samba总体概述

Samba是一组用 于实现各种操作系统相互通信的功能广泛的程序。使用Samba要求各台计算机用网络连接在- -起。如果没有网络,Samba 的用途是十分有限的。

在大规模的网络中,管理员利用Samba把大量的Unix系统和大量的Windows以及其他类型的工作站连接在一起。有许多优秀的书籍专门解释关于Samba 的各种复杂问题,不过这里只涉及基础知识一-但这已经足以让我们在--个小型的网络内连接一个Linux系统和一一个Windows系统,安装一个Linux系统上的共享打印机。

Samba使用Microsoft的Server Message Block 或者说是SMB协议。SMB最初出现于80年代,后来Microsoft采用并扩展了它。SMB运行在另一个协议即NetBIOS之上,而NetBIOS又运行在其他诸如IPX或TCP/IP之类协议之上。我们并不需要详细了解这些协议,只需要知道Microsoft使用SMB让我们在网络上共享文件。

Microsoft从来没有公开过SMB协议的细节,这给开发基于SMB的系统带来了困难。然而,一组由Andrew Tridgell领导的天才对该协议实施了反向工程,并在此基础上创建了早期的Samba。现在,Samba 是源代码开放的,它由遍及世界各地的志愿者维护和改进。

 

只要你用过连接局域网的Windows PC就会知道, Windows允许我们“映射”或“共享”网络驱动器,这是通过在Windows资源管理器( 即Windows中的文件管理工具)中选择“工具/映射网络驱动器”实现的。只要网络允许进行映射,我们就可以利用这个工具映射另一个系统中的驱动器,使它看起来就象本地文件系统的一部分。 或者说,我们可以让另一台机器的D:驱动器成为本地系统的G:驱动器。

2.2 samba功能介绍

  我们首先介绍一些SMB协议的情况。SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务。NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置,就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。Samba使SMB协议运行在NetBIOS协议上,并且使用Windows的NetBEUI协议让Unix/Linux服务器可以在Windows的网络邻居上被访问到。 
    Samba的服务器程序可以实现以下主要功能: 
1.   文件及打印共享; 
2.   计算机名与IP的解悉; 
3.   WINS服务的支持; 
4.   用户权限设置(如果配合Linux 的Quota还可以实现用户磁盘空间配额)。

 

 

 

 

 

 

 

 

 

 

第3章     配置文件

 


3.1 samba配置文件全局文件内容介绍

 

图3.1 图内文字注释

 
 
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
hide dot ftles--是yes/否no隐藏隐藏文件
public----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
vaild users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list-------设定此名单内的成员为只读(用户名/@组名)
write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
create mask-----建立文件时所给的权限
directory mask--建立目录时所给的权限
force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts-----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
deny hosts------设定只有此网段/IP的用户不能访问共享资源
allow hosts=本网段指定IP指定IP
deny hosts=指定IP本网段指定IP

 

 

 

3.2 samba配置文件每单项介绍


图3.2  图内文字注释

 

 

 

 

第4章 实践内容

 

4.1 实践要求

1. 在samba服务器中设共享目录 share,所有用户无需秘密即可访问;

2. 在samba服务器中设目录private,创建一个用户,该用户需要密码才能访问;

3. 在samba服务器中设6个用户组,每个组3个用户

4. 在samba服务器中再设6个目录,该目录只允许该组用户且需要密码才能访问。

5. skh-A1、skh-A2、skh-A3用户可以访问skh-B ....skh-F目录文件;但skh-B1、skh-B2 ....skh-F3用户不可以访问skh-A目录

 

 

4.2实践方法——用户创建

在samba服务器中设目录private,创建一个用户,该用户需要密码才能访问;

在samba服务器中再设6个用户组,每个组3个用户,分别是:

组:skh-A skh-A1、skh-A2、skh-A3,

组:skh-B skh-B1、skh-B2、skh-B3

组:skh-C skh-C1、skh-C2、skh-C3

组:skh-D skh-D1、skh-D2、skh-D3

组:skh-E skh-E1、skh-E2、skh-E3

组:skh-F skh-F1、skh-F2、skh-F3


图4.2实现用户及用户组创建

 

 

4.3实践方法——文件创建

 

在samba服务器中设共享目录 share,所有用户无需秘密即可访问

在samba服务器中再设6个目录该,

 

skh-A目录只允许skh-A1、skh-A2、skh-A3用户访问。

skh-B目录只允许skh-B1、skh-B2、skh-B3用户访问

skh-C目录只允许skh-C1、skh-C2、skh-C3用户访问

skh-D目录只允许skh-D1、skh-D2、skh-D3用户访问

 

 

 

skh-E目录只允许skh-E1、skh-E2、skh-E3用户访问

skh-F目录只允许skh-F1、skh-F2、skh-F3用户访问

skh-private目录只允许private用户访问

使用mkdir filename

分别创建 skh-A、 skh-B 、skh-C 、skh-D、skh-E、skh-F


图4.3文件创建

 

 

 

 

4.4实践方法——文件权限管理


chmod对文件的权限进行管理  设置为777

图4.4文件权限管理

 

4.5实践方法——对smb.conf配置


打开 vi /etc/samba/smb.conf  对文件的内容进行配置,分别对每一个文件的过程进行配置

图4.5smb.conf配置

 

4.6特色功能  


skh-A1、skh-A2、skh-A3用户可以访问skh-B ....skh-F目录文件;但skh-B1、skh-B2 ....skh-F3用户不可以访问skh-A目录

图4.6特色功能

 

 

 

 

 

 

 

 

 

 

 

 

 

第5章 源程序解释

 

5.1 Samba服务命令代码

    安装Linux系统的时候deepin 里边一般都自动安装了Samba服务我们可以

直接在 root 权限下输入samba进行版本的查看版本是2.4.9版本


命令 /etc/init.d/smbd start  回车 出现 【OK】...... 证明就提示重新启动成功了。

图5.1 samba重启

 

5.2 查看Samba服务器Ip地址


命令:ifconfig

图 5.2.1 IP地址显示

使用的的局域网内的连接地址使用IP将文件进行分享,需要IP地址的使用,每个虚拟机都有相应的固定的IP地址使用相应IP地址从而可以确定电脑文件的位置,从而进行访问。

 

5.3拷贝samba配置文件

命令:cp /etc/samba/smb.conf   /etc/samba/smb.conf.setback

对文件进行备份

如果文件出现配置错误可以使用原来的备份文件进行文件的修复,我们在对配置文件进行修改时免不了会出现错误,所以我们需要对文件进行备份,在以后的各种配置中我们都需要进行备份再进行,这样可以提高我们的工作效率。

 

5.4 账户管理

用户创建,用户组创建,相关目录创建,目录的属主,属组更改

我们使用 useradd 对用户进行添加,进行批量添加share、private、skh-A1……

使用groupadd 添加组  skh-A  skh-B……

 

5.5 smbpasswd samba用户密码添加

Samba是建立在linux系统中的用户管理中的服务器

使用smbpass username 就可以samba服务创建相应的用户以及用户密码了,可以实现对目标文件的访问,对文件的内容进行读写操作

命令:smbpasswd username

然后会有输入两次命令的机会两次验证文件的使用和确认,局域网的用户登录的时候就可以使用用户名以及用户密码对文件进行访问,保证了文件使用的安全性。

根据实验的要求作出相应的配置

   每个用户都是独立存在的,密码相应也是独立存在的,每个用户用户组都是独立使用

 

5.6对目标目录的添加 mkdir filename

在home目录下创建

命令:mkdir share

用来创建目录 share使得任何用户可以无需密码进行访问

 

命令:mkdir private

用来创建目录使得private用户使用密码进行登录

 

 

命令:mkdir skh-A

用来创建目录使得skh-A用户组内的skh-A1,skh-A2,skh-A3使用密码进行登录

 

命令:mkdir skh-B

用来创建目录使得skh-B用户组内的skh-B1,skh-B2,skh-B3使用密码进行登录添加的要求还需要使用 skh-A组内的 skh-A1,skh-A2,skh-A3使用密码进行登录

 

命令:mkdir skh-C

用来创建目录使得skh-C用户组内的skh-C1,skh-C2,skh-C3使用密码进行登录添加的要求还需要使用 skh-A组内的 skh-A1,skh-A2,skh-A3使用密码进行登录

 

命令:mkdir skh-D

用来创建目录使得skh-D用户组内的skh-D1,skh-D2,skh-D3使用密码进行登录添加的要求还需要使用 skh-A组内的 skh-A1,skh-A2,skh-A3使用密码进行登录

 

命令:mkdir skh-E

用来创建目录使得skh-E用户组内的skh-E1,skh-E2,skh-E3使用密码进行登录添加的要求还需要使用 skh-A组内的 skh-A1,skh-A2,skh-A3使用密码进行登录

 

命令:mkdir skh-F

用来创建目录使得skh-B用户组内的skh-F1,skh-F2,skh-F3使用密码进行登录添加的要求还需要使用 skh-A组内的 skh-A1,skh-A2,skh-A3使用密码进行登录

 

 

5.7 chmod文件权限编辑

使用linux系统文件的权限管理,本实验室没有要求linux用户内对文件的读写操作,于是我们为了不必要的麻烦,或者为了避免出现不必要的错误,对文件的权限设置为最高的权限 chmod 777  filename

 使用命令chomd 777 share,private,skh-A,skh-B,skh-C,skh-D,skh-E,skh-F,文件使用最高权限

5.8 文件查看使用

 命令: ls -l /home

查看读写权限和文件是否创建成功,文件的名称是否排列的成功,如果有遗漏的可以重新创建

5.9 用户以及用户组的查看

命令  vi /etc/passwd 可以查看文件中创建的用户以及编号ID

命令  vi /etc/group 可以查看配置文件的下的 group群组的ID以及包含的组员

5.10 对smb.conf文件进行配置

我们需要根据不同的需求对不同的文件进行配置

5.10.1配置目录share

是公共的可以访问的 我们需要将这个文件设置为

[share]

        comment = this is share
        path = /home/share
        browseable = yes
        guest ok = yes
        writable = yes
        printable = yes

5.10.2配置目录private

是私人的可以访问的 我们需要将这个文件设置为

[private]

        comment = this is private
        path = /home/private
        browseable = yes
valid users = private
        guest ok = no
        writable = yes
        printable = yes

5.10.3配置目录skh-A

是skh-A组的可以访问的 我们需要将这个文件设置为

    其中多个用户加入时需要在中间时“,”将其分开,用户组使用@符号设置

[skh-A]

        comment = this is skh-A
        path = /home/skh-A
        browseable = yes
valid users = @skh-A,skh-A1,skh-A2,skh-A3
        guest ok = no
        writable = yes
        printable = yes

5.10.4 配置目录skh-B

是skh-B组的可以访问的 然而skh-A组的也是可以访问的于是我们将要咋文件改变一下上述A中需要,我们需要将这个文件设置为

    其中多个用户加入时需要在中间时“,”将其分开,用户组使用@符号设置

[skh-B]

        comment = this is skh-B
        path = /home/skh-B
        browseable = yes
valid users = @skh-B,skh-B1,skh-B2,skh-B3,@skh-A,skh-A1,skh-A2,skh-A3
        guest ok = no
        writable = yes
        printable = yes
 
 

 

5.10.5目录skh-C、D、E、F配置

是skh-B组的可以访问的 然而skh-A组的也是可以访问的于是我们将要咋文件改变一下上述A中需要,我们需要将这个文件设置为

    其中多个用户加入时需要在中间时“,”将其分开,用户组使用@符号设置

[skh-C]

        comment = this is skh-C
        path = /home/skh-C
        browseable = yes
valid users = @skh-C,skh-C1,skh-C2,skh-C3,@skh-A,skh-A1,skh-A2,skh-A3
        guest ok = no
        writable = yes
        printable = yes

其中skh-D,skh-E,skh-F配置相同……

 

 

 

 

 

 

 

 

 

 

第6章 课程设计日志

 

第一天

做了:对samba文件进行配置文件目录解读

问题:对samba服务器的历史不懂,对一些文件的路径和文件内的内容不清楚,对配置文件茫然,对samba命令操作的陌生

解决:查找相关的文档和一些博客论坛,对符合相关问题的内容进行解读,从中寻找解决问题的方法。

    原因:自己本身对知识的匮乏,对很多东西都是不了解。

 

第二天

做了:配置samba服务器

问题:连不上windows系统连接不上samba服务器,和连接上之后无法创建第二个

解决:找到相应问题找到博客论坛寻找答案

原因:windows 连接不上samba服务器是因为没有开启本地的samba服务器程序,

这个samba服务器只能连接一个口,不能两个连接同时使用,需要断开原来的连接才能使用第二个连接

 

第三天

对功能进行完善

 

第四天

报告填写

 

第7章 佐证材料

 

7.1功能1实现的截图

要求:在samba服务器中设共享目录 share,所有用户无需秘密即可访问;

 

在虚拟机的终端上输入ifconfig命令,可以看到samba的地址:192.168.172.139如图7.1所示:

 

图 7.1

 

在Window上按下window+R键,出现如下图7.2所示

 

图 7.1.2

 

 

输入在运行上输入刚刚查到的地址:192.168.75.139

 

在网络中即可看到我在samba服务器的配置文件smb.conf上设置的目录

 

其中的share目录为共享目录,所有用户无需要密码即可访问如图7.1.3


图7.1.3进入share访问

 

7.2功能2实现的截图

要求:在samba服务器中设目录private,创建一个用户,该用户需要密码才能访问。

 

在共享网络中点击private目录,则需要密码才可访问


图7.2.1断开连接

 

 

图 7.2.2进入登陆界面

 

 

图7.2.2private登陆

 

 

图7.2.3进入该目录

7.3功能3实现的截图

要求:在samba服务器中设6个用户组,每个组3个用户


用使用cat /etc/passwd  查看用户的个数

图 7.3.1用户列表

使用cat /etc/group  查看用户组

图 7.3.2组列表

 

7.4功能4实现的截图

要求:在samba服务器中再设6个目录,分别是skh-A、skh-B ....skh-F;该目录只允许该组用户且需要密码才能访问。在samba配置文件上添加的6个目录

断开连接   net use * /del /y

图7.4.1断开连接

skh-A只能由  skh-A连接



图7.4.2skh-A的登陆图

 

图7.4.3skh-A登陆成功图

 

 

Skh-A文件夹不能由 share private用户访问



图7.4.4断开skh-A1的连接登陆图

 

图7.4.5share登陆skh-A文件

 

该目录只允许该组用户且需要密码才能访问,如图7.4.6

 


图7.4.6使用private登陆skh-A文件


skh-B文件只能由 skh-A skh-B组访问

图7.4.7skh-A1登陆skh-B文件

 

 


 

图7.4.6使用skh-B登陆skh-A文件成功

 

 

断开连接


图7.4.7断开skh-A1登陆skh-B文件

 

 

 

 

 

 


skh-B组登录

 

图7.4.8skh-B1连接skh-B文件


图7.4.8skh-B1连接skh-B文件成功

 

结语

 

通过本次试验的实践和学习,掌握了在Linux系统下Samba服务器的配置与访问方法,同时也掌握了Linux与Windows的资源共享,还掌握了Samba 服务器的安装和配置方法。同时对在Linux下修改Samba服务的主配置文件有了一定的了解,对于各个共享目录的所属组权限也需要进行认真的设置,才能确保Samba服务器正常运行和工作。只要你认真学习无论什么版本都挺好的.要知道,开发linux发行版的人都是通读过linux内核代码,对 linux原理极其精通的人,而且每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此. 因此,讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本,比如redhat manrake suse 等等. 国内有一两个linux版本做的也不错,但是国内的linux都是面向非技术型用户开发的,因此,如果你想成为高手,建议不要用国内的版本. 档,初学者一定会觉得太复杂而不原意用,但是你一旦学会了就对他爱不释手.他的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和 grep命令,那么他能完成非常复杂的操作门书籍后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令,初学阶段只要学会书上提到过的命令就可以了.单靠学习各种命令而成为高手是不可能的,但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高

 

posted @ 2020-07-12 23:15  菜鸟不忘初心  阅读(3557)  评论(2编辑  收藏  举报