作业的背景
阿旺所在的公司是一家小小的培训机构,名叫透明魔方,专门做少儿编程教育的。这家培训机构常年有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 //使用这个去排错
文章讲述了阿旺在一家少儿编程培训机构中,面对老板提出搭建文件服务器的需求,通过研究和实践,设计了一套基于Samba的文件共享方案,实现各部门人员的权限管理和文件分类,旨在解决师资流失导致的教育资源共享问题。


1683

被折叠的 条评论
为什么被折叠?



