FreeIPA 自动挂载主目录阻止创建本地用户主目录

FreeIPA 自动挂载主目录阻止创建本地用户主目录

我已将 FreeIPA 设置为我的网络的 IDM 软件,并成功配置了支持 Kerberos 的 NFS 服务器和支持 Kerberos 的 NFS 客户端。当用户登录到计算机时,NFS 服务器上的用户目录会通过 autofs 自动挂载nfs:/srv/nfs/home/userdir/home/userdir本地计算机上。

我面临的问题是,当我需要在一台计算机上创建本地用户(例如 git 用户)时,我无法作为用户在 下为 git 用户创建一个新的主目录/home/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

现在,我的问题是,此设置是否会阻止我的本地 root 帐户在我的计算机上创建本地主目录?

答案1

是的,您当前的设置阻止您在...下为本地用户创建本地主目录/home,因为您已定义/home为 NFS 挂载点的自动挂载映射。由于 NFS 是 Kerberos 感知的,因此用户至少需要一个 Kerberos 密钥表才能访问 NFS 安装的主目录,并且该密钥表将存储在用户的主目录中。这似乎是一个先有鸡还是先有蛋的问题。

但名为 的本地用户的主目录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.localwill get home_root_t,紧接其下的每个目录都将 get user_home_dir_t,所有比该目录更深的文件和目录都将 get 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

相关内容