- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果 /usr/bin/bash 设置了 suid 位为什么只有当我像这样使用 -p 选项时,我的 euid 才会更改为 root /usr/bin/bash -p
这个 -p 选项代表什么?当您从 suid 二进制文件生成 bash shell 时,为什么将 euid 设置为 root 而不是 uid?
最佳答案
来自documentation :
-p
Turn on privileged mode. In this mode, the $BASH_ENV and $ENV files are not processed, shell functions are not inherited from the environment, and the SHELLOPTS, BASHOPTS, CDPATH and GLOBIGNORE variables, if they appear in the environment, are ignored. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the -p option is not supplied, these actions are taken and the effective user id is set to the real user id. If the -p option is supplied at startup, the effective user id is not reset. Turning this option off causes the effective user and group ids to be set to the real user and group ids.
这样做是因为 setuid shell 脚本一直是安全漏洞的常见来源。因此,程序员需要使用 -p
选项来表明他们确实需要权限升级,例如通过使用
#!/usr/bin/bash -p
如果没有这个,在 /usr/bin/bash
上设置 suid
位本身将是一个巨大的安全漏洞,因为大多数脚本没有采取必要的预防措施以提升的权限运行时。
关于linux - suid 二进制提权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63689353/
我是一名优秀的程序员,十分优秀!