首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用autofs在IPA服务器上装载NFS共享

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

Stack Overflow用户
提问于 2017-02-12 09:39:59
回答 1查看 1.5K关注 0票数 1

我设置了IPA服务器和客户端,并在两者上安装了NFS和autofs。每当我使用ipa user-add创建用户,然后切换到该用户时,IPA都会为该用户创建一个主目录并显示Creating home directory for user。我想让autofs设置主目录,这样IPA就不需要这样做了。我的IPA服务器还充当NFS服务器,我在/etc/exports中添加了/home,并将其指向我的客户机。我的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并尝试创建一个用户,但是当我现在切换到用户时,我得到了消息warning: cannot change directory to /home/user: No such file or directory我做错了什么?

EN

Stack Overflow用户

发布于 2018-10-18 21:39:59

autofs的IPA配置使用户home被挂载,而不是用户home的根目录。这意味着在您的示例中,autofs正在尝试挂载/mnt/nfs/home/newuser。

AFAIK他们不是这个鸡/蛋问题的官方解决方案。Free-ipa目前正在开发一个钩子/回调系统,旨在为那些老的、众所周知的“有问题的”提供一个解决方案。

由于此更新还不可用,因此惟一的方法是设置一个cron脚本,该脚本调用IDM服务器的LDAP服务并创建新的主目录。但没有人看到有发布代码来做到这一点。

以下是我为此创建的bash脚本。我在设置为每分钟的cron中运行它。

代码语言:javascript
运行
复制
#!/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

我的设置和你的有点不同,我的nfs服务器和我的IDM不在同一台服务器上。您只需注释mount/umount行并将路径更改为您的路径,它就会工作得很好。

考虑编写类似的代码来擦除/存档已删除的帐户。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42183332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档