【问题标题】:How to use autofs to mount an NFS share on IPA server如何使用 autofs 在 IPA 服务器上挂载 NFS 共享
【发布时间】:2017-02-12 01:39:59
【问题描述】:

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

【问题讨论】:

    标签: centos7 nfs freeipa


    【解决方案1】:

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

    AFAIK 他们不是解决这个鸡/蛋问题的官方解决方法。 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
    

    我的设置与您的有点不同,我的 nfs 服务器与我的 IDM 不在同一台服务器上。您只需注释 mount/umount 行并将路径更改为您的,它应该可以正常工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2017-02-16
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多