一、需求

  • 局域网内有若干用户,所有用户访问一个共享目录
  • 每个用户在共享目录里有自己的文件夹
  • 每个用户都可以读取其他人的文件夹
  • 每个用户只能对自己的文件夹有写入权限
  • 所有用户都属于filesgroup组

二、环境

服务器:Centos6

主机名:fileserver

IP地址:192.168.1.2

用户端IP网段: 192.168.1.0/24 , 192.168.2.0/24 , 172.16.1.0/24

三、配置步骤

1、安装samba,备份原始配置文件,编辑配置文件

[root@fileserver ~]# yum install samba samba-common samba-client
[root@fileserver ~]# cp /etc/samba/smb.conf /root
[root@fileserver ~]# vi /etc/samba/smb.conf
以下显示的是编辑过的内容
#======================= Global Settings =====================================
[global]
# ----------------------- Network Related Options -------------------------
workgroup = FILEGROUP            
netbios name = FILESERVER interfaces = lo eth0 192.168.1.2/24          # samba服务监听的网卡和IP地址
hosts allow = . 192.168.. 192.168.. 172.16..  # 允许接入的IP网段: 服务器本机 , 192.168.1.x , 192.168.2.x , 172.16.1.x # --------------------------- Logging Options -----------------------------
log file = /var/log/samba/log.%m  #默认不变
max log size = 50           #默认不变 # ----------------------- Standalone Server Options ------------------------
security = user          # 单机用户认证
passdb backend = smbpasswd      # 使用/var/lib/samba/private/smbpasswd 文本文件保存用户和密码 #============================ Share Definitions ==============================
# 这里注释掉了很多默认配置文件的设置,最后添加了自定义设置
#[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S #[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes # Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no # Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes # A publicly accessible directory, but read only, except for people in
# the "staff" group
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff # 自定义文件共享设置
[files]
comment = files
path = /opt/files
public = no
writable = yes
printable = no
write list = @filesgroup

2、添加组,创建共享文件夹,设置SELINUX

[root@fileserver ~]# groupadd filesgroup
[root@fileserver ~]# mkdir /opt/files
[root@fileserver ~]# chcon -t samba_share_t /opt/files

3、将samba设为开机自启动,启动samba

[root@fileserver ~]# chkconfig smb on
[root@fileserver ~]# service smb start

4、批量添加用户

useradd -MN %u -s /sbin/nologin && echo %p | passwd --stdin %u && usermod -aG filesgroup %u && mkdir -p /opt/files/%d && chown -R %u: /opt/files/%d && echo -e "%p\n%p" | smbpasswd -a -s %u

指令解释:

  • 此行指令由多条指令组成,指令之间用 && 连接,即上一条指令执行成功后才执行下一条
  • %u 代表用户名,%p 代表密码,%d 代表用户文件夹
  • 用户数量较少时可以在文本编辑器里编辑批量指令,每粘贴一行,用查找替换功能依次替换%u为用户名、%p为密码、%d为用户目录
  • 用户数量很多时建议将用户名、密码、文件夹名写入文件,用脚本读取文件自动执行

逐条解释:

useradd -MN %u -s /sbin/nologin     添加用户,-MN表示不创建用户家目录和用户基本组,-s /sbin/nologin 表示用户不可登录服务器
echo %p | passwd --stdin %u       为用户设置密码(其实可以省略)
usermod -aG filesgroup %u   将用户加入到filegroup组
mkdir -p /opt/files/%d   在共享目录创建用户文件夹
chown -R %u: /opt/files/%d   将用户文件夹owner设为用户自己
echo -e "%p\n%p" | smbpasswd -a -s %u 添加samba用户帐号,smbpasswd -a -s %u 是静默方式添加samba帐号,echo -e "%p\n%p" 是两次输出密码 %p,中间输出回车符 \n

5、设置共享目录所属组,为共享目录设置GUID,使所有用户创建的文件都属于filesgroup组,禁止filesgroup组以外的用户读取、执行
[root@fileserver ~]# chown -R :filesgroup /opt/fils
[root@fileserver ~]# chmod -R g+s /opt/files
[root@fileserver ~]# chmod -R o-rx /opt/files/
[root@fileserver ~]#

6、看一下生成的目录
[root@fileserver ~]# ls -ldZ /opt/files
drwxr-s---. root filesgroup unconfined_u:object_r:samba_share_t:s0 /opt/files
[root@fileserver ~]#
[root@fileserver ~]# ls -lZ /opt/files
drwxr-s---. user1     filesgroup unconfined_u:object_r:samba_share_t:s0 dir1
drwxr-s---. user2     filesgroup unconfined_u:object_r:samba_share_t:s0 dir2
drwxr-s---. user3     filesgroup unconfined_u:object_r:samba_share_t:s0 dir3
[root@fileserver ~]#
[root@fileserver ~]# ll /var/lib/samba/private/smbpasswd
-rw-------. 1 root root 1435 2015-04-13 16:59 /var/lib/samba/private/smbpasswd
[root@fileserver ~]#

致谢: http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html

Centos6配置samba服务器并批量添加用户和文件夹的更多相关文章

  1. CentOS 7.2 安装配置Samba服务器

    1背景 转Linux刚刚1年,vim操作还不能应对工程代码,之前一直都是Gnome桌面 + Clion 作开发环境,无奈在服务器上没有这样的环境, 看同事是(Windows)Source Insigh ...

  2. CentOS7安装配置SAMBA服务器

    假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以访问 RDDOCS /smb/tech 仅允许特定组的用户进行读写访问 特定组的组名为RD,目前 ...

  3. linux上安装配置samba服务器

    linux上安装配置samba服务器 在linux上安装配置samba服务器 在这给大家介绍一个不错的家伙,samba服务.如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这 ...

  4. CentOS 7安装配置Samba服务器

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  5. CentOS 7安装配置Samba服务器(挂载共享文件夹)

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  6. [转载]CentOS 7安装配置Samba服务器

    假设我们有这样一个场景 共享名路径权限SHAREDOC/smb/docs所有人员包括来宾均可以访问RDDOCS/smb/tech仅允许特定组的用户进行读写访问 特定组的组名为RD,目前的Alice.J ...

  7. 用户管理 之 在Linux系统中,批量添加用户的操作流程

    一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...

  8. CentOS下安装配置Samba服务器

    0 环境介绍 VMWARE12下安装的CENTOS7虚拟机.宿主机为WIN7. 1 离线安装 费了九牛二虎之力,下载各种依赖,还是有问题,转向在线安装. 2 在线安装 虚拟机采用默认的配置: 其次,网 ...

  9. jenkins配置记录(1)--添加用户权限

    前一阵子在线上部署了一套jenkins环境,作为线上代码发布平台使用.部署记录:http://www.cnblogs.com/kevingrace/p/5651427.html 下面重点记录下jenk ...

随机推荐

  1. JS原型链中的prototype与_proto_的个人理解与详细总结

    一直认为原型链太过复杂,尤其看过某图后被绕晕了一整子,今天清理硬盘空间(渣电脑),偶然又看到这图,勾起了点回忆,于是索性复习一下原型链相关的内容,表达能力欠缺逻辑混乱别见怪(为了防止新人__(此处指我 ...

  2. win7运行nodejs,返回IPV6:::ffff:127.0.0.1

    问题: 在win7上使用telnet连接node生成的服务器,在获取ip的过程中出现的问题. win7默认开启IPV6,所以获取的IP地址带有::ffff:前缀. 如果程序中使用到了IP地址,有可能会 ...

  3. [JLOI2015]管道连接(斯坦纳树)

    [Luogu3264] 原题解 多个频道,每个频道的关键点要求相互联通 详见代码,非常巧妙 #include<cstdio> #include<iostream> #inclu ...

  4. F. Clear the String(区间 DP )//每次都删除一个相同字符的子串 , 最小多少次

    https://codeforces.com/contest/1132/problem/F 借鉴:https://www.cnblogs.com/chhokmah/p/10508762.html 题意 ...

  5. Codeforces1114 D. Flood Fill (DP)(整个区间染成同色)

    题意:连续的几个颜色相同的格子称为一个连通块.选一个点为起点,每个操作是把所在连通块变一个颜色,求把整个区间染成同色需要的最少操作数.(注意,每次只能改变所在连通块的颜色,不能任选连通块,除了最开始时 ...

  6. adb自救指南

    以下只能自救专用 adb.exe root adb remount adb.exe connect <Ip> adb.exe install [-r] [-d] <apkPath&g ...

  7. C# 错误和异常

    Try,catch和finally语句组成 异常层次结构 部分异常属性: Message 类型:string 描述:含有解释异常原因的消息(只读) StackTrace 类型:string 描述:含有 ...

  8. shopNC开发手册

    链接:   https://wenku.baidu.com/view/b9232d24dd3383c4bb4cd2c9.html https://wenku.baidu.com/view/ff1566 ...

  9. dedecmd 全局标签

    dedecms全局标签     dedecms 标签使用手册  全局标签   adminname|责任编辑   arclist|文档列表   arclistsg|独立单表模型列表   ask|问答标签 ...

  10. poj1318 Word Amalgamation 字符串排序(qsort)

    Word Amalgamation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9794   Accepted: 4701 ...