Как гласит заголовок, возможно ли иметь псевдоним, загружаемый только при доступе к машине через ssh
, или, что еще лучше, только с определенного компьютера через ssh
?
5
2 ответа
7
В .bashrc
(или там, где вы определяете псевдонимы) вы можете сделать его условным на основе переменной SSH_CONNECTION
, которая устанавливается только для соединений ssh. Например:
if [[ $SSH_CONNECTION == *"your-IP"* ]]; then
alias ll="ls -l"
# your other aliases
fi
0
Насколько я понимаю ваш вопрос, когда вы используете 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