Linux 入门记录:十二、Linux 权限机制【转】
转自:https://www.cnblogs.com/mingc/p/7591287.html
一、权限
权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。
系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限越大,该进程所拥有的权限也就越大。
二、文件权限
Linux 中,每个文件拥有以下三种权限:
| 权限 | 对文件的影响 | 对目录的影响 |
| r(读取) | 可读取文件内容 | 可列出目录内容 |
| w(写入) | 可以修改文件内容 | 可在目录创建、删除文件 |
| x(执行) | 可以作为命令执行 | 可访问目录内容 |
所以,目录必须拥有 "x" 权限才可查看其内容。很多时候,执行权限 "x" 对于目录而言也叫浏览权限。仅有 "r" 权限是无法查看目录内容的(因为连访问都做不到)。
三、UGO模型
Linux 权限基于 UGO 模型进行控制:
- U 代表 User,是文件或文件夹所属用户的权限;G 代表 Group,是文件或文件夹所属组的权限;O 代表 Other,是其他用户对文件或文件夹的权限
- 每一个文件的权限基于 UGO 模型进行设置
- 权限三个一组(rwx),对应 UGO 分别设置(总共有 3 个组 9 个权限)
- 每一个文件拥有一个所属用户和所属组,对应 U、G模型;不属于该文件所属用户和所属组的使用 O(Other)模型对应的权限
命令 ls -l 可以查看当前目录下所有文件的详细信息:

上图中,每一行的格式如下:
| drwxr-xr-x. | 2 | mingc | mingc | 4096 | Sep 23 14:54 | Desktop |
|
UGO模型的权限 第1位是文件类型描述符,"d"表示目录,"-"表示文件 第2-4位"rwx"是U模型权限,可读可写可执行 第5-7位"r-x"是G模型权限,可读可执行,不可写 第8-10位"r-x"是O模型权限 |
链接数量 | 所属用户U | 所属组G | 大小 | 日期时间 | 文件或目录名 |
四、修改文件所属用户和组
命令 chown 用以改变文件的所属用户:
|
1
|
chown username filename |
常用参数:
|
1
|
-R 归地修改目录下所有文件的所属用户 |
命令 chgrp 用以改变文件的所属组:
|
1
|
chgrp groupname filename |
常用参数:
|
1
|
-R 递归地修改目录下所有文件的所属组 |
五、修改文件权限
命令 chmod 用以修改文件的权限:
|
1
|
chmod mode filename |
mode 参数格式如下:
|
1
2
3
4
5
|
u、g、o 分别代表用户、组、其他a 代表ugo+、- 代表加入或删除对应权限r、w、x 代表三种权限-R 递归地修改 |
示例:
|
1
2
3
4
|
chmod u +rw test.md 给文件的所属用户添加rw权限chmod g -x test.md 给文件的所属组移除x权限chmod go +r test.md 给文件的所属组和其他用户添加r权限chmod a -x test.md 给文件的所属UGO三个模型均移除x权限 |
命令 chmod 也支持以三位八进制数值的方式修改权限,rwx 权限值分别由数字表示如下:
|
1
2
3
|
r = 4 (2 ^ 2)w = 2 (2 ^ 1)x = 1 (2 ^ 0) |
使用数字表示权限时,每组权限分别为对应数字之和:
|
1
2
3
|
rw = 4 + 2 = 6rwx = 4 + 2 + 1 = 7r-x = 4 + 1 = 5 |
所以,使用数字表示 UGO 权限时,可以用如下方式表示:
|
1
2
|
chmod 0660 test.md 设置 UGO 权限为 rw-rw----chmod 0775 test.md 设置 UGO 权限为 rwxrwxr-x |
六、实例
案例描述
现在有个某公司 Company,部门和员工如下:
| 部门 | 员工 |
| 培训部(Training) |
李雷(LiLei) 王雪(WangXue) |
| 市场部(Market) |
韩梅梅(HanMeimei) 林立(LinLi) |
| 管理部(Manage) |
路人甲(User1) 路人乙(User2) |
不行了,名字想不出来了~~
现在,要为每个部门和员工建立相应的工作文件夹,要求如下:
- 所有目录、文件均保存在一个统一的文件夹下
- 每个部门拥有一个独立的文件夹
- 不同部门之间不能访问对方文件夹
- 每个员工在所在部门文件夹下拥有一个所属的文件夹
- 相同部门不同员工之间可以查看对方的文件夹,但不可修改,员工只能修改自己的文件夹
解决方案
好的,下面开始:
用组来表示部门,用用户来表示员工,我以 root 用户登录添加组和用户,并为用户指定附属组(部门):

为了让整个公司的文件夹 Company 有足够的访问权限,在根目录 "/" 下创建公司的文件夹目录 /Company,并创建三个部门子目录,去掉每个部门目录的 O 模型权限并指定所属部门:

OK,这样就满足了前 3 个要求:有统一文件夹和多个不同的部门目录,并且不同部门之间全没有 O 模型权限,不能访问对方。
下面继续创建员工目录,并为每个目录指定它的所属员工和所属部门:

好的,第 4 和第 5 个要求也满足了:每个员工有自己的文件夹,并且不同员工之间只能查看不能修改。
最后测试一下,登录 LiLei 账号:

不同部门之间不能查看,同一部门之间可以查看不能修改,完成。
相关链接:
作者:mingc - 博客园
出处:http://www.cnblogs.com/mingc
声明:本文发表于博客园。如需转载,请注明出处,并在文章页面明显位置给出原文链接,否则保留追究其法律责任的权利。
Linux 入门记录:十二、Linux 权限机制【转】的更多相关文章
- Linux 入门记录:二十、Linux 包管理工具 YUM
一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...
- Linux 入门记录:二、Linux 文件系统基本结构
一.树状目录结构 Linux 文件系统是一个倒置的单根树状结构.文件系统的根为"/":文件名严格区分大小写:路径使用"/"分割(Windows 中使用" ...
- Linux学习之十二-Linux文件属性
Linux文件属性 在Linux中,对于每个文件都有相应属性,以Linux中root用户家目录下新建文件a.txt为例,在a.txt中输入几个字符 使用命令ls -ild a.txt查看文件的权限等 ...
- Linux入门(用户操作及权限)
Linux入门之 用户操作及权限 在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分.每个级别在公司的职责不同,权限也不同.在Linux操作系统中也一样,不同的用户身份拥有着不 ...
- Linux入门基础教程之Linux下软件安装
Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...
- RabbitMQ入门教程(十二):消息确认Ack
原文:RabbitMQ入门教程(十二):消息确认Ack 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csd ...
- 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]
无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...
- Bootstrap入门(十二)组件6:导航标签页
Bootstrap入门(十二)组件6:导航标签页 1.标签页 2.胶囊式标签页 3.垂直展示 4.两端对齐的标签页 5.禁用的链接 6.添加下拉菜单 先引入本地的CSS文件和JS文件(注:1. ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- UWP入门(十二)--数据绑定用法
原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo ...
随机推荐
- 自学工业控制网络之路1.6-典型的现场总线介绍Interbus
返回 自学工业控制网络之路 自学工业控制网络之路1.6-典型的现场总线介绍Interbus 1987年正式公布,其主要技术开发者为德国的PhoenixContact公司.1996年,INTERBUS成 ...
- 监控(2)-php-fpm进程监控 shell
#!/bin/bash #监控的网页地址url="http://dev2.jwsmed.com" #fastcgi启动/重启/停止脚本路径PROG=/data/fistsoft/p ...
- [POI2010]KLO-Blocks——一道值得思考的题
题目大意: 给出N个正整数a[1..N],再给出一个正整数k,现在可以进行如下操作:每次选择一个大于k的正整数a[i],将a[i]减去1,选择a[i-1]或a[i+1]中的一个加上1.经过一定次数的操 ...
- java:给图片上加水印
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...
- 右值引用&&
以下内容参考https://blog.csdn.net/china_jeffery/article/details/78520237 右值引用若不作为函数参数使用,基本等于滥用 右值引用 (Rvalu ...
- 2018acm-icpc江苏邀请赛后记
这场比赛可真难. 不得不说矿大的环境大大出乎了我的意料,无论是校园面积还是基础设施都很好,唯一美中不足的大概是吃了一顿晚饭每个菜都有辣,幸好饭票发的很多,一个人四张饭票,一张饭票可以换3根香蕉,于是我 ...
- Linux Shell 笔记
1.查看进程的环境变量 普通:$cat /proc/1642/environ 换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SE ...
- 流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点
FFmpeg 3.3“Hilbert”,一个新的主要版本的一些亮点: 苹果Pixlet解码器 NewTek SpeedHQ解码器 QDMC音频解码器 PSD(Photoshop Document)解码 ...
- 转--python 黑魔法2
Python 高效编程小技巧 个人博客:临风|刀背藏身 Python 一直被我拿来写算法题,小程序,因为他使用起来太方便了,各种niubi闪闪的技能点也在写算法的过程中逐渐被挖掘到,感谢万能的谷哥度娘 ...
- 03-Windows Server 2016 IIS的安装与配置
1. 打开服务器管理器,点击[添加角色和功能选项]. 2. 进入“添加角色和功能向导”页面,点击下一步. 3. 安装类型选择[基于角色或基于功能的安装],点击下一步. 4. 进入服务器选 ...