Можно ли исключить пользователя из скриптов /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,

1 ответ

Решение

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

if [ -n "$PS1" ]; then
    bind -x '"\e[M":'$'"ls -l"';
fi
Другие вопросы по тегам