
[英]Linux CentOS 7 autofs does not mount network share after reboot
[英]How to use autofs to mount an NFS share on IPA server
我设置了 IPA 服务器和客户端,两者都安装了 NFS 和 autofs。 每当我使用 ipa user-add 创建用户,然后切换到该用户时,IPA 都会为该用户创建一个主目录并显示Creating home directory for user
。 我想让 autofs 改为设置主目录,这样 IPA 就不需要了。 我的 IPA 服务器也充当 NFS 服务器,我将/home
添加到我的/etc/exports
并将其指向我的客户端机器。 我IPA客户端作为我的NFS客户端,它拥有/home
安装/mnt/nfs/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
我做错了什么?
autofs 的 IPA 配置使用户 home 挂载而不是用户 home 的 root。 这意味着在您的情况下,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 行并将路径更改为您的路径,它应该可以正常工作。
考虑制作一个类似的代码来擦除/归档已删除的帐户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.