Linux文件特殊权限 2

本文介绍了Linux文件的12位权限,包括9位普通权限和3位特殊权限(suid、sgid、粘滞位),阐述了suid权限的应用及设置方法,还列举了普通用户通过设置suid的命令提权到root的方法,并给出了一系列防护普通用户及Web提权的措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux文件权限实际是12位权限

linux  文件权限9个字符每三个字符一组  分三组  用户权限   用户组权限  其他权限

实际上还有三位特殊权限、

suid 权限        sgid 权限        粘滞位

理解特殊权限:关键应用suid

当给一个二进制命令设置了suid以后,那么,[任何用户]执行该命令,
都会拥有和命令文件对应的所有者(用户)相同的权限。


md5sum 根据文件及文件内容,利用固定的算法生成一串特殊字符

使用md5sum采集/etc/shadow指纹

[root@oldboyedu ~]# md5sum /etc/shadow
825f0f637d387b9d27ed1bff91452f2f  /etc/shadow
[root@oldboyedu ~]# md5sum /etc/shadow
825f0f637d387b9d27ed1bff91452f2f  /etc/shadow
##新开窗口,登录普通用户,并修改自己的密码:
su - oldboy
passwd

##回到root窗口,再采集指纹,发现shadow已经被改动。
[root@oldboyedu ~]# md5sum /etc/shadow
deb611db6a2033d7599bd31c6417407b  /etc/shadow
##说明oldboy用户改了/etc/shadow文

给rm命令设置suid,测试rm删除本来没有权限删除的文件

查看rm权限 :ls -l /bin/rm

给rm命令设置suid(suid存在于用户位,用s表示) :chmod u+s /bin/rm

查看 :  ls -l /bin/rm -rwsr-xr-x 1 root root 62872 8月  20 2019 /bin/  

suid总结:
1.针对二进制命令.
2.给二进制命令设置suid,则【任何用户】执行该命令都会拥有和该命令对应的用户相同的权限.

特殊权限的字符及数字知识

普通权限:9位 前三位、中三位、后三位
特殊权限:3位 

suid:用户位*****
suid字符是S,对应的数字4,占据前三位用户位的x位置,字符是S,位置如果有x,变成小写s。

sgid:用户组位
suid字符是S,对应的数字2,占据中三位用户组位的x位置,字符是S,位置如果有x,变成小写s。

粘滞位: 其他位
粘滞位字符是T,对应的数字1,占据后三位其他用户位的x位置,字符是T,位置如果有x,变成小写t。


工作中禁止使用suid提权,特别是本身有危害的命令,passwd命令属于绿色\无害命令
rm,vim,sed,cat都是有害命令,危害防不胜防

.设置suid    字符权限:   chmod u+s /bin/rm

        数字权限: chmod 4755 /bin/rm

    设置sgid:   字符权限  chmod g+s /bin/rm

                数字权限: chmod 2755 /bin/rm

同时设置suid,sgid,粘滞位 :  chmod 7755 /bin/rm

练习:执行chmod u+s /bin/vim以后,如何能从普通用户test提权到root。

test用户通过设置了suid的vim命令提权到root实践:
1.#必须root用户下操作
chmod u+s /bin/vim

2.#必须test用户下操作
vim /etc/sudoers增加如下内容
test ALL=(ALL) NOPASSWD:ALL

3.#切到root.
sudo su -  

提权方法2:
1.#必须root用户下操作
chmod u+s /bin/vim

2.vim /etc/passwd,将test用户的行的UID改为0

提权方法3:将test用户修改为属于wheel组

#确定test的组id为20008
[test@oldboyedu ~]$ grep -w test /etc/passwd
test:x:20008:20008::/home/test:/bin/bash


#确定wheel组id为10
[test@oldboyedu ~]$ grep wheel /etc/group
wheel:x:10:

#修改组id为10
[test@oldboyedu ~]$ vim /etc/passwd
test:x:20008:10::/home/test:/bin/bash

###登录sudo
sudo su - ###需要test密码。


提权方法4:增加针对test组的授权vim /etc/sudoers
%test   ALL=(ALL)       ALL

一招解决上面提权问题:
chattr -i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
useradd oldboy
chattr +i /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
 

防护普通用户以及通过Web(普通用户)提权


1.禁止给命令设置suid
  0)管理员不要去使用suid功能,同时把无用的suid功能取消。
  1)应用软件PHP(/etc/php.ini配置)禁止开启读取系统文件等的函数
  2)磁盘的挂载禁止suid。
  
2.给关键文件加锁
/etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers

3.chmod 440 /etc/sudoers

4.看好/etc目录权限,防止文件被替换

5.所有系统和站点文件和目录用户和组都用root

6.文件权限统一644,目录权限统一755, 文件和目录对应用户和组尽量都是root
  错误做法:chmod -R 777 站点目录 极大危险。
  必须要做:chown -R www.www 上传的目录
  (给上传的站点目录设置应用程序对应的用户)

7.web应用应禁止上传特殊文件到系统目录,
1)js判断文件扩展名(jpg,zip,mp4)

2)上传后禁止浏览(get请求方法,目录uri,动静分离),
开启wap防火墙各种限制80端口进入,使用加密的https.

8.ssh监听内网,禁止root远程连接,通过vpn拨号然后通过跳板机连接。
[root@oldboyedu ~]# vim /etc/ssh/sshd_config 
PermitRootLogin no
[root@oldboyedu ~]# systemctl restart sshd

9.用防火墙把ssh访问限制到内网或者公司办公的IP段。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值