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


相关文章
|
26天前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
38 2
|
19天前
|
Linux 数据安全/隐私保护
Linux中用户权限问题
【10月更文挑战第4天】
12 1
|
1月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
54 11
|
24天前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
24天前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
24天前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
25天前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
24 0
|
3月前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
50 0
|
3月前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
|
3月前
|
Linux
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。