一、权限

权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。

系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。

每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限越大,该进程所拥有的权限也就越大。

二、文件权限

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 用以改变文件的所属用户:

chown username filename

常用参数:

-R   归地修改目录下所有文件的所属用户

命令 chgrp 用以改变文件的所属组:

chgrp groupname filename

常用参数:

-R   递归地修改目录下所有文件的所属组

  

五、修改文件权限

命令 chmod 用以修改文件的权限:

chmod mode filename

mode 参数格式如下:

u、g、o     分别代表用户、组、其他
a 代表ugo
+、- 代表加入或删除对应权限
r、w、x 代表三种权限
-R 递归地修改

示例:

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 权限值分别由数字表示如下:

r = 4 (2 ^ 2)
w = 2 (2 ^ 1)
x = 1 (2 ^ 0)

使用数字表示权限时,每组权限分别为对应数字之和:

rw  = 4 + 2 = 6
rwx = 4 + 2 + 1 = 7
r-x = 4 + 1 = 5

所以,使用数字表示 UGO 权限时,可以用如下方式表示:

chmod 0660 test.md  设置 UGO 权限为 rw-rw----
chmod 0775 test.md 设置 UGO 权限为 rwxrwxr-x

六、实例

案例描述

现在有个某公司 Company,部门和员工如下:

部门 员工
培训部(Training)

李雷(LiLei)

王雪(WangXue)

市场部(Market)

韩梅梅(HanMeimei)

林立(LinLi)

管理部(Manage)

路人甲(User1)

路人乙(User2)

不行了,名字想不出来了~~

现在,要为每个部门和员工建立相应的工作文件夹,要求如下:

  1. 所有目录、文件均保存在一个统一的文件夹下
  2. 每个部门拥有一个独立的文件夹
  3. 不同部门之间不能访问对方文件夹
  4. 每个员工在所在部门文件夹下拥有一个所属的文件夹
  5. 相同部门不同员工之间可以查看对方的文件夹,但不可修改,员工只能修改自己的文件夹

解决方案

好的,下面开始:

用组来表示部门,用用户来表示员工,我以 root 用户登录添加组和用户,并为用户指定附属组(部门):

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

OK,这样就满足了前 3 个要求:有统一文件夹和多个不同的部门目录,并且不同部门之间全没有 O 模型权限,不能访问对方。

下面继续创建员工目录,并为每个目录指定它的所属员工和所属部门:

好的,第 4 和第 5 个要求也满足了:每个员工有自己的文件夹,并且不同员工之间只能查看不能修改。

最后测试一下,登录 LiLei 账号:

不同部门之间不能查看,同一部门之间可以查看不能修改,完成。

相关链接:

Linux安全体系的文件权限

linux文件权权限

Linux 入门记录:十二、Linux 权限机制的更多相关文章

  1. Linux 入门记录:二十、Linux 包管理工具 YUM

    一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...

  2. Linux 入门记录:二、Linux 文件系统基本结构

    一.树状目录结构 Linux 文件系统是一个倒置的单根树状结构.文件系统的根为"/":文件名严格区分大小写:路径使用"/"分割(Windows 中使用" ...

  3. Linux学习之十二-Linux文件属性

    Linux文件属性 在Linux中,对于每个文件都有相应属性,以Linux中root用户家目录下新建文件a.txt为例,在a.txt中输入几个字符 使用命令ls -ild a.txt查看文件的权限等 ...

  4. Linux入门(用户操作及权限)

    Linux入门之 用户操作及权限   在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分.每个级别在公司的职责不同,权限也不同.在Linux操作系统中也一样,不同的用户身份拥有着不 ...

  5. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  6. RabbitMQ入门教程(十二):消息确认Ack

    原文:RabbitMQ入门教程(十二):消息确认Ack 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csd ...

  7. 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]

    无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...

  8. Bootstrap入门(十二)组件6:导航标签页

    Bootstrap入门(十二)组件6:导航标签页   1.标签页 2.胶囊式标签页 3.垂直展示 4.两端对齐的标签页 5.禁用的链接 6.添加下拉菜单   先引入本地的CSS文件和JS文件(注:1. ...

  9. MyBatis基础入门《十二》删除数据 - @Param参数

    MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...

  10. UWP入门(十二)--数据绑定用法

    原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo ...

随机推荐

  1. 使用托管快照创建作为 Azure 托管磁盘存储的 VHD 的副本

    创建快照 创建 OS 或数据磁盘 VHD 的快照,以便将其用作备份或用于排查 VM 问题. 快照是 VHD 的完整只读副本. 使用 Azure 门户创建快照 登录到 Azure 门户. 首先在左上角单 ...

  2. Javascript基础笔记(部分)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. mysql client之init-command

    If the server is a replication master and you want to avoid replicating the content to replication s ...

  4. Linux 进程管理之四大名捕

    本文来自网络,著作权归原创作者所有,不做任何商业用途. 一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”.内功卓越的 ...

  5. ASA 用TFTP 备份配置方法

    一种方法是用ASDM,在菜单样哪项里有一个backup,保存为一个压缩文件rar,恢复也是用ASDM.另一种是用TFTP SERVER 来做,电脑用网线接上ASA,还要把cisco TFTP SERV ...

  6. ping 命令 指定特定网卡 发送 ICMP 数据包

    Windows : ping -S Linux : ping -I <device> -I interface interface is either an address, or an ...

  7. 浏览器加载和渲染html的顺序-css渲染效率的探究(转载)

    1.浏览器加载和渲染html的顺序1.IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的.2.在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都 ...

  8. [BZOJ 4763]雪辉

    [BZOJ 4763] 雪辉 题意 给定一棵 \(n\) 个点的无根树, 点带权. \(q\) 次询问, 每次给定树上的若干路径, 求这些路径上的点共有多少种不同权值以及这些点的权值组成的集合的 \( ...

  9. java调用Linux执行Python爬虫,并将数据存储到elasticsearch--(环境脚本搭建)

    java调用Linux执行Python爬虫,并将数据存储到elasticsearch中 一.以下博客代码使用的开发工具及环境如下: 1.idea: 2.jdk:1.8 3.elasticsearch: ...

  10. 设置webstorm支持ES6语法

    1.  点击File目录下的Default Settings 2.  再依次点击Languages & Frameworks  ----->  JaveScript  ----> ...