Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 二进制权限升级_Linux_Elevated Privileges - Fatal编程技术网

Linux 二进制权限升级

Linux 二进制权限升级,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设置了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变量(如果它们出现在环境中)会被忽略。如果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
如何选择默认值。