分享一个Linux管理文档多租户的例子

例题

同一群组microsoft下的两个账号justmine001justmine002需要共同拥有目录/microsoft/eshop的开发权,以便进行协同工作,但是其他人不允许进入和查阅该目录。

从例题可以分析出:

  1. 同一群组下的账户需要共同拥有目录的使用权,且可以编辑里面的任何文件。
  2. 其他账户不拥有该目录的任何权限。
  3. 需要使用root账户,创建账户、群组,设置目录权限,然后搭建开发环境。

创建账户相关信息

groupadd microsoft ;  新增群组
useradd -G microsoft justmine001; 新增账户,并加入到群组microsoft
useradd -G microsoft justmine002; 新增账户,并加入到群组microsoft

查阅账号属性

id justmine001;
id justmine002;

搭建环境

创建开发目录

mkdir -p /microsoft/eshop

查询

ll -d /microsoft/eshop

设置传统权限

从上图可以看到,开发目录的拥有者和群组都是root,权限为rwxr-xr-x,所以justmine001justmine002可以查阅(ls)和进入(cd)该目录,但是都不能在目录中创建文件。

首先,设置目录群组为microsoft,其次,其他人对该目录没有任何权限,所以应该设置权限为770。如果不理解,请阅读上一篇详解Linux文档属性、拥有者、群组、权限、差异

chgrp microsoft /microsoft/eshop; 分配群组
chmod 770 /microsoft/eshop;  设置权限

首先测试justmine账号(其他人)的权限,如下:

其他人无法访问ls和进入cd该目录,已达到预期效果。

测试同群组下的justmine001justmine002账号,再次创建文件,如下:

为了淋漓尽致的展现,我将文件创建权限从拒绝到许可的整个过程都截取下来了!!!

从上面可以看到,文件testtest1的拥有者和群组分别为justmine001justmine002,虽然用户justmine001可以删除文件test1(目录权限的控制范围),但是却不能编辑它(文件权限的控制范围)。那该肿么办呢,还是无法完成协作工作啊。那么我们将文件权限设置为777不就可以了,这样文件对任何人都可读、可写、可编辑,再加上目录权限的控制,不就可以了,没毛病。还有一种方法,变更它们创建的文件群组为microsoft,这样也可以实现协作工作,貌似这种方法才是切合现实的。不过,每次都要管理员去做这件事情,那岂不是太麻烦他老人家,多不好意思啊,嘿嘿。正所谓,车道山前必有路,我们可以使用Linux特殊权限SGIDumask来定义这种默认行为,这样同一群组下的任何账户创建的文件都可以互相修改了。

备注:Linux文档权限是一级一级的往下控制的,读、写、编辑文件的前提是能进入该目录。

设置特殊权限

为目录/microsoft/eshop设置SGID权限

chmod 2770 /microsoft/eshop

使用justmine002账号创建文件,查询文件权限:

从上图可以看到,justmine002所属的文件群组自动变更成microsoft,而umask默认为002,两人同属一个群组,自然就可以互相修改彼此的文件了!!!

总结

对于文档多租户管理,我们最好新建一个统一的群组,然后将目录权限设置为2770,最后把需要协作工作的用户加入这个群组即可,就是这么简单。

原文地址:https://www.cnblogs.com/justmine/p/9097834.html

时间: 2024-10-11 05:13:20

分享一个Linux管理文档多租户的例子的相关文章

【转】刚发现一个linux在线文档库。很好很强大。

原文网址:http://blog.csdn.net/longxibendi/article/details/6048231 1.网址: http://www.mjmwired.net 2.比如查看这个 proc.txt ,就在这里能找到. http://www.mjmwired.net/kernel/Documentation/filesystems/proc.txt 内核参数解释全在这里了.不过,也可以下载内核完源代码,从/usr/src/linux/Documentation/proc.tx

LINUX 内核文档地址

Set colors for man pages: 设置方法比较简单,打开/etc/bash.bashrc(需要root权限)或者~/.bashrc文件加入如下内容: # Set colors for man pagesman() {env \LESS_TERMCAP_mb=$(printf “\e[1;31m”) \LESS_TERMCAP_md=$(printf “\e[1;31m”) \LESS_TERMCAP_me=$(printf “\e[0m”) \LESS_TERMCAP_se=$

Linux常用文档操作命令--2

4.文档压缩与解压操作 在Linux中常见的压缩文件有:*.tar.gz.*.tgz.*.gz.*.Z.*bz2等.其每种不同的压缩文件对印的压缩和解压命令也不同. *.tar.gz :tar程序打包的文档,并且经过gzip的压缩. *.tgz :tar程序打包的数据,并没有经过压缩. //注:tar是打包程序,能将多个文档打包成一个文档 *.gz :gzip程序压缩的文档. *.Z :compress程序压缩的文档. *.bz2 :bzip程序压缩的文档. 1).compress:它是用来将文

Linux帮助文档

Linux帮助文档 Linux的命令是如此的多,我们只能记住常用的一些命令,而且没有一个教程会把所有的命令覆盖掉,授人以鱼不如授人以渔,当掌握如何查看Linux帮助文档时候,就能在拿到一个不知道的命令时,查看它的用途. 当我们记不清某个命令,或者想做某个操作的时候却不知道是否有这个命令的时候.我们可以去搜索引擎中去搜索. 当我们知道一个命令时候,但是不知道它有哪些选项,可以跟哪些参数的时候,可以使用命令man man man 命令的作用是 获取一个命令的帮助文档. > man ls 通过这个命令

2015-郭辉-项目采购管理+文档配置管理

一.采购管理1.采购管理的主要过程: 编制采购计划,编制询价计划,询价,供方选择,合同管理,合同收尾.2.工作说明书与范围说明书的区别: 工作说明书是对产品或服务的叙述性描述.范围说明书通过明确所需完成的工作确定了项目范围.3.招投标程序是什么: 1.发布招标公告. 2.根据项目情况 ,可以组织潜在投标人勘探现场. 3.投标. 4.开标. 5.评标. 6.确定中标人. 7.订立合同.4.采购审计的定义和内容. 整个采购过程中,采购审计都对采购的完整过程进行系统审查.目标是找出本次采购的失败和成功

[Linux] day06——文档管理

文档管理===================mkdir 创建目录 -p /路径/目录名  (父路径不存在 -p) ---------------------------------------  touch              创建文件 实际创建文件时间戳 ------------------------------------------ln [-s]   (link) 源文件 链接文件路径   创建软链接----------------------------cp  (Copy) -

【转】近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)

编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost 到随机森林.Deep Learning. <Deep Learning in Neural Networks: An Overview> 介绍:这是瑞士人工智能实验室 Ju

近200篇机器学习&amp;深度学习资料分享(含各种文档,视频,源码等)(1)

原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost 到随机森林.Deep Learning. <Deep Learning i

Asp.Net Core Api 使用Swagger管理文档教程的安装与使用

这周因为公司的需求需要我做一个Api的程序,这周的三天时间我一直在Core Api和 framework Api之间做纠结.不知道要使用哪一个去做项目,想着想着就决定了.既然两个我都没用过那个何不来使用Core Api来做呢.也是对自己的一种锻炼! OK,接下来回归正题! Core下的Swagger和传统framework  Mvc下的Swagger是不一样的!  两者的差距:       其一:引用的程序集不一样.          其二:安装完程序集后需要配置的地方不一样,