Linux 文档多租户管理方法
例题
同一群组microsoft下的两个账号justmine001和justmine002需要共同拥有目录/microsoft/eshop
的开发权,以便进行协同工作,但是其他人不允许进入和查阅该目录。
从例题可以分析出:
- 同一群组下的账户需要共同拥有目录的使用权,且可以编辑里面的任何文件。
- 其他账户不拥有该目录的任何权限。
- 需要使用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,所以justmine001和justmine002可以查阅(ls)和进入(cd)该目录,但是都不能在目录中创建文件。
首先,设置目录群组为microsoft,其次,其他人对该目录没有任何权限,所以应该设置权限为770。如果不理解,请阅读上一篇详解Linux文档属性、拥有者、群组、权限、差异
chgrp microsoft /microsoft/eshop; 分配群组
chmod 770 /microsoft/eshop; 设置权限
首先测试justmine账号(其他人)的权限,如下:
其他人无法访问ls
和进入cd
该目录,已达到预期效果。
测试同群组下的justmine001和justmine002账号,再次创建文件,如下:
为了淋漓尽致的展现,我将文件创建权限从拒绝到许可的整个过程都截取下来了!!!
从上面可以看到,文件test和test1的拥有者和群组分别为justmine001和justmine002,虽然用户justmine001可以删除justmine002创建的文件test1(目录权限的控制范围),但是却不能编辑它(文件权限的控制范围)。那该肿么办呢,还是无法完成协作工作啊。第一种方法是我们将文件test1权限设置为777,这样文件对任何人都可读、可写、可编辑,再加上目录权限的控制,其他人访问不了文件test1,没毛病。第二种方法,变更它们创建的文件群组为microsoft,这样也可以实现协作工作,貌似这种方法才是切合现实的。不过,每次都要管理员去做这件事情,那岂不是太麻烦他老人家,多不好意思啊,嘿嘿。正所谓,车道山前必有路,使用Linux特殊权限SGID可以完美实现同一群组下的任何账户创建的文件都拥有相同的群组microsoft(详情请阅读:理解Linux文档的默认安全机制、隐藏属性、特殊权限)。
备注:Linux文档权限是一级一级的往下控制的,所以任何读、写、编辑文件的前提就是要拥有能够进入文件所属目录的权限。
设置特殊权限
为目录/microsoft/eshop
设置SGID权限
chmod 2770 /microsoft/eshop
使用justmine002账号创建文件,查询文件权限:
从上图可以看到,justmine002所属的文件群组自动变更成microsoft,而umask默认为002,两人同属一个群组,自然就可以互相修改彼此的文件了!!!
总结
Linux系统管理员的主要任务其实就是如何管理好系统的文件系统,那么对于文档多租户管理,首先新建一个统一的群组,然后将目录权限设置为2770,最后把需要协作工作的用户加入这个群组,就是这么简单。往往,结果很简短,但是思考分析过程就如同西天取经,希望把整个过程分享给大家,不仅要知其然,更要知其所以然,这样才能举一反三,融汇贯通,达到灵活运用的目的。
相关文章
- 然 Ubuntu 提供了优秀的图形化软件管理工具,我们绝大多数时间并不需要使用命令行来管理 Snap 软件包,但命令行拥有更强的功能和灵活性,学会如何使用可以帮你更好地掌控系2024-10-18
Flatpak和Snapcraft怎么选? Linux软件包管理系统优缺点对比
Linux 软件的打包和分发方式在过去几年中也取得了长足地进展,本文将探讨 Flatpak 和 Snapcraft 之间的关键差异,它们各自的优/缺点,以期望帮助用户找到更适合自己的一款2024-10-18linux服务器重启命令哪个好用? Linux服务器重启命令汇总
在 Linux 系统中,最严谨的重启命令是 shutdown -r now,该命令直接将系统重启,而不进行任何清理或准备工作,确保系统彻底重启,但也有很多其他命令,详细如下文介绍2024-10-17教你如何在Linux中使用apt命令? Linux APT命令实战教程
apt是一个软件包管理工具,apt命令相当强大,要是在Ubuntu和Debian系统中使用,可以用来对软件进行安装等操作,需要超级管理员(root)权限进行操作2024-09-29apt 和 apt-get有什么区别? Linux包管理解密
为什么 Debian 系 Linux 发行版同时拥有apt和apt-get这两个雷同的命令?他们之间有什么区别?详细请看下文介绍2024-09-29- Linux圈曝出严重远程代码执行RCE漏洞,已存在10多年,几乎影响所有GNU/Linux发行版,目前尚未有修复补丁,不过可以缓解,解决方案如下2024-09-27
- 在Linux系统中,分区管理是非常重要的一项工作,在使用Linux系统的过程中,有时候我们需要删除某个分区来释放存储空间或重新规划硬盘空间,那么,如何在Linux系统上删除分2024-09-14
深度操作系统deepin 25开发计划公布: 2025 年 01 月发布
deepin 25 计划发布时间为 2025 年01 月,此版本的主要目标是修复 deepin 23 中的遗留问题,提升系统稳定性2024-09-14- FDISK是一个用于硬盘分区的工具,特别是在较早的操作系统版本中,如Windows 98和早期的Linux系统中,FDISK是进行硬盘分区的主要工具,这里就为大家分享一下linux系统中使用2024-08-29
黑神话悟空怎么下载安装? 深度操作系统deepin23黑神话悟空安装教程
deepin23系统想要体验《黑神话:悟空》游戏,该怎么下载安装呢?下面我们就来看看详细的图文教程2024-08-22
最新评论