Samba服务器配置案例

  一、项目背景

  某公司有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程序及相关依赖包:

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

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

1 [root@Fish ~]# rpm -qa | grep samba
2 samba-winbind-3.6.23-51.el6.x86_64
3 samba-common-3.6.23-51.el6.x86_64
4 samba-client-3.6.23-51.el6.x86_64
5 samba-winbind-clients-3.6.23-51.el6.x86_64
6 samba-3.6.23-51.el6.x86_64

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

1 [root@Fish ~]# cd /usr/share/
2 [root@Fish share]# mkdir Samba-Share
3 [root@Fish share]# cd Samba-Share/
4 [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.添加相关用户组:

1 [root@Fish Samba-Share]# groupadd system
2 [root@Fish Samba-Share]# groupadd develop
3 [root@Fish Samba-Share]# groupadd productdesign
4 [root@Fish Samba-Share]# groupadd test
5 [root@Fish Samba-Share]# groupadd develop_test

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

         5.添加用户:

1 [root@Fish Samba-Share]# useradd -g test -G develop_test -d /usr/share/Samba-Share/test/ -s /sbin/nologin test
2 [root@Fish Samba-Share]# useradd -g develop -G develop_test -d /usr/share/Samba-Share/develop -s /sbin/nologin develop
3 [root@Fish Samba-Share]# useradd -g productdesign -d /usr/share/Samba-Share/productdesign/ -s /sbin/nologin productdesign
4 [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).在执行上述命令时,系统会做出如下反馈:

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

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

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

 1 [root@Fish Samba-Share]# smbpasswd -a system
 2 New SMB password:
 3 Retype new SMB password:
 4 Added user system.
 5 [root@Fish Samba-Share]# smbpasswd -a develop
 6 New SMB password:
 7 Retype new SMB password:
 8 Added user develop.
 9 [root@Fish Samba-Share]# smbpasswd -a productdesign
10 New SMB password:
11 Retype new SMB password:
12 Added user productdesign.
13 [root@Fish Samba-Share]# smbpasswd -a test
14 New SMB password:
15 Retype new SMB password:
16 Added user test.

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

 1 [root@Fish share]# chown system:system ./Samba-Share/
 2 [root@Fish share]# cd Samba-Share/
 3 [root@Fish Samba-Share]# chmod 2770 develop/ develop_testrw/ productdesign/ test/ temp/ library/
 4 [root@Fish Samba-Share]# chown develop:system develop
 5 [root@Fish Samba-Share]# chown productdesign:system productdesign/
 6 [root@Fish Samba-Share]# chown test:system test/
 7 [root@Fish Samba-Share]# chown system:system library/
 8 [root@Fish Samba-Share]# chown system:develop_test develop_testrw/
 9 [root@Fish Samba-Share]# chmod 755 library/
10 [root@Fish Samba-Share]# chown system:system temp/
11 [root@Fish Samba-Share]# chmod 777 temp/
12 [root@Fish Samba-Share]# chmod 755 ../Samba-Share/

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

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

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

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

 

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

 1 [root@Fish ~]# cat /etc/samba/smb.conf
 2 [global]
 3     server string = Samba Server Version %v
 4     workgroup = WORKGROUP
 5     netbios name = SambaServer
 6     server string = CentOS6.6 Samba Server
 7     security = share
 8 
 9 [system]
10     comment = systemadmin
11     path = /usr/share/Samba-Share
12     valid users = system
13     create mask = 0664
14     directory mask = 0775
15     writeable = yes
16     browseable = yes
17 
18 [library]
19     path = /usr/share/Samba-Share/library
20     writeable = no
21     browseable = yes
22     guest ok = yes
23 
24 [temp]
25     path = /usr/share/Samba-Share/temp
26     writeable = yes
27     browseable = yes
28     guest ok = yes
29 
30 [develop_testrw]
31     path = /usr/share/Samba-Share/develop_testrw
32     valid users = system,@develop_test
33     create mask = 0664
34     directory mask = 0775
35     writeable = yes
36     browseable = yes
37 
38 [develop]
39     path = /usr/share/Samba-Share/develop
40     valid users = develop,@system
41     create mask = 0664
42     directory mask = 075
43     writeable = yes
44     browseable = yes
45 
46 [productdesign]
47     path = /usr/share/Samba-Share/productdesign
48     valid users = productdesign,@system
49     create mask = 0664
50     directory mask = 075
51     writeable = yes
52     browseable = yes
53 
54 [test]
55     path = /usr/share/Samba-Share/test
56     valid users = test,@system
57     create mask = 0664
58     directory mask = 075
59     writeable = yes
60     browseable = yes

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

1 [root@Fish ~]# service smb restart

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

1 [root@Fish ~]# service iptables stop
2 [root@Fish ~]# setenforce 0

         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

转载于:https://www.cnblogs.com/suifenpx/p/samba_config.html

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值