我有一些函数,可以 chroot 到某个目录。我使用exec
if 语句类型执行此命令两次if-else
。第一次我在then
部分中执行命令,第二次 —else
使用其他一些参数。虽然if
返回true
— 一切都很好,但如果它返回false
,我会收到这样的错误chroot not found
。我的代码部分:
define manage_users($some_variables)
{
some code here ...
if $action == "create" {
$command = "..."
exec {"${nsenter} && chroot ${some_dir} /bin/bash -c '${some_command}'":
path => ["/usr/sbin", "/usr/bin", "/bin"],
}
} #delete user
else {
some code ....
exec { "${nsenter} && chroot ${some_dir} /bin/bash -c '${some_other_command}'":
path => ["usr/sbin", "/usr/bin", "/bin"],
onlyif => "...",
}
}
}
我在 中做错了什么else
? 在我看来,它与 中的一样then
。
答案1
您的路径:
path => ["usr/sbin", "/usr/bin", "/bin"],
那应该是:
path => ["/usr/sbin", "/usr/bin", "/bin"],
/
注意在 处添加的usr/sbin
。
这是有道理的,因为它是/usr/sbin/chroot
。