[root@tst-01 home]# ls -Z
drwxr-xr-x. ujjain users system_u:object_r:home_root_t:s0 ujjain
drwxr-xr-x. johndoe users system_u:object_r:home_root_t:s0 johndoe
Selinuxコンテキストはobject_r:user_home_dir_tである必要があります。
[root@tst-01 ~]# sesearch -T -t home_root_t
Found 10 semantic te rules:
type_transition oddjob_mkhomedir_t home_root_t : dir user_home_dir_t;
type_transition automount_t home_root_t : dir automount_tmp_t;
type_transition lsassd_t home_root_t : dir user_home_dir_t;
type_transition useradd_t home_root_t : dir user_home_dir_t;
type_transition firstboot_t home_root_t : dir user_home_dir_t;
type_transition smbd_t home_root_t : dir user_home_dir_t;
type_transition quota_t home_root_t : file quota_db_t;
type_transition sysadm_t home_root_t : dir user_home_dir_t;
type_transition cups_pdf_t home_root_t : dir user_home_dir_t;
type_transition postfix_virtual_t home_root_t : dir user_home_dir_t;
[root@tst-01 ~]#
新しいホームディレクトリが間違ったSelinuxコンテキストで作成されます。 chconでselinuxコンテキストを修正できますが、これにより複数のサーバーで問題が発生します。
そもそもコンテキストが間違っていた理由は何でしょうか?
問題はここにあるようです:
[root@tst-01 ~]# grep homedir /etc/pam.d/system-auth
session optional pam_mkhomedir.so skel=/etc/skel
Pamスタックはhomedirを作成するべきではないため、必要なアクセス許可が少なく、SELinuxで適切に機能するため、代わりにpam_oddjob_mkhomedirモジュールを使用して負荷の高い作業を行うために奇数ジョブモジュールを使用する必要があります。
それに遭遇するかもしれない将来の人々のためにこの質問に追加します。 NFS共有にホームディレクトリを配置する場合は、正しいSELinuxコンテキストを設定する必要があります。 nfsホームディレクトリが/ nfshomeであると想定して、次の手順を実行します。
[root @ Host /]#semanage fcontext -a -e/home/nfshome [root @ Host /]#restorecon -vR/nfshome
ユーザーの$HOME
ディレクトリの場合、通常は/home/$USER
で、ファイルとディレクトリのセキュリティコンテキストを変更するchcon
を使用する必要はありません。ポリシーから、そして、価値があるもののために、システムの再ラベル付けを生き残ることはできません。むしろ、ディレクトリの予想されるセキュリティコンテキストを確認する必要があります。
# matchpathcon /home/ujjain
# matchpathcon /home/johndoe
コンテキストがls -lrtZ
の出力と一致しない場合は、コンテキストを復元します。
# restorecon -v /home/ujjain
# restorecon -v /home/johndoe
restorecon
は再帰的に使用できることに注意してください-R
。
質問に関して、このディレクトリのラベルが間違っている理由は、ディレクトリの作成に使用した手順(指定しなかった)と/home
ディレクトリの場所(ローカルファイルシステムとNFSなど)によって異なります。