Linux用户权限特殊权限

简介: suid:针对文件/程序时,具备临时提升权限。 suid是针对文件所设置的一个特殊的权限。 功能:使调用文件的用户,临时具备属主的能力

一、特殊位suid


1、概述


      suid:针对文件/程序时,具备临时提升权限。

       suid是针对文件所设置的一个特殊的权限。

       功能:使调用文件的用户,临时具备属主的能力


2、引入


 看下列命令


[root@localhost ~]# touch /root/file001                //在root目录下创建一个file001的文件

[root@localhost ~]# vim  /root/file001                   //编辑文件内容

[root@localhost ~]# su zhangsan                        //切换zhangsan用户身份

[zhangsan@localhost root]$ cat /root/file001        //查看file001文件内容

cat: /root/file001: 权限不够                                        //权限不足


分析:root运行是超管的权限,普通用户运行时是普通用户的权限所以不能够查看file001的内容


[zhangsan@localhost root]$ exit                                //退出zhangsan身份

exit

[root@localhost ~]# ll -d /root                                        //查看root目录信息

dr-xr-x---. 15 root root 4096 9月  28 14:50 /root                //只有属主root和属组root可以对root目录进项读和执行,其他用户是没有任何权限的。

root身份:usr/bin/cat(root)            这个时候cat的属主是root超管身份可以查看文件的

zhangsan身份:usr/bin/cat(zhangsan)      这个时候cat的属主是普通用户身份无法查看root目录下的文件


3、设置suid


设置suid,使普通用户通过suid临时提权,获得查看超管root目录的权限

语法:chmod   u+s    文件

1)为cat程序添加上suid权限


[root@localhost ~]# ll  /usr/bin/cat                                //查看cat信息

-rwxr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat        

[root@localhost ~]# chmod u+s /usr/bin/cat                //给cat添加上suid权限

[root@localhost ~]# ll /usr/bin/cat                                //查看cat信息

-rwsr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat               //cat属主的权限被赋予上root的权限,这个时候即便是普通用户使用cat程序也可以拥有root的权限        

2)使用普通用户运行cat,暂时获得root权限


[root@localhost ~]# su zhangsan                                //切换zhangsan用户

[zhangsan@localhost root]$ cat /root/file001            //zhangsan用户查看root下的file001文件

123                                                                                //可以查看

[zhangsan@localhost root]$ exit                                //退出zhangsan用户

exit

//在试验后要将suid权限移除

[root@localhost ~]# chmod u-s /usr/bin/cat                      //移除suid权限

[root@localhost ~]# ll /usr/bin/cat                                        //查看cat信息

-rwxr-xr-x. 1 root root 54080 8月  20 2019 /usr/bin/cat              //suid权限不存在

[root@localhost ~]# su zhangsan                                        //切换zhangsna用户

[zhangsan@localhost root]$ cat /root/file001                        //查看root下的file001文件

cat: /root/file001: 权限不够                                                //访问失败,因为这时候cat以及失去suid的权限


二、文件属性chattr


1、用途


     常用于锁定某个文件,拒绝修改


2、以i为例子展示


语法:chattr  +i   文件名          i不能对文件进行修改、重命名和删除

          lschattr   文件                查看文件默认的属性权限


1)先创建新的文件进行对比,查看默认的权限


[root@localhost ~]# touch /test/t2                        //创建t2文件

[root@localhost ~]# lsattr /test/t2                         //查看默认权限

---------------- /test/t2

2)添加不能修改、重命名和删除的属性


[root@localhost ~]# chattr  +i   /test/t2               // 添加属性权限

[root@localhost ~]# lsattr  /test/t2                      //查看属性权限

----i----------- /test/t2

3)测试


[root@localhost ~]# rm -rf /test/t2                        //删除文件t2

rm: 无法删除"/test/t2": 不允许的操作                   //删除失败

[root@localhost ~]# mv /test/t2   /test/t3                //重命名t2

mv: 无法将"/test/t2" 移动至"/test/t3": 不允许的操作                        //操作失败

[root@localhost ~]# vim /test/t2                                        //编辑t2内容

5932508fa0f24eef88e08792d60db841.png//文件变为只读


4)将属性还原并测试


[root@localhost ~]# chattr -i /test/t2                        //删除i属性权限

[root@localhost ~]# lsattr /test/t2                        //查看t2属性权限

---------------- /test/t2                                                //删除成功

[root@localhost ~]# cat /test/t2                //查看t2内容

[root@localhost ~]# vim /test/t2                //编辑t2内容

[root@localhost ~]# cat /test/t2                //查看t2内容

123                                                                //编辑成功

[root@localhost ~]# mv /test/t2   /test/t3                //重命名t2为t3

[root@localhost ~]# ll /test                                //查看test内的文件

-rw-r--rwx. 1 root S1   0 9月  27 14:46 t1

-rw-r--r--. 1 root root 4 9月  28 15:25 t3                      //重命名成功

[root@localhost ~]# rm -rf /test/t3                                //删除t3

[root@localhost ~]# ll /test/t3                                        

ls: 无法访问/test/t3: 没有那个文件或目录                       //删除成功


三、远程掩码umask


1、概述


 新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限,在我们创建目录的时候默认目录是755,创建文件的时候默认权限为644,这些结果都是由777经过与umask的一些计算得到的,和减法一样的逻辑.


[root@localhost ~]# mkdir  /test/dir001                             //创建目录

[root@localhost ~]# ll -d  /test/dir001                                //查看目录信息

drwxr-xr-x. 2 root root 6 9月  28 15:31 /test/dir001      //目录的默认权限755

[root@localhost ~]# touch  /test/t2                                //创建文件

[root@localhost ~]# ll /test/t2                                        //查看文件信息

-rw-r--r--. 1 root root 0 9月  28 15:33 /test/t2                //文件默认权限为644

2、了解特别位


 在我们之前授权的时候都是chmod  777(三个数)  文件名,但是其实前面还有一位数之前没有写的,这个特别位。


[root@localhost ~]# chmod 4777 /test/t2                        //4就是属主那的特别位

[root@localhost ~]# ll /test/t2                

-rwsrwxrwx. 1 root root 0 9月  28 15:33 /test/t2                //s就是suid

[root@localhost ~]# chmod 1777 /test/t2                        //1是执行的特别位

[root@localhost ~]# ll /test/t2

-rwxrwxrwt. 1 root root 0 9月  28 15:33 /test/t2                        //t是粘着位

[root@localhost ~]# chmod 2777 /test/t2                                //2是属组的特别位

[root@localhost ~]# ll /test/t2

-rwxrwsrwx. 1 root root 0 9月  28 15:33 /test/t2                //s就是suid


3、查看系统默认掩码


[root@localhost ~]# umask                //查看系统默认umask
0022

目录默认的权限755可以看做是0777-0022得来的

文件默认是需要移出执行权的所以需要减去0111


4、修改shell umask值(临时,关机就会恢复到默认)


[root@localhost ~]# umask  0000                        //修改umask为0000

[root@localhost ~]# umask                                //查看umask

0000        

[root@localhost ~]# mkdir /test/dir002                        //创建目录dir002

[root@localhost ~]# touch /test/t3                                //创建文件t3

[root@localhost ~]# ll -d  /test/dir002    /test/t3                //查看dir002和t3的信息

drwxrwxrwx. 2 root root 6 9月  28 16:01 /test/dir002        //目录默认权限变为777

-rw-rw-rw-. 1 root root 0 9月  28 16:01 /test/t3                //文件默认权限变为666


相关文章
|
6月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
323 3
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
287 2
|
9月前
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
|
8月前
|
安全 Linux 数据安全/隐私保护
【Linux】深入理解linux权限
本文深入解析Linux权限管理机制,涵盖权限概念、用户角色、文件属性及操作方法。文章分为前言、权限介绍、用户与角色、文件属性、权限修改及常见问题六大板块。详细说明了权限类型(r/w/x)、角色优先级、chmod/chown指令用法,以及目录权限、umask掩码、粘滞位等重点内容。掌握这些知识,可有效提升Linux系统安全性和灵活性,是管理员必备技能。喜欢的话别忘了点赞支持哦! ❤❤❤
391 6
|
9月前
|
安全 Linux 数据安全/隐私保护
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
389 6
|
12月前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
252 1
linux特殊权限!!
|
Linux 数据安全/隐私保护
Linux中用户权限问题
【10月更文挑战第4天】
164 1
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
148 2
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
下一篇
开通oss服务