samba的配置

文章讲述了阿旺在一家少儿编程培训机构中,面对老板提出搭建文件服务器的需求,通过研究和实践,设计了一套基于Samba的文件共享方案,实现各部门人员的权限管理和文件分类,旨在解决师资流失导致的教育资源共享问题。

作业的背景

     阿旺所在的公司是一家小小的培训机构,名叫透明魔方,专门做少儿编程教育的。这家培训机构常年有5-6个专职教师,主要培训scratch、python、乐高机器人等,机构有比较详细的课程大纲和课程表,每个教师都会按照课程大纲来备课,准备教案和教材。老板现在有个比较头疼的问题,好的师资很难保持,一个好老师走了,往往教学质量就会大幅度下降,引起了家长和孩子们的不满。

     周一,老板找到阿旺:“旺啊,你不是做运维的吗,给我搭建一个文件服务器吧,我想把老师们的教案和教材共享起来,让好老师的培训资料可以成为我们的数据资源,另外我们虽然是小公司,但是还是分部门的嘛,比如管理部和销售部,ta们也要用,反正你先想想,然后我们讨论一下。”

    阿旺心想:“what? 我虽然是干helpdesk的,但不代表我会做服务器运维啊,这是两个工种啊,老板!” 但是老板已经走远了,留下阿旺原地发呆。

    阿旺开始网上各种搜索,发现samba可以解决这个问题,于是他一边浏览、一边实践,折腾了3天,终于形成了自己的设计思路。然后拿去给老板看。

   


文件服务器的设计思路

需求:所有人都能把自己的文件存在文件服务器上,使用起来就像在自己电脑D盘操作一样,很方便。不同的人对文件有不同的权限。权限有2种,读、写。

各个部门办公人员拥有各自的主目录,用于存放自己的工作文档,其他人禁止访问。

教研部、财务部、市场部、管理部都有各自的文件目录。

各部门目录各部门目录下提供“对外”、“公共文档”、“受控文档”三个子目录.
对外:
<1>允许公司所有工作人员访问,但不能修改文件。
公共文档:
<1>本部门员工可以访问,领导层可以访问,但不能修改。
受控文档:
<1>本部门主管、公司领导可以访问、其他员工禁止。
注:财务部受控文档只允许总经理、财务部总监、主管访问;管理部受控文档只允许总经理、主管访问
公共区域:
<1>所有员工均可访问。

预算:0万元

设备:1台旧电脑(16G内存、500G硬盘),1个1T的硬盘做备份

设计:电脑上安装虚拟机vmware,虚拟机上安装centos7,然后在其上安装samba服务,为所有的用户创建账号和目录。

  老板看了这个方案,说:“可以试试,但不知道好用不,你先做吧。电脑就用我淘汰下来那台,不过我下周二要看到效果哦。”

  阿旺心里偷笑,因为他这三天折腾下来已经做得差不多了,后面几天有很充分的时间测试完善这个功能。

  下面是阿旺的操作步骤:


第0步:安装Samba服务

centos中安装samba服务端

# yum install -y samba smbclient samba-common
# rpm -qa | grep samba  //安装完后看一下是否安装成功

第 1 步:创建相关的目录、组、账号、权限

      1) 先把各个部门的目录创建出来、教研部、财务部、市场部、管理部都有各自的文件目录,然后还有一个公共目录(公共区域,所有员工都可以访问)。

# mkdir -p /home/samba/教研部 /home/samba/财务部 /home/samba/管理部 /home/samba/市场部 /home/samba/公共区域

     2) 再把各个部门的目录下面都各自创建三个目录,分别是对外、公共、受控。

下面以市场部门下面建立目录举例。其他部门同理。

# mkdir /home/samba/市场/对外  /home/samba/市场/公共 /home/samba/市场/受控

      3) 创建不同的组,财务组、管理组、教研组、市场组      

# groupadd finance
# groupadd manager
# groupadd teacher
# groupadd market

      4) 创建用户帐户(教研部:catfish   财务部:susi   管理部:caser  市场部:pepper  ),并把用户分到各自的部门。

# useradd -s /bin/false catfish  //所有的用户都不允许使用服务器的 SHELL(安全考虑)
# useradd -s /bin/false susi
# useradd -s /bin/false caser
# useradd -s /bin/false pepper

#smbpasswd -a catfish   //创建smb用户密码
#smbpasswd -a susi
#smbpasswd -a caser
#smbpasswd -a pepper



# usermod -G finance susi
# usermod -G teacher catfish
# usermod -G manager caser
# usermod -G market pepper

     5) 设置文件系统权限创建用户帐户(教研部:catfish   财务部:susi   管理部:caser  市场部:pepper  ),并把用户分到各自的组。

# useradd -s /bin/false catfish  //所有的用户都不允许使用服务器的 SHELL(安全考虑)
# useradd -s /bin/false susi
# useradd -s /bin/false caser
# useradd -s /bin/false pepper


# usermod -G finance susi
# usermod -G teacher catfish
# usermod -G manager caser
# usermod -G market pepper

    6) 设置各个目录的权限。

# chmod 755 /home/samba/市场部 教研部 管理部 财务部
# chmod 777 /home/samba/公共区域

    7) 设置各个目录的所属的账号和所属组。

 # chown catfish:teacher /home/samba/教研部/
 # chown caser:manager /home/samba/管理部
 # chown pepper:market /home/samba/市场部/
 # chown susi:finance /home/samba/财务部

# mkdir /var/share   //多层目录可加参数-p,此处可不加

第 2 步:修改 Samba 服务的主配置文件

  Samba服务安装完后,不可以直接使用Windows或Linux的客户端访问Samba服务器,我们还必须对服务器进行配置。

# gedit /etc/samba/smb.conf   //我喜欢用这个编辑器,类记事本,方便复制

按照需求修改配置文件,如下所示:

[homes]
   comment = Home Directories
   browseable = no
   writable = yes
[教研部]
path = /home/samba/教研部
writable = yes
browseable = yes
[对外]
path = /home/samba/教研部/对外
admin users = catfish
browseable = no
[公共文档]
path = /home/samba/教研部/公共
valid users = @teacher
admin users = catfish
browseable = no
[受控文档]
path = /home/samba/教研部/受控
valid users = catfish
admin users = catfish
browseable = no
[财务部]
path = /home/samba/财务部
writable = yes
browseable = yes
[对外]
path = /home/samba/财务部/对外
admin users = susi
browseable = no
[公共文档]
path = /home/samba/财务部/公共
valid users = @finance
admin users = susi
browseable = no
[受控文档]
path = /home/samba/财务部/受控
valid users = susi
admin users = susi
browseable = no
[管理部]
path = /home/samba/管理部
writable = yes
browseable = yes
[对外]
path = /home/samba/管理部/对外
admin users = caser
browseable = no
[公共文档]
path = /home/samba/管理部/公共
valid users = @manager
admin users = caser
browseable = no
[受控文档]
path = /home/samba/管理部/受控
valid users = caser
admin users = caser
browseable = no
[公共区域]
path = /home/samba/公共区域
public = yes
admin users = @teacher

配置好后,输入testparm试一下是否可用

# testparm

第 3 步 重新启动 Samba 服务

# systemctl start smb

报错

1、Another app is currently holding the yum lock; waiting for it to exit...

解决:

rm -f /var/run/yum.pid

2、如果无法启动smb,报错:Unit samba.service could not be found

解决:

# systemctl status smb.service  //使用这个去排错

作业

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值