Linux 入门记录:12、Linux 权限机制

1、权限

权限是操做系统用来限制资源访问的机制,权限通常分为读、写、执行。linux

系统中每一个文件都拥有特定的权限、所属用户及所属组,经过这样的机制来限制哪些用户、哪些组能够对特定的文件进行什么样的操做。安全

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

 

2、文件权限

Linux 中,每一个文件拥有如下三种权限:测试

权限 对文件的影响 对目录的影响
r(读取) 可读取文件内容 可列出目录内容
w(写入) 能够修改文件内容 可在目录建立、删除文件
x(执行) 能够做为命令执行 可访问目录内容

因此,目录必须拥有 "x" 权限才可查看其内容。不少时候,执行权限 "x" 对于目录而言也叫浏览权限。仅有 "r" 权限是没法查看目录内容的(由于连访问都作不到)。spa

 

3、UGO模型

Linux 权限基于 UGO 模型进行控制:操作系统

  • U 表明 User,是文件或文件夹所属用户的权限;G 表明 Group,是文件或文件夹所属组的权限;O 表明 Other,是其余用户对文件或文件夹的权限
  • 每个文件的权限基于 UGO 模型进行设置
  • 权限三个一组(rwx),对应 UGO 分别设置(总共有 3 个组 9 个权限)
  • 每个文件拥有一个所属用户和所属组,对应 U、G模型;不属于该文件所属用户和所属组的使用 O(Other)模型对应的权限

命令 ls -l 能够查看当前目录下全部文件的详细信息:.net

上图中,每一行的格式以下:3d

 drwxr-xr-x.  2  mingc  mingc  4096   Sep 23 14:54   Desktop

 UGO模型的权限code

 第1位是文件类型描述符,"d"表示目录,"-"表示文件blog

 第2-4位"rwx"是U模型权限,可读可写可执行

 第5-7位"r-x"是G模型权限,可读可执行,不可写

 第8-10位"r-x"是O模型权限

 连接数量   所属用户U   所属组G   大小  日期时间  文件或目录名 

 

4、修改文件所属用户和组

命令 chown 用以改变文件的所属用户:

chown username filename

经常使用参数:

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

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

chgrp groupname filename

经常使用参数:

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

  

5、修改文件权限

命令 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

 

6、实例

案例描述

如今有个某公司 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文件权权限

相关文章
相关标签/搜索