Назад | Перейти на главную страницу

Можно ли исключить пользователя из скриптов /etc/profile.d?

У меня проблема с использованием Rsync / SSH с конкретным пользователем для резервного копирования Amanda на сервере.

rsync -e 'ssh -i /var/lib/amanda/.ssh/id_rsa_amdump' -az otherserver:/dir/to/copy /copy/dir

Я заметил, что он выдает всевозможные ошибки в сценарии в /etc/profile.d и не может войти в систему с помощью ключа SSH. Если я попытаюсь войти в учетную запись пользователя с помощью SSH, он просто отобразит ошибки и не выдаст подсказку. Есть ли способ запретить пользователю читать /etc/profile.d или настроить пропуск / исключение этого пользователя?

Ошибки, которые он выдает при попытке входа в систему с SSH:

/etc/profile.d/somescript.sh line 125: bind: warning: line editing not enabled

Он показывает эту ошибку как минимум для 20 различных строк внутри скрипта. Я не получаю эту ошибку ни для одного другого пользователя. Кроме того, домашний каталог пользователя резервного копирования Amanda находится в /var/lib/ не /home.

С помощью bind имеет смысл только в интерактивной оболочке. В somescript.sh проверьте, является ли оболочка интерактивной и только беги bind если это. Например,

if [ -n "$PS1" ]; then
    bind -x '"\e[M":'$'"ls -l"';
fi