Я использую CentOS 5.3 для подключения, чтобы использовать Kerberos для аутентификации и LDAP для информации о пользователе. К сожалению, домашним каталогом для всех пользователей, хранящимся в LDAP, является «/». Очень яркий! Итак, это не работает. Не имея доступа к LDAP, мне нужно выяснить, как заставить пользователей использовать локальный каталог «/ home / username» в качестве HOME.
Я пробовал редактировать / etc / bashrc, но мне кажется, что сейчас уже слишком поздно устанавливать HOME. Кроме того, мне может потребоваться отредактировать оболочку пользователя по умолчанию, которая также хранится в LDAP. Не похоже, что изменение локального / etc / bashrc поможет, потому что он может даже не загрузиться!
Итак, при использовании этих компонентов - Kerberos, LDAP, pam, autofs - когда и где я могу указать среду для своих пользователей, при необходимости переопределив среду, установленную в LDAP?
ТИА !!! 1
Предупреждение: впереди уродливый хакер! Лучше всего, конечно, изменить данные на сервере LDAP и избавить себя от неприятностей, но вот оно:
Добавьте следующую строку в конец /etc/security/pam_env.conf:
HOME DEFAULT="/home/@{PAM_USER}"
Это переопределит переменную пользователя $ HOME, указав на правильный каталог. Однако это устанавливается только после входа в систему, поэтому вы по-прежнему будете получать сообщение об ошибке, что вход в систему не может найти домашний каталог пользователя. Вторая фаза уродливого взлома - добавить «cd ~» в конец / etc / profile, что приведет вашего пользователя в правильный домашний каталог. Надеюсь, на этом этапе вы сможете использовать automount для сопоставления домашнего каталога с правильным сервером NFS.
Я согласен с Марком, лучше всего будет изменить запись в LDAP.
Если вы не можете этого сделать, я могу предложить кое-что, что является серьезным взломом, но выполнит свою работу:
Вместо того, чтобы выполнять поиск непосредственно в LDAP, используйте nsscache для получения пользовательских данных из LDAP. Затем в том же задании cron, которое будет периодически обновлять кеш, добавьте сценарий, который перепишет атрибут домашнего каталога для пользователей на тот, который вам нужен. Вы также можете сделать это, напрямую изменив исходный код nsscache.
Вы можете использовать аналогичный метод для изменения оболочки по умолчанию.
Это также будет иметь приятный побочный эффект в виде уменьшения / почти полного устранения запросов к вашему серверу LDAP :)
Вы настроили NSS для прямой связи с сервером LDAP, или вы используете прокси, например nslcd
? Если это так, изучите настройку прокси-сервера для перезаписи атрибута домашнего каталога пользователя. Например, в nslcd.conf
вы можете заявить:
map passwd homeDirectory "/home/$uid"
Что делает очевидную вещь.