Как загрузить части псевдонима bash только при входе через ssh
Как гласит заголовок, возможно ли загружать псевдоним только при доступе к компьютеру через ssh
или, что еще лучше, только с определенного компьютера через ssh
?
2 ответа
Решение
В .bashrc
(или где вы определяете псевдонимы), вы можете сделать его условным на основе переменной SSH_CONNECTION
, который устанавливается только для соединений ssh. Например:
if [[ $SSH_CONNECTION == *"your-IP"* ]]; then
alias ll="ls -l"
# your other aliases
fi
Насколько я понимаю ваш вопрос, когда вы используете ssh для Linux с пользователем, отличным от пользователя root, вошедший в систему пользователь должен иметь только ограниченный доступ к командам, и вы также хотите иметь псевдонимы для этих команд. Возможное решение
- Создайте ограниченную оболочку, скопировав файл bash в каталог / bin cp / bin / bash / bin / rbash
- Измените пользовательский bash на ограниченный bash useradd -s / bin / rbash, в случае существующего пользователя usermod -s / bin / rbash. После этого пользователь сможет получить доступ только к своему домашнему каталогу.
- Создайте каталог под / home // командами
- Теперь, чтобы ограничить доступ к командам, добавьте следующие строки в файл /home//.bash_profile PATH=$HOME/ команды export PATH
- Создайте программные ссылки на команды в / home // папке команд, которые вы хотите предоставить пользователю, например: ln -s /bin/date /home// команды /
- Войдя в систему, пользователь может изменить /home//.bash_profile, поэтому вы должны сделать его неизменным, чтобы пользователь не мог получить к нему доступ. chattr +i /home//.bash_profile