После смерти 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, но ничего не получил, кроме оригинальной документации. Если есть какие-то спешащие пользователи, я был бы признателен за ваш совет!