Можно ли указать другой файл zshrc при входе в систему через ssh?

Я весь день трачу на серверы для работы, а удаленный пользователь – это тот, который разделяется мной и несколькими коллегами, поэтому я не могу просто слепо настроить оболочку, так как не все захотят изменить мои настройки и изменения.

Это их способ указать альтернативный файл .zshrc для использования при входе в систему, например:

ssh user@someserver zsh --rcfile .zshrc.mine 

Я просмотрел man-страницы и googled и до сих пор не придумал решение.

Любая помощь будет оценена 🙂

Чтобы изменить, где zsh ищет файлы конфигурации пользователя ( .zshenv , .zprofile , .zshrc , .zlogin ), вы должны установить ZDOTDIR среды ZDOTDIR в путь, где они находятся. ZDOTDIR может содержать абсолютный или относительный путь, где относительные пути относятся к текущему рабочему каталогу при запуске zsh . Если ZDOTDIR не установлен, zsh выглядит в $HOME .

Итак, если вы поместите свой личный .zshrc в каталог $HOME/.my_zsh , вы сможете использовать его на удаленном сервере, подключившись к следующей команде:

 ssh -t user@someserver ZDOTDIR=.my_zsh zsh 

Параметр -t заставляет pseudo-tty-распределение, которое ssh обычно делает, только если команда не передана (то есть, если удаленная оболочка открыта). В этом случае ZDOTDIR=.my_zsh zsh команда ZDOTDIR=.my_zsh zsh , которая устанавливает ZDOTDIR (только для текущей команды) и запускает zsh .

В вашей сессии .ssh определены 3 переменные среды:

  SSH_CLIENT=127.0.0.1 42421 22 SSH_CONNECTION=127.0.0.1 42421 127.0.0.1 22 SSH_TTY=/dev/pts/3 

Ваши значения после «=» могут отличаться.

Вы могли бы проверить ваш файл .zshrc для них и сделать что-то другое.