一、需求

  • 局域网内有若干用户,所有用户访问一个共享目录
  • 每个用户在共享目录里有自己的文件夹
  • 每个用户都可以读取其他人的文件夹
  • 每个用户只能对自己的文件夹有写入权限
  • 所有用户都属于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 = FILESERVERinterfaces = lo eth0 192.168.1.2/24          # samba服务监听的网卡和IP地址hosts allow = 127. 192.168.1. 192.168.2. 172.16.1.  # 允许接入的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 = filespath = /opt/filespublic = nowritable = yesprintable = nowrite 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

转载于:https://www.cnblogs.com/panblack/p/samba_batch_adding_users.html

Centos6配置samba服务器并批量添加用户和文件夹相关推荐

  1. ftp服务器目录创建文件夹,在FTP服务器上批量建立学生的文件夹

    各校要建立ftp服务器,同时建立"学生学号+学生姓名"的文件夹.在教师机端建立文件夹.此方法利用半个小时就建立好全校3-6年级500余名学生姓名的文件夹. 1.相信很多信息技术老师 ...

  2. centos7 samba 离线安装_CentOS 7安装配置Samba服务器(挂载共享文件夹)

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

  3. 项目七samba服务器,Centos 7 配置Samba服务器

    Centos 7配置Samba服务器 1.Centos 7版本,内核: Linux 3.10.0-514.el7.x86_64 [root@tommy /]# hostnamectl #查看版本号 O ...

  4. RHEL5配置Samba服务器实现文件共享

    为了Windows主机与Linux服务器之间的资源共享,同时实现访问的控制,Linux操作系统提供的Samba服务可以实现这样的控管.Samba服务为两中不同的操作系统架起了一座桥梁,使Linux系统 ...

  5. red hat Linux 配置Samba服务器(超详细:内含桥接模式)

    前几天做实验,我一直配置不好,ip地址和samba服务器,内心接近崩溃.于是今天决定一步一步搞定它 实验环境 windows10.vm.redhat6 实验 vm 桥接 因为实验需要,所以我们选择vm ...

  6. ubunt配置samba服务器,匿名访问

    samba作用: Samba的主要任务就是实现Linux系统和Windows系统之间的资源共享.我们现在是要在Linux下配置Samba,让Windows的用户可以访问linux下内容. 当然,也可用 ...

  7. Linux配置samba服务器

    1 Linux 安装samba yum install -y samba 2 修改配置文件 添加用户 adduser root \\如果是当前linux登录用户,可以省略该步 smbpasswd -a ...

  8. ubuntu20.04配置samba服务器

    ubuntu20.04配置samba服务器 安装samba sudo apt-get install samba samba-common 配置需要共享的目录 sudo chmod -R 777 /h ...

  9. 在红帽Linux上安装samba服务,如何在linux上安装配置samba服务器

    如何在linux上安装配置samba服务器 更新时间:2019-10-29 22:40 最满意答案 1.首先需要登入安装了Linux系统的计算机,安装Samba.Fedora发行版一般使用yum工具安 ...

最新文章

  1. 使用 Laradock 10 分钟部署 Laravel 或 Notadd 环境
  2. js实现简单的循环打字效果(思路分享)
  3. java的内存管理机制
  4. s3c6410裸机程序(1)
  5. 1 京东_推荐好友拿好礼 | 每1积分可兑换30元京东电子卡
  6. [react] react中的setState是同步还是异步的呢?为什么state并不一定会同步更新?
  7. 漫话:为什么计算机用补码存储数据?
  8. [Python 网络编程] TCP、简单socket模拟ssh (一)
  9. ES6学习(var,let,const区别)
  10. js预览本地word文档_怎么免费下载百度文库付费文档?
  11. boost1.7 centos7编译
  12. java中int算法的有趣现象
  13. .Net获取URL中文参数值乱码问题
  14. 【Dubbo篇】--Dubbo框架的使用
  15. [转载]AxureRP学习成长之路
  16. MapGIS教程-常见问题处理
  17. Spring+Quartz实现文件中转站
  18. apache 服务器的 Option Indexes,AllowOverride,Order Allow,Deny 详解
  19. Android集成LeanCloud用户反馈SDK要注意点
  20. 海外众筹:kickstarter众筹创建成功项目分享

热门文章

  1. “Lephone.Data.DbEntry”的类型初始值设定项引发异常。(DbEntry.net3.9)
  2. CVPR2021 Oral | HOTR:不再需要后处理!Kakao Brain提出端到端Human-Object交互检测模型...
  3. CVPR 2020丨MAML-Tracker: 用目标检测思路做目标跟踪? 小样本即可得高准确率
  4. 干点大事!“覆盖25万人的AI资源对接平台”发布,找人、找技术不再难!
  5. PyImageSearch新出教程:Dlib多目标跟踪(附下载地址)
  6. mysql磁盘io高是什么造成_FAQ | 是什么导致MySQL数据库服务器磁盘I/O高(本文章来自知数堂)...
  7. 学习 |《神经网络与深度学习》的讲义
  8. 【图像处理】U-Net中的重叠-切片(Overlap-tile)
  9. 无人车制胜关键:Apollo决策系统全面剖析
  10. 佩斯大学计算机科学世界排名,美国佩斯大学留学推荐 计算机科学专业