Linux 二进制权限升级
如果/usr/bin/bash设置了suid位 为什么我的euid只有在使用-p选项时才更改为root,比如soLinux 二进制权限升级,linux,elevated-privileges,Linux,Elevated Privileges,如果/usr/bin/bash设置了suid位 为什么我的euid只有在使用-p选项时才更改为root,比如so/usr/bin/bash-p 这个-p选项代表什么? 当您从suid二进制文件生成bash shell时,为什么euid设置为root,为什么不uid?来自: -p 打开特权模式。在此模式下,$BASH_ENV和$ENV文件不会被处理,shell函数不会从环境中继承,并且shell opts、BASHOPTS、CDPATH和GLOBIGNORE变量(如果它们出现在环境中)会被忽略。如
/usr/bin/bash-p
这个-p选项代表什么?
当您从suid二进制文件生成bash shell时,为什么euid设置为root,为什么不uid?来自:
-p
打开特权模式。在此模式下,$BASH_ENV和$ENV文件不会被处理,shell函数不会从环境中继承,并且shell opts、BASHOPTS、CDPATH和GLOBIGNORE变量(如果它们出现在环境中)会被忽略。如果shell启动时有效用户(组)id不等于实际用户(组)id,且未提供-p选项,则会执行这些操作,并将有效用户id设置为实际用户id。如果启动时提供了-p选项,则不会重置有效用户id。关闭此选项会将有效用户和组ID设置为实际用户和组ID 之所以这样做,是因为setuid shell脚本一直是安全漏洞的常见来源。因此,程序员需要使用
-p
选项来表示他们确实需要权限提升,例如使用
#!/usr/bin/bash -p
如果没有这一点,在
/usr/bin/bash
本身上设置suid
位将是一个巨大的安全漏洞,由于大多数脚本在使用提升的权限运行时没有采取必要的预防措施。假设我使用此-p选项生成bash shell,如果我尝试passwd命令,生成shell的用户的passwd会被更改还是根用户的passwd?我想它会是根用户,但这取决于passwd
如何选择默认值。