указать оболочку для ssh-сессии

вы можете сделать это с помощью awk

awk 'FNR==NR{a[$1];next};!($1 in a)' file1 file2
3
16.06.2016, 08:10
1 ответ

У меня похожая проблема на одной системе, которую я использую (оболочка по умолчанию bash, я хочу ksh93, а chsh не работает).

Мое решение, адаптированное для вашей ситуации, состоит в том, чтобы exec желаемую оболочку из ~/.profile, который Dash считывает при запуске. Bash не трогает ~/.profile, если не находит ~/.bash_profile или ~/.bash_login (в таком порядке, см. руководство по Bash).

# in ~/.profile:
if [ "$SHELL" != "/usr/bin/bash" -a -n "$SSH_TTY" -a -x /usr/bin/bash ]; then
    export SHELL="/usr/bin/bash"
    exec $SHELL -l
fi

SSH устанавливает SSH_TTY в интерактивных сеансах SSH, поэтому мы проверяем, установлен ли он (непустая строка), прежде чем убедиться, что Bash доступен и выполнить его. Я устанавливаю и экспортирую SHELL на случай, если какое-либо другое приложение посмотрит на него, и чтобы избежать бесконечного цикла работы Bash из-за отсутствия ~/.bash_profile и ~/.bash_login и, таким образом, попытки повторного выполнения ~/.profile.

6
27.01.2020, 21:16

Теги

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