web-dev-qa-db-ja.com

間違ったSelinuxコンテキストで作成されたホームディレクトリ

[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コンテキストを修正できますが、これにより複数のサーバーで問題が発生します。

そもそもコンテキストが間違っていた理由は何でしょうか?

3
ujjain

問題はここにあるようです:

[root@tst-01 ~]# grep homedir /etc/pam.d/system-auth
session     optional      pam_mkhomedir.so skel=/etc/skel

Pamスタックはhomedirを作成するべきではないため、必要なアクセス許可が少なく、SELinuxで適切に機能するため、代わりにpam_oddjob_mkhomedirモジュールを使用して負荷の高い作業を行うために奇数ジョブモジュールを使用する必要があります。

3
ujjain

それに遭遇するかもしれない将来の人々のためにこの質問に追加します。 NFS共有にホームディレクトリを配置する場合は、正しいSELinuxコンテキストを設定する必要があります。 nfsホームディレクトリが/ nfshomeであると想定して、次の手順を実行します。

 [root @ Host /]#semanage fcontext -a -e/home/nfshome 
 [root @ Host /]#restorecon -vR/nfshome
6
Python Novice

ユーザーの$HOMEディレクトリの場合、通常は/home/$USERで、ファイルとディレクトリのセキュリティコンテキストを変更するchconを使用する必要はありません。ポリシーから、そして、価値があるもののために、システムの再ラベル付けを生き残ることはできません。むしろ、ディレクトリの予想されるセキュリティコンテキストを確認する必要があります。

# matchpathcon /home/ujjain
# matchpathcon /home/johndoe

コンテキストがls -lrtZの出力と一致しない場合は、コンテキストを復元します。

# restorecon -v /home/ujjain
# restorecon -v /home/johndoe

restoreconは再帰的に使用できることに注意してください-R

質問に関して、このディレクトリのラベルが間違っている理由は、ディレクトリの作成に使用した手順(指定しなかった)と/homeディレクトリの場所(ローカルファイルシステムとNFSなど)によって異なります。

5
dawud