From 824ec37a4fa03fac3d94d5fbd1b79eea79a2e777 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Wed, 6 Dec 2017 08:38:48 -0800 Subject: [PATCH] Fix Command module documentation The command module docs were unclear. They talked about ignoring the user's environment which lead people to believe the user's environment variables were not used. In actual fact, the user's environment variables are used. They just are not expanded in the command. --- lib/ansible/modules/commands/command.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/commands/command.py b/lib/ansible/modules/commands/command.py index 863822b6179..0ab85ff128b 100644 --- a/lib/ansible/modules/commands/command.py +++ b/lib/ansible/modules/commands/command.py @@ -57,7 +57,8 @@ options: default: null notes: - If you want to run a command through the shell (say you are using C(<), C(>), C(|), etc), you actually want the M(shell) module instead. - The C(command) module is much more secure as it's not affected by the user's environment. + Parsing shell metacharacters can lead to unexpected commands being executed if quoting is not done correctly so it is more secure to + use the C(command) module when possible. - " C(creates), C(removes), and C(chdir) can be specified after the command. For instance, if you only want to run a command if a certain file does not exist, use this." - The C(executable) parameter is removed since version 2.4. If you have a need for this parameter, use the M(shell) module instead.