Ми використовуємо SSSD для аутентифікації користувачів на серверах CentOS. oddjobd-mkhomedir прекрасно працює, коли домашній каталог за замовчуванням є / home, але на певному сервері нам довелося змінити домашній каталог за замовчуванням на / data, який знаходиться на кріпленні SAN.
Тепер, кожного разу, коли користувач намагається увійти, вони потрапляють у bash shell із наступним повідомленням.
Creating home directory for first.last.
Could not chdir to home directory /data/X.Y.local/first.last: No such file or directory
-bash-4.1$
Я бачу таке повідомлення про відмову AVC для кожної спроби:
type=AVC msg=audit(1492004159.114:1428): avc: denied { create } for pid=2832
comm="mkhomedir" name="x.y.local"
scontext=system_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023
tcontext=system_u:object_r:default_t:s0 tclass=dir
Обов’язково змінив контекст для / даних.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Якщо / data має той же контекст, що і / home, чому SELinux обмежує oddjobd створювати /data/XYlocal/first.last?
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
[ОНОВЛЕННЯ]
Не впевнений, що це правильний спосіб вирішити це, але після додавання наступних трьох записів користувач тепер може увійти та потрапити до своїх домашніх каталогів. Для нових каталогів користувачів створюються засновані на контексті, визначеному нижче.
semanage fcontext -a -t home_root_t /data
semanage fcontext -a -t user_home_dir_t /data/x.y.local
semanage fcontext -a -t user_home_t "/data/x.y.local(/.*)?"
Це правильний спосіб подолати цю проблему?