一、项目背景

  某公司有system、develop、productdesign和test等4个小组,个人办公机操作系统为Windows 2000/XP/2003,少数开发人员采用Linux操作系统,服务器操作系统为RHEL 4,需要设计一套建立再RHEL 4之上的安全文件共享方案。每个用户都有自己的网络磁盘,develop组到test组有共用的网络硬盘,所有用户(包括匿名用户)有一个只读共享资料库;所有用户(包括匿名用户)要有一个存放临时文件的文件夹。

  项目目标:

  • System组具有管理所有Samba空间的权限。
  • 各部门的私有空间:各小组拥有自己的空间,除了小组成员及system组有权限以外,其他用户不可访问(包括列表、读和写)。
  • 资料库:所有用户(包括匿名用户)都具有读权限而不具有写入数据的权限。
  • Develop组与test组的共享空间,develop组与test组之外的用户不能访问。
  • 公共临时空间:让所有用户可以读取、写入、删除。

二、具体配置过程

P.S. 服务端系统:CentOS-6.6(2.6.32-754.11.1.el6.x86_64)、客户端系统:Windows10(1803)。

         1.安装Samba程序及相关依赖包:

 [root@Fish ~]# yum -y install samba samba-client samba-common

2.查看Samba程序及相关依赖是否正确安装:

 [root@Fish ~]# rpm -qa | grep samba
samba-winbind-3.6.-.el6.x86_64
samba-common-3.6.-.el6.x86_64
samba-client-3.6.-.el6.x86_64
samba-winbind-clients-3.6.-.el6.x86_64
samba-3.6.-.el6.x86_64

3.创建共享资源相关目录:

 [root@Fish ~]# cd /usr/share/
[root@Fish share]# mkdir Samba-Share
[root@Fish share]# cd Samba-Share/
[root@Fish Samba-Share]# mkdir develop productdesign test library develop_testrw temp

各目录说明如下:

/usr/share/Samba-Share:system小组的主目录,负责管理其下所有目录。

/usr/share/Samba-Share/develop:develop小组的主目录,除了小组本身和system小组之外,其他小组都是不可读不可写。

/usr/share/Samba-Share/productdesign:productdesign小组的主目录,除了小组本身和system小组以外,其他小组都是不可读不可写。

/usr/share/Samba-Share/test:test小组的主目录,除了小组本身和system小组以外,其他小组都是不可读不可写。

/usr/share/Samba-Share/library:资料库主目录,所有小组只读(system小组有权限写入)。

/usr/share/Samba-Share/develop_testrw:develop小组和test小组的共享空间,develop小组与test小组之外的小组不能访问。

/usr/share/Samba-Share/temp:所有小组的主目录(包括匿名用户),所有小组可读可写。

4.添加相关用户组:

 [root@Fish Samba-Share]# groupadd system
[root@Fish Samba-Share]# groupadd develop
[root@Fish Samba-Share]# groupadd productdesign
[root@Fish Samba-Share]# groupadd test
[root@Fish Samba-Share]# groupadd develop_test

特别说明:develop_test组是用来管理develop组和test组的共享空间的组。

5.添加用户:

 [root@Fish Samba-Share]# useradd -g test -G develop_test -d /usr/share/Samba-Share/test/ -s /sbin/nologin test
[root@Fish Samba-Share]# useradd -g develop -G develop_test -d /usr/share/Samba-Share/develop -s /sbin/nologin develop
[root@Fish Samba-Share]# useradd -g productdesign -d /usr/share/Samba-Share/productdesign/ -s /sbin/nologin productdesign
[root@Fish Samba-Share]# useradd -g system -G system,develop,productdesign,test,develop_test -d /usr/share/Samba-Share/ -s /sbin/nologin system

特别说明:

  (1).useradd的-g参数是指定用户所属主组,-G参数是指定用户所属附加组,-d参数是指定用户登录时的家目录,-s参数是指定用户登录时的Shell。

  (2).对于/sbin/nologin这个特殊Shell的说明:使用这个Shell的登录作业可以进行系统程序的工作,但是无法登录主机,保证了系统的安全性。

  (3).在执行上述命令时,系统会做出如下反馈:

 useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

这个原因是由于在添加用户前创建了其家目录而造成系统做出警告。由于这是用于文件共享的资源目录,并不需要用户的shell配置文件故不做影响。

6.为实现文件共享而添加Samba用户(由于是在实验环境,方便起见密码既用户名):

 [root@Fish Samba-Share]# smbpasswd -a system
New SMB password:
Retype new SMB password:
Added user system.
[root@Fish Samba-Share]# smbpasswd -a develop
New SMB password:
Retype new SMB password:
Added user develop.
[root@Fish Samba-Share]# smbpasswd -a productdesign
New SMB password:
Retype new SMB password:
Added user productdesign.
[root@Fish Samba-Share]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.

7.配置共享目录的权限及相关归属:

 [root@Fish share]# chown system:system ./Samba-Share/
[root@Fish share]# cd Samba-Share/
[root@Fish Samba-Share]# chmod develop/ develop_testrw/ productdesign/ test/ temp/ library/
[root@Fish Samba-Share]# chown develop:system develop
[root@Fish Samba-Share]# chown productdesign:system productdesign/
[root@Fish Samba-Share]# chown test:system test/
[root@Fish Samba-Share]# chown system:system library/
[root@Fish Samba-Share]# chown system:develop_test develop_testrw/
[root@Fish Samba-Share]# chmod library/
[root@Fish Samba-Share]# chown system:system temp/
[root@Fish Samba-Share]# chmod temp/
[root@Fish Samba-Share]# chmod ../Samba-Share/

    8. Samba服务器配置文件配置:

备份Samba服务器默认的配置文件:

 [root@Fish Samba-Share]# cd /etc/samba/
[root@Fish samba]# cp ./smb.conf ./smb.conf.bak

在客户端查看当前工作站域(如下图,此项用于填写Samba服务端配置文件里workgroup选项),得知当前客户端工作站域为:WORKGROUP。

删除/etc/samb/smb.conf文件内所有内容,并重新编辑Samba服务器配置文件,结果如下:

 [root@Fish ~]# cat /etc/samba/smb.conf
[global]
server string = Samba Server Version %v
workgroup = WORKGROUP
netbios name = SambaServer
server string = CentOS6. Samba Server
security = share [system]
comment = systemadmin
path = /usr/share/Samba-Share
valid users = system
create mask =
directory mask =
writeable = yes
browseable = yes [library]
path = /usr/share/Samba-Share/library
writeable = no
browseable = yes
guest ok = yes [temp]
path = /usr/share/Samba-Share/temp
writeable = yes
browseable = yes
guest ok = yes [develop_testrw]
path = /usr/share/Samba-Share/develop_testrw
valid users = system,@develop_test
create mask =
directory mask =
writeable = yes
browseable = yes [develop]
path = /usr/share/Samba-Share/develop
valid users = develop,@system
create mask =
directory mask =
writeable = yes
browseable = yes [productdesign]
path = /usr/share/Samba-Share/productdesign
valid users = productdesign,@system
create mask =
directory mask =
writeable = yes
browseable = yes [test]
path = /usr/share/Samba-Share/test
valid users = test,@system
create mask =
directory mask =
writeable = yes
browseable = yes

    9.重启Samba服务,使配置文件生效:

 [root@Fish ~]# service smb restart

由于是在实验环境而并非生产环境,方便起见故关闭防火墙和SELinux:

 [root@Fish ~]# service iptables stop
[root@Fish ~]# setenforce

10.客户端相关配置:

由于Windows10为了安全起见关闭了SMB1.0/CIFS文件共享支持,因此需要在“启用或关闭Windows功能” 选项框内重新勾选该选项,如下图:

三、实现结果

查询服务端和客户端各自的IP地址,并确保两端能正常能正常通信。如下图所示:

          

在客户端的“文件资源管理器”的“网络”选项中输入“\\192.168.225.12\system”,即可连接到Samba服务器。如下图(在这里先用system用户登录):

在弹出的对话框里输入system小组的用户名和密码。如下图:

连接成功可以正常显示Samba服务器所共享的目录。如下图:

现在断开连接,使用develop账号登录。按照要求,develop可以访问develop、develop_testrw、temp这三个目录,其余的目录均不能访问。验证如下:

首先清除清除Windows网络保存的账号设置:

进行依次验证,如下图:

      

      

      

使用develop账号在temp目录下创建文件,并在服务端查看。如下图:

    

至此,该实验所需要求已经全部完成·。

四、额外说明

   本博客参考了以下博客或站点:

https://blog.csdn.net/xg38241415109/article/details/78933949

https://www.5yun.org/16911.html

Samba服务器配置案例的更多相关文章

  1. 2-5-NFS服务器配置和autofs自动挂载-配置Samba服务器配置现实文件共享

    大纲: NFS服务器运行原理 实战配置NFS服务器 配置Samba服务器配置现实文件共享 ----------------------------------------------- 问题: # 怎 ...

  2. Samba服务器配置

    Samba服务器配置流程: (1)安装samba服务器先用#rpm -ivh samba-列出与samba有关的rpm包然后选择第一个包,用tab键补齐文件名 (2)创建新用户和其密码#useradd ...

  3. 2016-08-05:samba服务器配置

    centos samba服务器配置 配置smb.conf文件 [share] path = /home/lee writable = yes 添加smb用户 smbpasswd -a root 启动s ...

  4. ubuntu server samba服务器配置

    ubuntu server samba服务器配置 samba可以实现不同操作系统电脑之间的文件共享服务 如:mac os,linux,unix,windows,等 一:安装samba服务器 ubunt ...

  5. Samba服务器配置参考链接

    一步一学Linux与Windows共享文件Samba(很适合初学者,极力推荐): http://os.51cto.com/art/200709/56395.htm 由最简单的一个例子说起,匿名用户可读 ...

  6. samba服务器配置过程

    SAMBA服务器配置 yum install samba samba-client samba-swat 改变文件权限及用户 vi /etc/samba/smb.conf d+G全删注释 复制下面代码 ...

  7. Samba应用案例

    一.配置文件详解 Samba配置文件非常简洁明了,所有的设置都在 /etc/samba/smb.conf 配置文件中进行,通过对该配置文件的修改,可以将Samba配置为一台匿名文件服务器.基于账户的文 ...

  8. 实验二 Samba服务器配置

    实验二 实 验 基 本 信 息 实验名称:Samba服务器配置 实验时间:    年 月 日 实验地点: 实验目的: 了解Samba环境及协议 掌握Samba的工作原理 掌握主配置文件Samba.co ...

  9. 6、Samba 服务器配置

    1.安装samba服务 [root@rhel6_80 samba]# yum -y install samba #安装samba [root@rhel6_80 samba]# rpm -qa |gre ...

随机推荐

  1. springmvc项目 logback.xml配置 logstash日志收集

    配置logback,需要一个转接的Appender,可以通过Maven依赖加到项目中: <dependency> <groupId>com.cwbase</groupId ...

  2. text matching(文本匹配) 相关资料总结

    最近工作上需要做句子语义去重相关的工作,本质上这是属于NLP中text matching(文本匹配)相关的内容.因此我花了一些时间整理了一些关于这个方向的资料,整理如下(也许会持续更新): BiMPM ...

  3. Unit Testing, Integration Testing and Functional Testing

    转载自:https://codeutopia.net/blog/2015/04/11/what-are-unit-testing-integration-testing-and-functional- ...

  4. vue项目中event bus的简单使用

    之前做的一个vue后台管理系统中,需要实现这样一个功能:从列表页点击新建或编辑进入新建.编辑页面,新建.编辑完成后需要关闭当前的新建和编辑tab,而tab的关闭则是由项目中的tag组件控制的, 新建和 ...

  5. 通过JS动态追加标签,以父评论子评论为例

    以下代码前后端交互以Django模板语法为例 先来以伪代码来示意用法: HTML部分: JS动态插入部分代码: 运行之后我们来浏览器看检查打印的内容: 看插入前后打印结果我们可以得知 $title[0 ...

  6. Python基础总结之第八天开始【while循环以及for循环,循环嵌套等循环相关的知识点】(新手可相互督促)

    ennnnn,年薪20万的梦想是不是又进了一步: 循环,什么是循环,循环就是电池有电,手机屏幕可以循环一整天的使用:循环就是地球不毁灭,太阳日复一日的出现...... 不接受反驳,谢谢!~ 只要条件满 ...

  7. IDEA插件之JavaDoc

      作用:用于在Java类元素(例如字段,方法等)上生成Java文档的插件.   1.安装JavaDoc插件 File -> Settings -> Plugins -> Marke ...

  8. LeetCode. 计数质数

    题目要求: 统计所有小于非负整数 n 的质数的数量. 示例i: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 代码: class Soluti ...

  9. # localhost 、217.0.0.1 、本机IP

    localhost .217.0.0.1 .本机IP localhost是一个域名,性质跟 "www.baidu.com" 差不多,指向127.0.0.1这个IP地址,在windo ...

  10. javascript 构建模块化开发

    在使用 sea.js .require.js . angular 的时候. 我们使用到  define . module(require) 的方式,定义模块,和依赖模块 下面给出 define 和 m ...