【发布时间】:2020-01-31 19:43:58
【问题描述】:
假设您有一台装有 Bash 的 Linux/UNIX 机器。您有一个只有 root 才能读取的文件 secret.txt。你想使用一个将字符串作为参数的命令,比如,
sample-command <string>
以 root 用户身份登录并使用文本文件的第一行运行命令:
root ~ $ sample-command $(sed '1!d' secret.txt)
这可以由非 root 的 sudoer 用户完成吗?
注意。sudo sh -c "<command>" 无济于事,因为子 shell 不会继承 root/sudo 权限。例如,
sarah ~ $ sudo sh -c "echo $(whoami)"
给你sarah,而不是root。
【问题讨论】:
-
也许尝试
sudo bash -pc command以特权模式启动 bash?还有$(sudo sed ...)有什么问题
标签: bash security subshell privilege-elevation