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 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
50 2
|
26天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
39 1
linux特殊权限!!
|
26天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
59 3
|
3月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
232 73
|
2月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
70 11
|
2月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
58 1
|
2月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
31 0
Linux入门1——初识Linux指令
|
2月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
2月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS

热门文章

最新文章