Centos7 如何使用autofs在IPA服务器上装载NFS共享

Centos7 如何使用autofs在IPA服务器上装载NFS共享,centos7,nfs,freeipa,Centos7,Nfs,Freeipa,我设置了IPA服务器和客户端,并在两者上安装了NFS和autofs。每当我使用ipa user add创建一个用户,然后切换到该用户时,ipa都会为该用户创建一个主目录,并显示为用户创建主目录。我想让autofs设置主目录,这样IPA就不需要了。我的IPA服务器还充当NFS服务器,我将/home添加到我的/etc/exports中,并将其指向我的客户机。我的IPA客户端用作我的NFS客户端,它在/mnt/NFS/home上安装了/home。在我的客户机上,我进入/etc/auto.master并

我设置了IPA服务器和客户端,并在两者上安装了NFS和autofs。每当我使用ipa user add创建一个用户,然后切换到该用户时,ipa都会为该用户创建一个主目录,并显示
为用户创建主目录
。我想让autofs设置主目录,这样IPA就不需要了。我的IPA服务器还充当NFS服务器,我将
/home
添加到我的
/etc/exports
中,并将其指向我的客户机。我的IPA客户端用作我的NFS客户端,它在
/mnt/NFS/home
上安装了
/home
。在我的客户机上,我进入/etc/auto.master并添加了一行/home/etc/auto.misc。然后我在/etc/auto.misc中添加了以下行:
*-fstype=nfs:nameofserver.example.home:/mnt/nfs/home
。在这一切之后,我重新启动了autofs并尝试创建一个用户,但当我现在切换到用户时,我收到一条消息
警告:无法将目录更改为/home/user:没有这样的文件或目录
我做错了什么?

autofs的IPA配置使用户home不是安装在用户home的根目录上。这意味着在您的情况下,autofs正在尝试挂载/mnt/nfs/home/newuser

好了,他们没有正式的解决鸡/蛋问题的办法。Free ipa目前正在开发一个钩子/回调系统,该系统应该能够为那个众所周知的老问题提供解决方案

由于此更新还不可用,唯一已知的方法是设置一个cron脚本,调用IDM服务器的LDAP服务并创建新主页。但似乎没有人发布代码来做到这一点

下面是我为此制作的bash脚本。我在cron中运行它,设置为每分钟一次

#!/bin/bash
TIMEFILE=/root/scripts/data/ldap_last_check.txt
LASTTIME=$(cat $TIMEFILE)
CURRENTTIME=$(date +%Y%m%d%H%M%SZ)
echo $LASTTIME
NEWUSERLIST=$(/usr/bin/ldapsearch -LLL -x  -h localhost -b "cn=users,cn=accounts,dc=domain,dc=com" "(createTimestamp>=$LASTTIME)" uid)
UID_REGEX="^uid:"

mount filesrv:/srv/idmhome /mnt/idmhome
OLDUSERLIST=$(ls -1 /mnt/idmhome)


while read -r i_line; do
    HOME_EXIST=false
    if [[ $i_line =~ $UID_REGEX ]]; then
        TMPUSER="$(echo $i_line | awk '{print $NF}')"
        while read -r j_line; do
            if [[ $TMPUSER = $j_line ]]; then
                HOME_EXIST=true
            fi
            if [[ $TMPUSER = "admin" ]]; then
                HOME_EXIST=true
            fi
        done <<< "$OLDUSERLIST"
        if ! $HOME_EXIST; then         
            mkdir /mnt/idmhome/$TMPUSER
            cp /etc/skel/.* /mnt/idmhome/admin/
            chown -R $TMPUSER:$TMPUSER /mnt/idmhome/$TMPUSER/
            ls -lah /mnt/idmhome/$TMPUSER
        fi
    fi

done <<< "$NEWUSERLIST"

umount /mnt/idmhome
echo $CURRENTTIME > $TIMEFILE
#/bin/bash
TIMEFILE=/root/scripts/data/ldap\u last\u check.txt
LASTTIME=$(cat$时间文件)
当前时间=$(日期+%Y%m%d%H%m%SZ)
echo$上次
NEWUSERLIST=$(/usr/bin/ldapsearch-LLL-x-h localhost-b“cn=users,cn=accounts,dc=domain,dc=com”“(createTimestamp>=$LASTTIME)”uid)
UID\u REGEX=“^UID:”
安装文件RV:/srv/idmhome/mnt/idmhome
OLDUSERLIST=$(ls-1/mnt/idmhome)
在读-读i_行时;做
HOME\u EXIST=false
如果[$i_行=~$UID_正则表达式]];然后
TMPUSER=“$(echo$i|u行| awk'{print$NF}”)”
当读-r j_行时;做
如果[$TMPUSER=$j_行]];然后
HOME\u EXIST=true
fi
如果[$TMPUSER=“admin”];然后
HOME\u EXIST=true
fi
完成