关于菜鸡学习RHEL8的一些小笔记--->高级权限
  R6ZO6z1TYi7r 2023年11月02日 54 0

文件权限基础:

首先在linux中文件普通权限分为3种:

(1)r 权限,表示可以读该文件的内容==》二进制对应的是100,十进制对应的是4

(2)w 权限,表示可以修改文件内的内容==》二进制对应的是010,十进制对应的是2

(3)x 权限,表示可以执行文件==》二进制对应的是001,十进制对应的是1;

并且在linux中,文件的最大默认权限是666(默认去掉x权限)目录最大权限是777,那么如下图所示:

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash

为什么创建的文件默认权限为 rw-r--r--(644),而目录默认权限为 rwxr-xr-x(755)呢?

***因为在linux中有默认权限掩码进行管理,也就是umask,在/etc/bashrc 文件中可以看出umask默认的设置;

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_02

#从系统脚本中不难看出,当UID大于199,并且用户的名字和组的名字相等,那么这个普通用户它的 umask权限掩码就为002,否则为022,也可通过umask命令直接查看当前用户的umask

关于菜鸡学习RHEL8的一些小笔记--->高级权限_linux_03

#所以一个用户的默认权限=最大权限 - umask ==》root所创建的文件=666 - 022 = 644

设置文件的默认权限:

在用户目录下修改 .bashrc 文件即可

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_04

结果:

关于菜鸡学习RHEL8的一些小笔记--->高级权限_linux_05

#注意:当最大权限减去你设置的umask值得到 x 执行权限时,会自动 +1,因为设置文件和目录的umask的值相同,所以当两者默认权限不一致时,需已目录默认权限为准

特殊权限:

suid:

#如果一个文件拥有SUID权限,则执行该文件时以文件拥有人的身份进行执行;

#SUID只能作用在二进制的文件上,不能使用在shell脚本上(脚本中所使用的命令实际未赋权,所以无意义);

#SUID对目录没有意义(目录无法执行)

设置 SUID:

chmod u+s filename

关于菜鸡学习RHEL8的一些小笔记--->高级权限_redhat_06

关于菜鸡学习RHEL8的一些小笔记--->高级权限_linux_07

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_08

注:判断文件是否有SUID权限,可以通过ls -l 查看拥有人栏位的“x”栏位,如果 x 变成 s 说明同时有 x 和 s 权限,如果是 S 则相应栏位没有 x 执行权限仅有 suid 权限

sgid:

如果一个文件有 sgid 权限,则执行该文件以文件拥有组的身份执行

如果一个目录有 sgid 权限,则该目录下的文件自动继承该目录的拥有组

sgid 只能作用在二进制的程序和目录上,不能使用在脚本上

设置 SGID:

chmod g+s filename

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_09

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_10

#注:判断目录或文件是否有sgid权限

ls -l 如果拥有组栏位的s为小写,则说明有x和s权限,如果是大写仅有s权限

sbit:

拥有sbit权限的目录为公共目录,在该目录下任何人都可以创建文件,但是每个用户只能管理自己的文件

设置 SBIT:

chmod o+t filename

关于菜鸡学习RHEL8的一些小笔记--->高级权限_redhat_11

#注:判断目录或文件是否有sbit权限

ls -l 如果拥有组栏位的t为小写,则说明有x和t权限,如果T为大写,则仅仅只有t权限

umask:

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_12

#所以umask展示的权限掩码第一位就为特殊权限,所以设置权限可以按照以下方式来设置(需注意,并非每个文件都需要特殊权限,所以我们设置时默认安装 chmod 777 这类权限来设置)

chmod 7777 hello.txt

#注:(在 .bashrc 文件中设置 umask 为特殊权限是不生效的)

suid 数字表示==》4

sgid 数字表示==》2

sbit 数字表示==》1

ACL:

#ACL的出现主要是为了弥补权限的不足,通过 ACL,可以在不改变文件本身权限的场景下给你指定的用户或者指定的组来精确分配权限

查看文件的acl:

getfacl 1.txt

关于菜鸡学习RHEL8的一些小笔记--->高级权限_redhat_13

注意:如果一个文件或者目录设置完acl后,用getfacl所查看的详情中mask掩码将替代掉文件或目录拥有组的权限,并且权限掩码将决定acl的有效权限

设置文件的acl:

setfacl -m u:user1:rwx 1.txt

关于菜鸡学习RHEL8的一些小笔记--->高级权限_redhat_14

描述

功能

给指定用户设置acl权限

u:mary:rx file

给文件拥有人设置acl权限

u::rwx file

给指定组设置acl权限

g:it:rwx file

给文件拥有组设置acl权限

g::rwx file

给文件其他人设置acl权限

o::rx file

设置掩码值

m:rw file

注:设置acl权限时,使用-n选项将不改变文件的掩码

setfacl -m u:user1:r-- -n 1.txt

关于菜鸡学习RHEL8的一些小笔记--->高级权限_redhat_15

注:setfacl -m d:u:user1:rwx test/ 给目录设置一个默认的acl权限,让目录下的文件和子目录自动继承该目录的acl,但是文件不会继承x权限

描述

功能

删除指定用户的acl权限

u:mary file

删除指定组的acl权限

g:it file

setfacl -R #递归修改acl权限
setfacl -b #清空所有的acl权限

关于菜鸡学习RHEL8的一些小笔记--->高级权限_bash_16

#删除默认的acl
setfacl -x d:u:user1:rwx test/ #删除该目录的指定用户acl

#清空默认的acl
setfacl -k test/ #删除该目录的所有默认

注:文件匹配的优先级

文件的UID 》文件acl的UID(mask允许)》文件的GID==》文件acl的GID(mask允许)==》文件的其他人

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   31   0   0 linux网卡
  wwLZeziuqjLR   2023年12月08日   100   0   0 Dockercentosbash
  nIt0XG0acU8j   2023年12月11日   32   0   0 linuxhtop
  nIt0XG0acU8j   2023年12月09日   36   0   0 linuxsort
R6ZO6z1TYi7r