ssh :принудительно использовать другую оболочку для не -интерактивного выполнения команды

Я бы рекомендовал использовать zsh's zmvздесь, чтобы защититься от потенциальных конфликтов (, например, в текущем каталоге )есть файлы file.jpeg1и file.jpeg2перед выполнением . ] любое переименовать.

Вzsh:

autoload zmv # best in ~/.zshrc
zmv -n '(*.jpeg)<->' '$1'

Где<->(<x-y>диапазон чисел, совпадающий здесь без границ, )соответствует любой последовательности десятичных цифр, такой же, как [0-9]##.

(снять -nдля работы всухую -при удовлетворительном состоянии ).

1
24.08.2021, 10:59
1 ответ

Невозможно обойти оболочку входа по замыслу. Вы можете установить учетную запись SSH, оболочка которой ограничена (, например. ограниченная оболочка, как в rsh/rksh/rbash/…, или оболочка, которая разрешает только определенный протокол, такой как оболочка rssh или git -). Клиент не может указать другую оболочку.

Чтобы запустить код в другой оболочке, вы должны заставить свою оболочку входа запускать эту оболочку и передавать код во внутреннюю оболочку. Это ничем не отличается от того, что вам нужно сделать для запуска интерпретируемого кода на каком-либо другом языке, таком как perl, python и т. д. Позаботьтесь о правильном цитировании. Если вам не нужен стандартный ввод, передайте сценарий на стандартный ввод, чтобы вам не требовалось вложенных кавычек.

В базе данных пользователей может быть несколько записей для одной и той же учетной записи. «Та же учетная запись» означает тот же идентификатор пользователя. Записи должны иметь разные имена пользователей и могут иметь разные пароли, разные оболочки и т. д. См. Можно ли дать учетной записи пользователя несколько паролей? . Имейте в виду, что это не очень надежно, потому что некоторые программы выполняют поиск по идентификатору пользователя (, а не по имени пользователя в переменной среды $USER, для которой установлено имя, выбранное пользователем при входе в систему ).

Если вы хотите использовать zsh для интерактивного использования, но оболочку в стиле Bourne -для SSH,вы можете делать то же, что и я :Я установил для своей оболочки входа в систему значение/bin/sh(или что-то еще, что требуется для наличия оболочки POSIX ), и у меня есть (более сложная версия)export SHELL=/bin/zsh; exec $SHELLв моем .profile.

3
24.08.2021, 13:02

Теги

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