Linux系统中的权限管理

Linux系统中的权限管理

    • 一.权限查看及读取
      • 1. 权限查看
      • 2. 权限的读取
    • 二. 普通权限的类型及作用
      • 1. 用户对文件的身份
      • 2. 权限位
      • 3. 用户身份匹配
      • 4. 权限类型
    • 三. 设定普通权限的方法
      • 1. chmod 复制权限
      • 2. chmod 字符方式设定权限
      • 3. chmod 数字方式设定权限
    • 四. 系统默认权限设定
      • 1. 如何保留权力
      • 2. umask更改权力
    • 五. 文件用户用户组管理
    • 六. 特殊权限
      • 1. stickyid 粘制位
      • 2. sgid 强制位
      • 3. suid 冒险位
    • 七. acl权限列表
    • 八. attr权限

一.权限查看及读取

1. 权限查看

对文件权限的查看可以用命令 ls -l file ,也可以用 ll file 查看文件的权限。ll 是 ls -l 的叠名。 (可以用alias 查看命令的叠名)
对目录权限的查看可以用命令 ls -ld dir ,也可以用 ll -d 查看目录的权限。

对于命令叠名的查看可以用alias 命令查看。

Linux系统中的权限管理_第1张图片

2. 权限的读取

文件的属性被叫做文件的元数据(meta data),一种元数据用1个字节来记录。

1)文件权限信息
- | rw-r–r-- | . | 1 | root | root | 0 | Jan 29 09:38 | westos1
[1] [2] [3] [4] [5] [6] [7] [8] [9]

2)目录权限信息
d | rwxr-xr-x | . | 2 | root | root | 51 | Jan 29 09:38 | westosdir
[1] [2] [3] [4] [5] [6] [7] [8] [9]

对于每一位的解释

数字 含义
1 文件类型
2 用户权限
3 系统的selinux开启
4 对于文件:文件内容被系统记录的次数; 对于目录:目录中子目录的个数
5 文件拥有者
6 文件拥有组
7 对于文件:文件内容大小; 对于目录:目录中子文件或子目录的元数据大小
8 文件内容被修改的时间
9 文件名称

对于 [ 1 ] 文件类型,包括以下内容:

1 文件类型
- 普通文件
d 目录
l 软链接
b 块设备
c 字符设备
s socket套接字
p 管道

对于 [ 2 ] 用户权限

2 用户权限
rw - r - - r - -
u 用户 g 所有组 o 其他人

二. 普通权限的类型及作用

1. 用户对文件的身份

u: # user 文件的拥有者 ,ls -l 看到的第五列信息

g: # group 文件的拥有组, ls -l 看到的第六列信息

o: # other 既不是文件的拥有者也不是拥有组成员的其他用户的通称

在超级用户下执行 chown 命令可以改变文件的所有人。
Linux系统中的权限管理_第2张图片

在已经建立了如上所时示的文件和目录时,如果想要修改文件的拥有者。可以输入 chown zxk file1 即可将 file1 文件的拥有者改为 zxk 这个用户。

Linux系统中的权限管理_第3张图片
如果想要修改目录和目录中文件的所有者,输入命令 chown -R kk westosdir 即可将目录和目录中文件的所有者都可修改为 kk 这个用户。

Linux系统中的权限管理_第4张图片
如果需要同时修改文件的所有者和所有组,可以输入命令 chown kk:ll file1 即可将文件 file1 的所有者更改为kk, 所有组更改为 ll。

Linux系统中的权限管理_第5张图片

如果只是想要修改文件的所有组,可以用命令 chgrp 来改变文件的所有组。

如输入chgrp www file1 ,即可将文件 file1 的文件所有组修改为 www。

Linux系统中的权限管理_第6张图片

如输入chgrp -R www westosdir ,即可将目录 westosdir 和目录中的文件的所有组修改为 www 。

Linux系统中的权限管理_第7张图片

2. 权限位

2 用户权限
rw - r - - r - -
u 用户 g 所有组 o 其他人

3. 用户身份匹配

user>group>other
表示文件所有者的身份大于文件所有组的身份大于其他人的身份。

4. 权限类型

字符 含义
- 权限未开启
r 可读
对于文件:可以读取文件内容
对于目录:可以用ls 列出目录中的文件
w 可写
对于文件:可以更改文件内容
对于目录:可以在目录中新建或者删除文件
x 可执行
对于文件:可以用文件名称调用文件内记录的程序
对于目录:可以进入目录

三. 设定普通权限的方法

对于普通权限的设置可以用 chmod 命令来设定,有三种设定的方法。

1. chmod 复制权限

chmod --reference = /tmp /mnt/westosdir
其中 = 后表示要复制的模板的权限,此命令的意思为将 /tmp 中的权限 复制到 /mnt/westosdir 这个文件上。
chmod -R --reference = /tmp /mnt/westosdir 此命令的意思为将 /tmp 中的权限 复制到 /mnt/westosdir 目录及 目录中的子文件上。

2. chmod 字符方式设定权限

chmod < a | u | g | o > < + | - | = > < r | w | x > file
用字副方式设定文件权限,表示对 file 文件在 u,g.o 中的一位或者几位加上或者减去什么权限。a 表示 ugo 所有。

如可以用到chmod u-rw file1 表示 file1 文件 u 位减去 rw 权限;
用 chmod ugo+wx file1 表示 file 1 文件 ugo 位都加上wx 权限;
用 chmod a-w file1 表示 file1 文件所有位都减去 w 权限;
用 chmod ugo=— file1 表示取掉 file1 文件的所有权限;
用 chmod u+rwx,g+r,o+wx file1 表示分别对 ugo 位设定相应的权限。

Linux系统中的权限管理_第8张图片

用 chmod -R u+w,g+wx,o-r westosdir 表示对目录及目录中的文件同时设定相应的权限。

Linux系统中的权限管理_第9张图片

3. chmod 数字方式设定权限

权限波尔指表示方式

rwx=111=7
rw-=110=6
r-x=101=5
r–=100=4=r
-wx=011=3
-w-=010=2=w
–x=001=1=x
—=000=0

如可以用 chmod 000 file1 表示取消 file1 文件的所有权限。
用 chmod -R 654 westosdir 表示将目录及目录的子文件的权限设置为654。

Linux系统中的权限管理_第10张图片

四. 系统默认权限设定

系统本身存在的意义就是为了共享资源,但是从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高。那么既要保证系统安全,又要系统创造价值,于是就把应该开放的权力默认开放,把不安全的权力默认保留。

1. 如何保留权力

输入命令 umask可以查看系统保留的权力。
也可以用命令 umask 权限值来临时设定系统预留的权力。

在系统中文件默认权限 = 777 - umask - 111
目录默认权限 = 777 - umask

Linux系统中的权限管理_第11张图片如系统预留权限为 022 ,则目录的权限为 777- 022=755,也就是rwxr-xr-x,则文件的权限为 777-022-111=644,也就会 rw-r–r--.

umask值越大系统安全性越高

2. umask更改权力

  1. umask 临时更改

如 umask 077 表示设定系统的保留权限为077,在设置之后当前新建的文件和目录的值就是所设定;当退出当前的程序之后,再次建立就会恢复之前的默认值。

Linux系统中的权限管理_第12张图片

  1. 永久更改权力
    如果需要永久的更改系统的保留权力就需要对 /etc/bashrc shell 系统配置文件和 /etc/profile 系统环境配置文件进行更改。

如图所示中的077 即为新设定的保留权力。

Linux系统中的权限管理_第13张图片

在这里插入图片描述

注: 以上设定完成后是不会立即生效的,需要输入命令 source /etc/bashrc ,source 命令的作用是使我们更改的内容立即被系统识别。
依次对设置的文件进行 source 命令即可。
source 命令后面只能跟一个文件,不能加多个。

五. 文件用户用户组管理

命令 含义i
chown username file 更改文件拥有者
chgrp groupname file 更改文件拥有组
chown username : groupname file 同时更改文件的拥有者和拥有组
chown ( chgrp) -R user ( group ) dir 更改目录本身及目录中内容的拥有者或者拥有组

在超级用户下执行 chown 命令可以改变文件的所有人。

Linux系统中的权限管理_第14张图片

在已经建立了如上所时示的文件和目录时,如果想要修改文件的拥有者。可以输入 chown zxk file1 即可将 file1 文件的拥有者改为 zxk 这个用户。

Linux系统中的权限管理_第15张图片
如果想要修改目录和目录中文件的所有者,输入命令 chown -R kk westosdir 即可将目录和目录中文件的所有者都可修改为 kk 这个用户。

Linux系统中的权限管理_第16张图片
如果需要同时修改文件的所有者和所有组,可以输入命令 chown kk:ll file1 即可将文件 file1 的所有者更改为kk, 所有组更改为 ll。

Linux系统中的权限管理_第17张图片

如果只是想要修改文件的所有组,可以用命令 chgrp 来改变文件的所有组。

如输入chgrp www file1 ,即可将文件 file1 的文件所有组修改为 www。

Linux系统中的权限管理_第18张图片

如输入chgrp -R www westosdir ,即可将目录 westosdir 和目录中的文件的所有组修改为 www 。

Linux系统中的权限管理_第19张图片

六. 特殊权限

1. stickyid 粘制位

针对目录: 如果一个目录 stickyid 开启之后,那么这个目录中的文件 只能被文件所有人删除。

对于粘滞位的设置也是通过 chmod 命令来设置的。

1) chmod 1 原始权限 dir ### 设置之后最后一位变为t
2) chmod o+t dir

Linux系统中的权限管理_第20张图片
在系统中存在一个/pub 的目录,该目录的权限对每个人都开放,不同的用户在这个目录中可以建立属于自己的文件,也可以删除和更改别人的文件。这种情况在现实中是属于不合理的。这个过程如图所示:

Linux系统中的权限管理_第21张图片

那么解决此类问题就需要用到上面提到的命令 : chmod 1777 /pub 或者 chmod o+t /pub ,给 /pub 这个目录开启 stickyid 。结果就是不能在这个目录中 不能删除别人的文件。操作如下所示:

Linux系统中的权限管理_第22张图片
Linux系统中的权限管理_第23张图片

2. sgid 强制位

针对目录: 目录中新建的文件自动归属到目录的所属组中

对于强制位的设定也通过 chmod 命令来实现。

1)chmod 2 源文件权限 dir ###设定后只会对后面新建的文件有所影响,并不会影响之前的文件。
2)chmod g+s dir

Linux系统中的权限管理_第24张图片
在个/mnt /zxk 设置了强制位的权限后,在目录中新建文件的时候,目录中新建的文件自动归属到目录的所属组中。

针对文件时

只针对二进制的可执行文件(c程序),当运行二进制可执行文件时都是用文件拥有组身份运行,和执行用户无关。

3. suid 冒险位

只针对二进制的可执行文件(c程序),当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关。

1)chmod 4原属性 file
2) chmod u+s file

七. acl权限列表

Aiccess Control Lists #访问控制列表

功能: 在列表中可以设定特殊用户对于特殊文件的特殊权限

1)acl列表开启标识
-rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile
看其在权限位后面是否有 + 出现,如果出现代表 acl 列表开启;如果没有 + 代表 acl 列表功能未开启。

acl列表权限读取 ,当权限位出现 + 时就不能 ls -ld 查看权限了,也不能再用 chmod 去改权限,这时只能用 setfacl 来改,getfacl file 来查看 file 文件的权限。

Linux系统中的权限管理_第25张图片

2)显示内容分析

字符 含义
file: westosfile 文件名称
owner: root 文件拥有者
group: root 文件拥有组
user::rw- 文件拥有者权限
user:lee:rw- 特殊指定用户权限
group::r– 文件拥有组权限
group:westos:— 特殊指定的用户组的权限
mask::rw- 能够赋予特殊用户和特殊用户组的最大权限阀值
other::r– 其他人的权限

注意:
当文件权限列表开启,不要用 ls -l 的方式来读取文件的权限。

3)acl 列表的控制

命令 含义
setfacl -m u:lee:rw westosfile 给lee 用户对于westosfile设定 rw权限
setfacl -m g:westos:rw westosfile 给westos 组对于westosfile设定 rw权限
setfacl -m u::rwx westosfile 给当前用户对于westosfile设定 rwx 权限
setfacl -m g::0 westosfile 当前组对于westosfile 取消权限
setfacl -x u:lee westosfile 删除列表中的lee 用户对于westosfile的权限
setfacl -x g:caiwu westosfile 删除列表中的caiwu 组对于westosfile的权限
setfacl -b westosfile 关闭对于westosfile的列表功能

4)acl 权限优先级

拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他

5)acl mask 控制
mask是能够赋予指定用户权限的最大阀值

----rwx—+ 1 root caiwu 0 Apr 18 09:03 westosfile
当+出现时,此处为mask 的权限值,而不在代表组的权限值

Linux系统中的权限管理_第26张图片

当设定完毕文件的 acl 列表之后用chmod缩小了文件拥有组的权力
mask会发生变化,如果需要恢复的话需要用 setfacl -m m::权限 文件 ,来增加权限。

Linux系统中的权限管理_第27张图片

6)acl 列表的默认权限
setfacl -m u:lee:rwx /mnt/westosdir ##只对于/mnt/westosdir目录本身生效
setfacl -Rm u:lee:rwx /mnt/westosdir ##对于/mnt/westosdir目录和目录中已经存在的内容生效

Linux系统中的权限管理_第28张图片

以上的命令之针对已经存在的文件生效,新建文件是不会被设定的。如果需要被设定就要做以下操作。

setfacl -m d:u:lee:rwx /mnt/westosdir/ ##针对与/mnt/westosdir目录中新建文件生效
d: 表示只对新建立的起作用

Linux系统中的权限管理_第29张图片

八. attr权限

当一个文件的权限全部关闭时,在超级用户的身份下还是可以新建以及删除文件和目录。

如下图所示 zxk 这个目录和目录中的文件的权限全部没有,但是超级用户还是可以删除该目录。

Linux系统中的权限管理_第30张图片

如何才能限制所有用户的权力,就需要用到 attr 命令。

attr 权限会限制所有用户

字符 含义
i 不能作任何的更改
a 能添加不能删除
lsattr file 查看文件attr权限
lsatter -d dir 查看目录的权力
chattr +i /+a /-i/ -a dir /file 设定attr权限

Linux系统中的权限管理_第31张图片

如图在 zxk 这个目录增加和减去 attr 的 i 权限后的一些操作,在增加了 i 权限后,不能删除也不能增加。

Linux系统中的权限管理_第32张图片如图在对 zxk 这个目录设置了 attr 的 a 权限后,只能在目录中新建文件但是不可以删除文件。

你可能感兴趣的:(RH124,Linux,权限管理,运维,linux,运维)