Linux入门基础——特殊权限

简介: Linux入门基础——特殊权限

权限管理

ACL权限

ACL权限主要用来解决用户对文件的身份不足的问题

在centos7中,默认使用的是xfs文件系统,并且ACL权限是默认开启的。如果想要通过命令查看,ext文件系统的dumpe2fs并不适用,查看xfs文件系统的xfs_info命令也无法查看ACL信息,如果一定要查看ACL状态:

[root@localhost ~]# dmesg | grep ACL
[    0.627775] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    1.781830] SGI XFS with ACLs, security attributes, no debug enabled

如果你的系统没有默认开启ACL权限,那么你可以mount -o remount,acl/手工挂载,也可以修改*/etc/fatab/*文件设置自动挂载

ACL权限设置

[root@localhost ~]#getfacl 文件名
#查看文件的ACL权限
[root@localhost ~]# setfacl [选项] 文件名
  -m:设定ACL权限,u:用户名:权限、g:组名:权限
  -x:删除指定的ACL权限
  -b:删除所有的ACL权限
  -d:设置目录的默认ACL权限,意思是这个命令之后所有新建的文件都具有此ACL权限
  -k:删除默认ACL权限
  -R:递归设定ACL权限,给目录下所有的文件设定ACL权限,包括命令之前的文件

ACL权限在设置默认和递归后极其容易造成权限溢出

最大有效权限mask

在使用getfacl命令查看文件的ACL权限时,有一项mask最大有效权限,所赋予的ACL权限必须在mask之内,最终生效的权限就是你所设定的ACL权限和mask相*“与”*,所以一般mask权限都设置为“rwx

mask也是可以修改的:

[root@localhost ~]# setfacl -m m:rx project/
#设定mask权限为r-x
[root@localhost ~]# getfacl project/
# file: project/
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x

文件特殊权限-SUID权限

Set UID,简称为SUID的特殊权限。那么区别与rwx这个SUID的特殊权限的作用究竟是什么,它特殊在哪里?

  • SUID仅对二进制程序有效
  • 执行者对于该程序需要有x的可执行权限
  • 本权限仅仅在执行该程序的过程中有效
  • 执行者将对该程序拥有属主的权限

举个例子

[root@localhost ~]# ll /etc/shadow
---------- 1 root root 1139 Sep 20 19:36 /etc/shadow

对于*/etc/shadow*文件,我们可以发现这个文件的权限区别于其他,也就是说这个文件之有超级用户root才有权限进行操作,而普通用户ajin想要修改密码时:

[ajin@localhost ~]$ ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27856 Apr  1  2020 /usr/bin/passwd

普通用户对于*/usr/bin/passwd文件拥有执行权限,说明它可以修改自己的密码。同时我们发现/usr/bin/passwd的有SUID特殊权限,既然普通用户可以修改自己的密码,那么它又是如何修改/etc/shadow*里的内容呢?

事实上,普通用户在执行passwd命令时,ajin会暂时获得root的权限就相当于是root在修改影子文件,这就是SUID文件的特殊之处。

文件特殊权限-SGID权限

Set GID,简称为SGID的特殊权限。

  • 只有可执行二进制程序才能设置SGID权限
  • 命令执行者要对该程序拥有执行(x)权限
  • 命令执行者在执行程序的时候,组身份升级为该可执行程序文件的属组
  • SGID权限只在该程序执行过程中有效,也就是组身份只在程序执行过程中发生改变,命令结束用户组身份恢复.

举个例子:

[root@localhost ~]# ll /usr/bin/locate 
2 -rwx--s--x. 1 root slocate 35548 Sep 24  2012 /usr/bin/locate   
#拥有SGID权限,普通用户执行该命令时,组身份会切换到slocte

使用locate命令查找文件时,实际是在/var/lib/mlocate/mlocate.db数据库中查找

普通用户使用locate命令可以查找文件是因为执行locate命令时组身份切换到该目录所属组slocate

SGID针对目录的作用

  • 普通用户必须对该目录拥有r-x权限,才能进入此目录
  • 普通用户在该目录中的有效组会变成该目录的属组
  • 若普通用户对此目录拥有w(可创建文件)权限时,新创建的文件的默认属组是这个目录的属组

文件特殊权限-SBIT权限

Sticky BIT,简称SBIT权限,可意为粘着位、粘滞位、防删除位等。

SBIT仅对目录有效,目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。

举个例子,Linux 系统中,存储临时文件的 /tmp 目录就设定有 SBIT 权限:

[root@localhost ~]# ll -d /tmp
drwxrwxrwt. 4 root root 4096 Apr 19 06:17 /tmp

如果一个目录设定有SBIT权限,那么属组或其他的用户只能操作自己创建的文件或目录,而无法修改甚至删除其他用户创建的文件或目录。

文件系统属性-chattr权限

[root@localhost ~]#chattr [+ - =] [选项] 文件或目录名
  -i : 如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。(相当于把文件给锁住了,对root也有作用)
  -a : 如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件。

查看文件系统属性

[root@localhost ~]# lsattr 选项 文件名
  -a:显示所有文件和目录
  -d:若目标是目录,仅列出目录本身的属性,而不是子文件的。

系统命令-sudo权限

在一些情况下,普通用户需要执行一些超级用户才能执行的命令,而sudo权限就是把root用户的权限赋予给普通用户执行,通过sudo来调用。

我们想要给普通用户赋予权限,首先要通过visudo来设置sudo,实际上修改的就是/etc/sudoers这个文件

[root@localhost ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
ajin    ALL=(ALL)       ALL
#赋予的权限越详细,普通用户所获得的权限就越小,所受到的限制就越多。

普通用户在使用sudo权限是要在命令前面加上sudo

相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
打赏
0
0
0
0
4
分享
相关文章
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
154 3
【Linux】深入理解linux权限
本文深入解析Linux权限管理机制,涵盖权限概念、用户角色、文件属性及操作方法。文章分为前言、权限介绍、用户与角色、文件属性、权限修改及常见问题六大板块。详细说明了权限类型(r/w/x)、角色优先级、chmod/chown指令用法,以及目录权限、umask掩码、粘滞位等重点内容。掌握这些知识,可有效提升Linux系统安全性和灵活性,是管理员必备技能。喜欢的话别忘了点赞支持哦! ❤❤❤
149 6
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
174 6
|
5月前
|
Linux新手入门手册
在Linux或类Unix系统中,掌握一系列基础命令和快捷键是提升工作效率的关键。这些工具和技巧不仅能帮助用户更高效地管理系统,还能在日常使用中带来极大的便利。以下是对这些基础操作与快捷键的详细解析大全。
99 9
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
493 3
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
167 1
linux特殊权限!!
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问