CentOS/Redhat: общесистемные псевдонимы при входе через LDAP/sssd
Я задал этот вопрос на форуме поддержки 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/*
Enviroment:
- Клиенты: CentOS 6.5
- Сервер /LDAP: OpenLDAP/slapd 2.4.31-1+nmu2 в Debian 7
1 ответ
На моей коробке CentOS причина, по которой /etc/bashrc
загружен, потому что а) моя оболочка bash и б) мой личный ~/.bashrc
Исходники / etc / bashrc.
Включает ли.bashrc, который пользователи получают при настройке своего домашнего каталога, sourcing / etc / bashrc и является ли / bin / bash оболочкой по умолчанию в вашем LDAP?
Возможно, переменные / псевдонимы, которые вы пытаетесь изменить, также заданы в файлах.bashrc или.bash_profile в домашнем каталоге пользователей, что сводит на нет все попытки установить общесистемные значения по умолчанию / переопределения?
Это приводит ко второму вопросу: как создаются домашние каталоги? Например, на клиенте с pam_mkhomedir при первом входе в систему или домашние каталоги создаются централизованно на вашем сервере Debian и, например, экспортируются через NFS? Значение по умолчанию для Debian ~/.bashrc, которое копируется из /etc/skel при настройке домашнего каталога, может отличаться от шаблона CentOS в /etc/skel, исходники которого . /etc/bashrc
,
Изменить в ответ на комментарий Noxx ниже:
Согласно man-странице bash, единственный глобальный файл, загружаемый bash: /etc/profile
Общесистемный файл инициализации, выполненный для оболочек входа в систему.
Это согласуется с вашим наблюдением, что внесенные в него изменения действуют при входе в систему с использованием ssh.
Этот по умолчанию имеет раздел, который рекурсивно загружает /etc/profile.d/*.sh
файлы, которые должны быть в расположении для пользовательских файлов с псевдонимами и тому подобное.
Я думаю (но сейчас у меня нет средств для тестирования), графический вход не запускает оболочку входа, только оконный менеджер, и может случиться так, что оболочка bash, например, окно xterm, является интерактивной, а не оболочкой входа.
Снова со страницы руководства: Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~/.bashrc, если этот файл существует. Другие / глобальные файлы конфигурации не загружаются.
RHEL / CentOS решают эту проблему и делают интерактивные оболочки похожими на оболочки входа в систему, используя / etc / bashrc в личном кабинете. ~/.bashrc
Лучше всего будет развернуть такой.bashrc при настройке учетных записей пользователей.