我希望能够fdisk -l
以任何用户身份运行,而无需获取整个fdisk: cannot open /dev/sda: Permission denied
消息。
我不明白如何fdisk -l
用于恶意目的。
我有一个 PHP 脚本,它首先检查用户是否登录到我的网站,以及他们是否是管理员。
然后我有一个管理控制面板,它显示 的输出fdisk -l
,但是,我收到错误fdisk: cannot open /dev/sda: Permission denied
。
没有用户输入,因此他们无法将参数注入命令中。
答案1
解决方案是创建一个调用 的程序fdisk
。用 C\C++ 编写它很容易,你只需要一个编译器。然后将可执行文件的所有者更改为root
并赋予它SUID
权限(将 赋予SUID
脚本是行不通的,这就是为什么你需要一个可执行文件而不是脚本)。确保没有其他用户可以写入该文件,否则可能会导致安全问题。