Я задал этот вопрос на форуме поддержки Centos, но мы не нашли для него решения (https://www.centos.org/forums/viewtopic.php?f=13&t=46101#p196728)
При входе в систему через LDAP / sssd мы не нашли способа настроить общесистемные псевдонимы для всех пользователей, которые активируются при входе в систему с помощью ssh, а также с помощью графического оконного менеджера:
/etc/bashrc
и добавление псевдонима внизу вообще не приводит к успеху. Ни при использовании ssh, ни при графическом входе./etc/profile
и добавление псевдонима дает только успех при использовании sshЯ знаю, что редактировать эти два файла - плохая идея. Было бы здорово, если бы у кого-то было решение, которое загружает скрипты в /etc/profile.d/*
Окружающая среда:
На моем ящике CentOS причина, по которой /etc/bashrc
загружен, потому что а) моя оболочка - bash и б) моя личная ~/.bashrc
источники / etc / bashrc.
Включает ли .bashrc, который пользователи получают при настройке их домашнего каталога, источник / etc / bashrc и является ли / bin / bash оболочкой по умолчанию в вашем LDAP?
Может случиться так, что переменные / псевдонимы, которые вы пытаетесь изменить, также установлены в файлах .bashrc или .bash_profile в домашнем каталоге пользователей, что исключает любые попытки установить общесистемные значения по умолчанию / переопределения?
Это приводит ко второму вопросу: как создаются домашние каталоги? Например. на клиенте с pam_mkhomedir при первом входе в систему или домашние каталоги создаются централизованно на вашем сервере Debian и, например, экспортируются через NFS? Значение по умолчанию в Debian ~ / .bashrc, которое копируется из / etc / skel при настройке домашнего каталога, может отличаться от шаблона CentOS в / etc / skel, источники которого . /etc/bashrc
.
редактировать в ответ на комментарий Noxx ниже:
Согласно странице руководства bash, только глобальный файл, загруженный bash: /etc/profile
Общесистемный файл инициализации, выполняемый для оболочек входа .
Это согласуется с вашим наблюдением, что внесенные там изменения вступают в силу при входе в систему с использованием ssh.
У этого по умолчанию есть раздел, рекурсивно загружающий /etc/profile.d/*.sh
файлы, которые должны быть постоянным местом для пользовательских файлов с псевдонимами и т. д.
Я думаю (но у меня нет средств для тестирования сейчас) графический вход в систему не запускает оболочку входа только в оконный менеджер, и возможно, что оболочка bash, в которую вы входите, например, окно xterm, хотя и является интерактивным, а не оболочкой входа.
Снова со страницы руководства: При запуске интерактивной оболочки, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~ / .bashrc, если этот файл существует. Никакие другие / глобальные файлы конфигурации не загружаются.
RHEL / CentOS обращаются к этому и делают интерактивные оболочки похожими на оболочки входа в систему, используя / etc / bashrc в личном ~/.bashrc
Лучше всего будет развернуть такой .bashrc при настройке учетных записей пользователей.