Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
Bash 如何在远程机器上安全运行任意代码?_Bash_Shell_Scripting_Heredoc - Fatal编程技术网

Bash 如何在远程机器上安全运行任意代码?

Bash 如何在远程机器上安全运行任意代码?,bash,shell,scripting,heredoc,Bash,Shell,Scripting,Heredoc,我想从一个用户那里接收一个shell命令,并以没有实际权限的Linux用户身份运行它 今天我要做的是:sudo-u{username}'sh'-c'$'{user_command}' 这安全吗?手动逃离“声音脆弱”。我将把命令放入一个文件中,并将该文件作为脚本执行。这通过设计避免了命令注入 进一步注意,即使是非特权帐户也可以读取主机系统上的许多文件,如/etc/passwd或/proc中的信息。例如,如果他们运行ps,他们可以看到来自其他用户的命令 因此,我建议在容器中运行该命令。安装docke

我想从一个用户那里接收一个shell命令,并以没有实际权限的Linux用户身份运行它

今天我要做的是:sudo-u{username}'sh'-c'$'{user_command}'

这安全吗?

手动逃离“声音脆弱”。我将把命令放入一个文件中,并将该文件作为脚本执行。这通过设计避免了命令注入

进一步注意,即使是非特权帐户也可以读取主机系统上的许多文件,如/etc/passwd或/proc中的信息。例如,如果他们运行ps,他们可以看到来自其他用户的命令

因此,我建议在容器中运行该命令。安装docker并运行:

# let's say you stored the command in "user.sh" ...
docker run -v "${PWD}:/scripts" -it image_name bash /scripts/user.sh
另一件与安全相关的事情是,人们可能会试图拒绝主机或其他机器,或者以不同的方式攻击它们。例如,请确保对docker机器mem、cpu、进程数等设置了非常严格的资源约束。。。。对于b,不允许容器的网络访问