Назад | Перейти на главную страницу

GNU Rush не расширяет переменные

После смерти rssh я пытаюсь использовать GNU rush в качестве оболочки с ограничениями. Теоретически он намного более эффективен, чем rssh, но я не могу заставить его работать даже с простейшими конфигурациями. Интересно, упустил ли я что-то важное?

Вот очень простой /etc/rush.rc Использую для тестирования:

rule default
    env - USER LOGNAME HOME PATH

rule dbg
    command dbg
    set[0] /bin/echo
    set[1] ${HOME}

Затем я запускаю rush в тестовом режиме как root:

rush --user=localuser --debug=2 -c "dbg blah"

Ожидаемый результат состоит в том, что на выходе я получу домашний каталог пользователя, но это не то, что я получаю. Во-первых, тестовый режим фактически не эмулирует выполнение от имени другого пользователя. Во-вторых, не работает подстановка переменных. Вот соответствующие строки из вывода отладки:

rush: Info: Serving request "dbg blah" for localuser by rule default
rush: Debug: Rule default at /etc/rush.rc:9 matched
rush: Debug: Final environment:
rush: Debug:    0: USER=root
rush: Debug:    1: LOGNAME=root
rush: Debug:    2: HOME=/root
rush: Debug:    3: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/puppetlabs/bin
rush: Debug: Program name: dbg
rush: Debug: Final arguments:
rush: Debug:    0: dbg
rush: Debug:    1: blah
rush: Info: Serving request "dbg blah" for localuser by rule dbg
rush: Debug: Rule dbg at /etc/rush.rc:20 matched
rush: Debug: Final environment:
rush: Debug:    0: USER=root
rush: Debug:    1: LOGNAME=root
rush: Debug:    2: HOME=/root
rush: Debug:    3: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/puppetlabs/bin
rush: Debug: Modifying argv[0]
rush: Debug: Transform: "dbg" -> "/bin/echo"
rush: Debug: Modifying argv[1]
rush: Debug: Transform: "blah" -> "$HOME}"
rush: Debug: Program name: /bin/echo
rush: Debug: Final arguments:
rush: Debug:    0: /bin/echo
rush: Debug:    1: $HOME}
rush: Debug: Executing /bin/echo, /bin/echo $HOME}

Если я использую $HOME в качестве замены второго аргумента вместо ${HOME}, rush завершается с ошибкой сегментации, чего никогда не должно случиться с хорошо работающим программным обеспечением, даже если его файл конфигурации не работает.

Я использую rush 1.8, который поставляется с Debian 10.

Кто-нибудь вообще использует спешку? Я тщательно искал любую информацию в Google, но ничего не получил, кроме оригинальной документации. Если есть какие-то спешащие пользователи, я был бы признателен за ваш совет!