FreeIPAを私のネットワークのIDMソフトウェアとして設定し、Kerberos対応NFSサーバーとKerberos対応NFSクライアントを正常に構成しました。ユーザーがコンピュータにログインすると、NFSサーバーのユーザーディレクトリはautofsを介してローカルコンピュータnfs:/srv/nfs/home/userdir
に自動的にマウントされます。/home/userdir
私が直面している問題は、1台のコンピュータでローカルユーザー(gitユーザーなど)を作成する必要がある場合は、次のことができないことです。根/home/git
ユーザーは次のようにgitユーザー用の新しいホームディレクトリを作成します。useradd: cannot create directory /home/git
私のauto.homeマップは次のように構成されています。* nfs:/srv/nfs/home/&
任意のユーザーとしてログインすると、ユーザーのホームディレクトリだけが私のauto.masterマップの下にマウントされ、私の/home
auto.masterマップには次のエントリがあります。/home auto.home
出力はmount
次のとおりです。
auto.home on /home type autofs (rw,relatime,fd=6,pgrp=651,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=15731)
nfs:/srv/nfs/home/userdir on /home/userdir type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=krb5,clientaddr=10.110.29.100,local_lock=none,addr=10.110.29.107)
他のファイルシステムやデバイスに関する不要な情報は省略しました。
ホームディレクトリの getfacl は次を返します。
file: home
owner: root
group: root
user::rwx
group::r-x
other::r-x
これで、私の質問は、この設定により、自分のローカルルートアカウントが自分のコンピュータにローカルホームディレクトリを作成するのを防ぐことができるかどうかです。
答え1
はい、現在の設定ではNFSマウントポイントの自動マウントマップを定義/home
しているため、以下のローカルユーザー用のローカルホームディレクトリを作成できません。/home
NFS は Kerberos を認識するため、ユーザーが NFS インストールのホームディレクトリにアクセスするには、少なくとも Kerberos キータブが必要で、キータブはユーザーのホームディレクトリに保存されます。これは鶏肉か卵か問題のようです。
ただし、名前付きローカルユーザーのホームディレクトリはgit
下にある必要はありません。たとえば、次のよう/home
になります。/home.local/git
この質問にタグ付けし、rhel
RHELはデフォルトでSELinuxを使用しているため、実際のホームディレクトリに適切なSELinuxラベルを適用する必要があることを知りたい場合があります。および対応する親ディレクトリ。
git
ホームディレクトリをに設定するには、/home.local/git
まずSELinuxラベルを次のように準備する必要があります。
semanage fcontext -a -t home_root_t -f d /home.local
semanage fcontext -a -t user_home_dir_t -f d '/home.local/[̂^/]+'
semanage fcontext -a -t user_home_t '/home.local/[^/]+/.+'
mkdir /home.local
restorecon -rv /home.local
つまり、すぐ下のすべてのディレクトリ/home.local
はhome_root_t
を取得し、user_home_dir_t
そのディレクトリより深いすべてのファイルとディレクトリはを取得しますuser_home_t
。同様のラベル付け規則がすでに一般に存在します/home
。
その後、git
ユーザーを作成できます。
useradd -d /home.local/git -m [any other options] git
あるいは、ユーザーがすでに存在し、ホームディレクトリの作成に失敗した場合は、ホームディレクトリパスを変更して実際のホームディレクトリを手動で作成できます。
usermod -d /home.local/git git
cp -a /etc/skel /home.local/git
chown -R git: /home.local/git
chmod 700 /home.local/git # or according to requirements