首页 > 系统相关 >Linux系统特殊权限详解

Linux系统特殊权限详解

时间:2023-07-24 18:33:19浏览次数:38  
标签:用户 centos7 详解 Linux 权限 root hello ydq

一、Linux系统特殊权限概述
在Linux系统中,普通权限我们了解到有r(读)、w(写)、x(执行),这三种权限,但是在我们查看一些其它的文件时,会发现还会有其它权限的字母。例如:s,t 等

比如下面查看的这三个文件的权限,在不同用户权限上面有不同的字母。

 

二、suid
1、在介绍这个权限之前需要了解一些问题
1、普通用户可不可以修改密码?

答:是可以的,可以修改自己的密码

2、/etc/shadow 文件的作用是什么?

答:存储用户密码的文件

3、/etc/shadow 文件的权限是怎么样的?

答:----------. 1 root root 1627 5月 17 00:10 /etc/shadow

4、普通用户是否可以修改/etc/shadow 文件?

答:不可以,因为这个文件对于普通用户来说,没有任何权限,所以不能读取,也不能写入。

5、那么普通用户,为什么可以修改密码?

答:

①因为使用了passwd 这个命令

②passwd命令在属主权限位上,原本是x权限,变成了s权限

③s权限在属主权限位,又叫做SetUID权限,简称SUID

④作用:因为在使用有SUID权限的文件或命令时,会以该文件的属主身份去执行该命令。

2、SUID 作用详解
概念:只要一个命令文件在属主权限位上的x变成s的话,那么其它用户在执行这个命令文件时,就会以该命令文件的属主用户身份去执行。

如果该属主权限位上有执行权限,则会显示(小写)s。

如果该属主权限位上没有执行权限,则会显示(大写)S。

 1 [root@centos7 ~]# useradd hello #创建一个用户
 2 [root@centos7 ~]# passwd hello #设置它的密码
 3 更改用户 hello 的密码 。
 4 新的 密码:
 5 重新输入新的 密码:
 6 passwd:所有的身份验证令牌已经成功更新。
 7 [root@centos7 ~]# ll /bin/passwd #查看passwd命令权限
 8 -rwsr-xr-x. 1 root root 27832 6月 10 2014 /bin/passwd
 9 
10 [root@centos7 ~]# su hello #切换到hello用户
11 [hello@centos7 root]$ passwd #修改密码
12 更改用户 hello 的密码 。
13 为 hello 更改 STRESS 密码。
14 (当前)UNIX 密码:
15 新的 密码:
16 重新输入新的密码:
17 passwd:所有的身份验证令牌已经成功更新。 #可以成功修改
18 
19 [hello@centos7 root]$ su root #返回root用户
20 密码:
21 [root@centos7 ~]# chmod u-s /bin/passwd #修改passwd的权限,去掉suid权限
22 [root@centos7 ~]# ll /bin/passwd
23 -rwxr-xr-x. 1 root root 27832 6月 10 2014 /bin/passwd #发现s变成了x
24 
25 [root@centos7 ~]# su hello #再切换到hello用户
26 [hello@centos7 root]$ passwd #修改密码
27 更改用户 hello 的密码 。
28 为 hello 更改 STRESS 密码。
29 (当前)UNIX 密码:
30 新的 密码:
31 重新输入新的 密码:
32 passwd: 鉴定令牌操作错误 #密码无法进行修改

此时,再引入一个问题,如果普通用户在使用passwd命令时,是以root用户身份去执行的话,那普通用户是不是可以修改其它用户的密码?

答:是不可以的,因为在passwd命令中,存在一种判断,此判断会在执行passwd命令时去判断执行的用户时是root还是普通用户,如果是普通用户,那么只能使用passwd命令,后面不可加上参数,如果是root用户,后面才可加上其它参数(参数就是用户)。那么普通用户就无法进行修改其它用户的密码。

3、 授权SUID
授权方式:

1 chmod u+s filename
2 
3 chmod 4xxx filename

实例:

 1 [root@centos7 opt]# touch filename #创建一个文件
 2 [root@centos7 opt]# ll #查看详细信息
 3 总用量 0
 4 -rw-r--r--. 1 root root 0 5月 16 23:40 filename #没有属主权限位没有执行权限
 5 [root@centos7 opt]# chmod u+s filename #在属主权限位上加上s
 6 [root@centos7 opt]# ll #查看详细信息
 7 总用量 0
 8 -rwSr--r--. 1 root root 0 5月 16 23:40 filename #因为没有执行权限,所以就显示(大写)S
 9 [root@centos7 opt]# chmod u+x filename #再添加执行权限
10 [root@centos7 opt]# ll #查看
11 总用量 0
12 -rwsr--r--. 1 root root 0 5月 16 23:40 filename #大写S变为小写s,增加了执行权限
13 
14 或者以下方式
15 [root@centos7 opt]# touch filename2 #创建一个文件
16 [root@centos7 opt]# ll #查看信息
17 总用量 0
18 -rwsr--r--. 1 root root 0 5月 16 23:40 filename
19 -rw-r--r--. 1 root root 0 5月 16 23:46 filename2 #正常创建的权限:644
20 [root@centos7 opt]# chmod 4744 filename2 #增加SUID权限,并且增加属主的执行权限
21 [root@centos7 opt]# ll
22 总用量 0
23 -rwsr--r--. 1 root root 0 5月 16 23:40 filename
24 -rwsr--r--. 1 root root 0 5月 16 23:46 filename2 #属主中变成小写s

4、SUID总结
①让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限

②如果设置的二进制文件没有执行权限,那么SUID的权限就显示为S(大写)

③特殊权限suid仅对二进制可执行程序有效,其它文件或目录无效。

注意: suid不安全,如果使用了普通用户可以使用属主用户的权限,那么普通用户在执行对应命令文件时,就可以任意查看或修改文件内容,比如修改了etc/sudoers 文件,那普通用户相当于超级用户的复制品。

二、Sgid
1、Sgid作用详解
概念:一般情况下是设置给目录使用的,主要目的就是为了让别的用户无法删除其它用户所创建的文件或目录。

如果该属组权限位上有执行权限,则会显示(小写)s。

如果该属组权限位上没有执行权限,则会显示(大写)S。

实例:

 1 [root@centos7 opt]# mkdir ydq #创建目录
 2 [root@centos7 opt]# ll
 3 总用量 0
 4 drwxr-xr-x. 2 root root 6 5月 17 00:23 ydq #查看权限
 5 [root@centos7 opt]# chmod 777 ydq #查看权限为777
 6 [root@centos7 opt]# ll
 7 总用量 0
 8 drwxrwxrwx. 2 root root 6 5月 17 00:23 ydq #权限已修改
 9 [root@centos7 opt]# cd ydq #进入到cd目录
10 [root@centos7 ydq]# mkdir aaa #创建aaa文件
11 [root@centos7 ydq]# ll
12 总用量 0
13 drwxr-xr-x. 2 root root 6 5月 17 00:23 aaa #可以看到aaa文件的属主和数组都是root
14 [root@centos7 ydq]# su hello #切换hello用户
15 [hello@centos7 ydq]$ mkdir bbb #创建bbb目录
16 [hello@centos7 ydq]$ ll
17 总用量 0
18 drwxr-xr-x. 2 root root 6 5月 17 00:23 aaa
19 drwxrwxr-x. 2 hello hello 6 5月 17 00:24 bbb #可以看到bbb文件的属主和属组都是hello文件
20 [hello@centos7 ydq]$ exit #返回root用户
21 exit
22 [root@centos7 ydq]# cd ../ #返回上一级
23 [root@centos7 opt]# chmod g+s ydq #将ydq目录增加sgid
24 [root@centos7 opt]# ll
25 总用量 0
26 drwxrwsrwx. 4 root root 28 5月 17 00:24 ydq #属组的权限已增加了s
27 [root@centos7 opt]# cd ydq #进入ydq目录
28 [root@centos7 ydq]# su hello #切换hello用户
29 [hello@centos7 ydq]$ mkdir ccc #创建目录ccc
30 [hello@centos7 ydq]$ ll
31 总用量 0
32 drwxr-xr-x. 2 root root 6 5月 17 00:23 aaa
33 drwxrwxr-x. 2 hello hello 6 5月 17 00:24 bbb
34 drwxrwsr-x. 2 hello root 6 5月 17 00:25 ccc #ccc的属组用户已变为跟ydq目录一致的用户

2、授权Sgid
授权方式:

1 chmod g+s filename
2 
3 chmod 2xxx filename

3、Sgid总结
①针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。

②当某个目录设置了Sgid后,在该目录中新建的文件不在是创建该文件的默认所属组。

③使用Sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

三、sticky bit(沾滞位)
1、sticky bit 详解
如果该其它用户权限位上有执行权限,则会显示(小写)t。

如果该其它用户权限位上没有执行权限,则会显示(大写)T。

概念:只作用在目录上,当一个目录的没有设置sticky bit权限时,并且该目录对所有用户都有读、写、执行权限时,普通用户在该目录下所创建的文件或目录都会被其它用户删除。

 1 [root@centos7 opt]# mkdir yude #创建目录yude
 2 [root@centos7 opt]# ll #查看权限
 3 总用量 0
 4 drwxr-xr-x. 2 root root 6 5月 17 09:26 yude #权限为755
 5 [root@centos7 opt]# chmod 777 yude #修改权限为777
 6 [root@centos7 opt]# ll
 7 总用量 0
 8 drwxrwxrwx. 2 root root 6 5月 17 09:26 yude #权限为777
 9 [root@centos7 opt]# cd yude #进入所创建的目录
10 
11 [root@centos7 yude]# su hello #切换到hello用户
12 [hello@centos7 yude]$ touch aaa 在目录下创建文件aaa
13 [hello@centos7 yude]$ ll
14 总用量 0
15 -rw-rw-r--. 1 hello hello 0 5月 17 09:26 aaa #文件aaa创建成功
16 
17 [hello@centos7 yude]$ exit #返回上一级目录
18 exit
19 [root@centos7 yude]# su ydq #切换到ydq用户
20 [ydq@centos7 yude]$ ll
21 总用量 0
22 -rw-rw-r--. 1 hello hello 0 5月 17 09:26 aaa #可以看到hello用户所创建文件aaa
23 [ydq@centos7 yude]$ rm -rf ./aaa #进行删除aaa文件
24 [ydq@centos7 yude]$ ll #文件已被删除
25 总用量 0

概念:当一个目录设置了sticky bit权限时,普通用户在该目录下所创建的文件或目录,只能被该文件或目录的属主用户或root用户删除,其它用户无法删除别的用户所创建的目录或文件。

 1 [root@centos7 opt]# ll #查看权限
 2 总用量 0
 3 drwxrwxrwx. 2 root root 6 5月 17 09:27 yude #权限为777
 4 [root@centos7 opt]# chmod o+t yude #增加sticky bit权限
 5 [root@centos7 opt]# ll #查看权限
 6 总用量 0
 7 drwxrwxrwt. 2 root root 6 5月 17 09:27 yude #其它用户上权限多了sticky bit权限
 8 [root@centos7 opt]# cd yude #进入到yude目录下面
 9 
10 [root@centos7 yude]# su hello #切换hello用户
11 [hello@centos7 yude]$ touch bbb #创建一个文件
12 [hello@centos7 yude]$ ll #查看文件,文件正常创建
13 总用量 0
14 -rw-rw-r--. 1 hello hello 0 5月 17 09:39 bbb
15 
16 [hello@centos7 yude]$ exit #退出当前用户
17 exit
18 [root@centos7 yude]# su ydq #切换到ydq用户
19 [ydq@centos7 yude]$ ll
20 总用量 0
21 -rw-rw-r--. 1 hello hello 0 5月 17 09:39 bbb #可以查看到hello用户创建的文件
22 [ydq@centos7 yude]$ rm -rf ./bbb #进行删除bbb文件
23 rm: 无法删除"./bbb": 不允许的操作 #无法进行删除

2、授权Sticky bit
授权方式:

1 chmod o+t filename
2 
3 chmod 1xxx filename

3、Sticky bit 总结
①让多个用户都具有写权限,并让每个用户都只能删除自己的文件

②投入数sticky目录表现在others 的 x 位,用(小写)t 表示,没有执行权限时(大写)T

③一个目录即使使得它的权限为“777” ,如果设置了粘滞位,除了目录的属主和“root”用户有权限删除,其它用户都不允许删除。

四、总结
1、SUID

主要对命令、或者二进制文件,设置了SUID,那么其它用户在执行该文件时,就会以该文件的属主权限来执行。

2、SGID

主要针对目录进行授权,共享目录,设置了SGID,其它任意用户在该目录下所创建的文件或目录,它们的属组用户都会与父目录相同。

3、SBIT

粘滞位,主要针对目录,设置了SBIT,即便该目录对所有用户都有写的权限,除了root用户,其它用户也只能对自己所创建的文件进行删除移动。

r:读 4

w:写 2

x :执行 1

Suid:4000

Sgid :2000

Sbit :1000
原文链接:https://blog.csdn.net/m0_57515995/article/details/124817049

标签:用户,centos7,详解,Linux,权限,root,hello,ydq
From: https://www.cnblogs.com/pyng/p/17578020.html

相关文章

  • Linux CentOS 7 卸载 PostgreSQL
    1、查看服务状态并停止服务systemctlstatuspostgresqlsystemctlstoppostgresql2、使用YUM命令卸载PostgreSQLyumremovepostgresql*3、验证RPM包是否卸载干净rpm-qa|greppostgresql4、删除PostgreSQL数据文件和配置文件目录(非必要)rm-rf/var/lib/p......
  • Linux安装mysql 02
    1:新建目录: 2:下载Mysql数据库文件:wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar:3:安装数据库文件解压文件tar-xvfmysql-5.7.39-1.el7.x86_64.rpm-bundle.tar yum-yinstallmysql-comm*.rpm 按照......
  • Linux CentOS 7 安装 PostgreSQL v14
    1、安装PostgreSQL的RPM资源库sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2、安装PostgreSQLServersudoyuminstall-ypostgresql14-server3、初始化PostgreSQLsudo/usr/pgsql-14......
  • 安装Linux系统时,需要哪些分区?
    Linux安装的时候,分区有两种方式:可以选择自动配置分区,也可以手动配置分区,但很多人对这个分区不太了解,那么安装Linux系统时,需要哪些分区?这里简单为大家介绍一下。在Linux安装过程中,常见的分区包括以下几个:1、根分区(/)这是Linux系统的根目录,包括操作系统的核心文件......
  • 网页性能管理详解
    你遇到过性能很差的网页吗?这种网页响应非常缓慢,占用大量的CPU和内存,浏览起来常常有卡顿,页面的动画效果也不流畅。网页性能管理详解你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站。作为一个开发者,肯定不愿意看到这种情况,那么怎样才能提高性能呢?本文将详细介绍......
  • linux 的man 命令查看手册
    1、当使用man命令查看命令手册页的时候,这些手册页是由分页程序(pager)来显示的。分页程序是一种实用工具,能够逐页显示文本。可以通过点击空格键进行翻页,或是使用回车键逐行查看。另外还可以使用箭头键向前向后滚动手册页的内容(假设你用的终端仿真软件包支持箭头键功能)。读完了手册......
  • linux sh 脚本:备份文件及删除十天以前的备份文件
     #如果文件夹不存在,创建文件夹if[!-d"/www/backup/data"];thenmkdir/www/backup/ant-datafi#切换目录cd/usr/#开始打包备份tar-zcvf/www/backup/data/data-$(date+%Y%m%d).tar.gzdata#移除十天以前的备份文件包find/www/backup/data/-mtime+10-n......
  • DB2存储过程-基础详解
    DB2存储过程-基础详解关键字:存储过程  您将:学习SQLPL的基本要素。理解如何声明变量、条件和处理程序。学习控制流语句。学习游标处理和如何返回结果集。理解错误处理机制。  Sql代码.-,-----------------. V......
  • Linux shell中的那些小把戏
    我日常使用Linuxshell(Bash),但是我经常忘记一些有用的命令或者shell技巧。是的,我能记住一些命令,但是肯定不会只在特定的任务上使用一次,所以我就开始在我的Dropbox账号里用文本文件写下这些Linuxshell的小技巧,现在我决定共享它给你。这个表我以后还会更新。记住,这里的一些贴士需......
  • RPA界面元素定位与操控技术详解-达观数据
    RPA入门介绍什么是RPA?RPA是机器人流程自动化RoboticProcessAutomation的简写。在《智能RPA实战》中,我们这样定义:通过特定的、可模拟人类在计算机界面上进行操作的技术,按照规则自动执行相应的流程任务,代替或辅助人类完成相关的计算机操作。一句话总结就是:用软件机器人自动化......