Тюрьма в chroot в debian 7.5 - Разделительная проблема Полномочий

Я думаю, что вы неправильно интерпретируете происходящее. Когда вы это делаете:

cmd1 && cmd2

оболочка запускает cmd1 в дочернем процессе, ждет этого процесса, а затем запускает cmd2, если cmd1 выходит со статусом нулевого выхода.

Если нажать Ctrl+Z, ожидание вернется, оболочка установит $? на 148, например (128 + SIGTSTP), а оценка остального произойдет в этот момент , поэтому cmd2 будет не выполнена. И cmd1 становится фоновым заданием.

Если бы вы набрали:

cmd1 || cmd2

или:

cmd1; cmd2

cmd2 была бы выполнена на Ctrl-Z и вам пришлось бы подождать, пока она завершится, чтобы получить следующую подсказку (где вы можете fg или bg ваше фоновое задание).

В zsh, когда вы нажимаете Ctrl-Z в:

{cmd1 && cmd2 && cmd3}

Это приостанавливает работу всей группы (и перемещает ее в подоболочку). Однако, при возобновлении, команда приостановления, когда она заканчивается, установит $? на 20, независимо от статуса выхода, и я не думаю, что есть способ обойти это, так что в конечном итоге вы повторите то же самое (хотя в {cmd1 || cmd2} cmd2 будет выполнена после завершения команды, а не прямо на Ctrl-Z)).

1
09.03.2019, 14:25
1 ответ

Давайте скажем, Chroot находится в / Путь / к / Chroot . Тогда вам нужно:

  1. каталог etc в в / Путь / к / chroot , а
  2. файл, называемый Passwd в / Путь / к / chroot / etc , с хотя бы одной записью:

     JUSER: x: 5002: 5002 :: / ust / path: / ue / shell
     
  3. И оба:
    • / Путь / к / chroot / некоторые / путь
    • / Путь / к / chroot / ue / chars (Оболочка должна присутствовать , наряду с любыми необходимыми библиотеками и такими.)
1
27.01.2020, 23:51

Теги

Похожие вопросы