У меня есть функция, которая выполняет chroot в какой-то каталог. Я выполняю эту команду дважды с помощью exec
введите если 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
.
Твой путь:
path => ["usr/sbin", "/usr/bin", "/bin"],
Которые должны быть:
path => ["/usr/sbin", "/usr/bin", "/bin"],
Обратите внимание на добавленный /
в usr/sbin
.
Что имеет смысл, поскольку это /usr/sbin/chroot
.