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


相关文章
|
5天前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
15 1
|
11天前
|
Linux 数据安全/隐私保护 Windows
Linux专栏10:Linux权限详解(上)
Linux专栏10:Linux权限详解(上)
31 3
|
2天前
|
Shell Linux 程序员
详解shell 运行原理及Linux权限
详解shell 运行原理及Linux权限
|
1月前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
1月前
|
Linux 数据安全/隐私保护 iOS开发
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
|
2月前
|
安全 关系型数据库 MySQL
技术经验解读:【Linux】Linux系统中的权限详解
技术经验解读:【Linux】Linux系统中的权限详解
24 0
|
2月前
|
Linux 开发工具 C语言
【Linux】Linux的权限_2 + Linux环境基础开发工具_1
【Linux】Linux的权限_2 + Linux环境基础开发工具_1
22 0
|
2月前
|
Linux Shell 数据安全/隐私保护
【Linux】Linux的权限_1
【Linux】Linux的权限_1
22 0
|
2月前
|
Linux Shell 数据安全/隐私保护
【Linux】--- Linux权限概念
【Linux】--- Linux权限概念
23 0
|
2月前
|
Linux 数据安全/隐私保护 Windows
分布式系统详解--Linux(权限)
分布式系统详解--Linux(权限)
30 0