无法创建 LDAP 用户的主目录

无法创建 LDAP 用户的主目录

我有一台 Fedora Linux 服务器,连接到 LDAP,但我无法以普通用户身份登录。

我仍然可以以 root 身份登录,但即便如此,我也无法创建普通用户的主目录。LDAP 配置为自动挂载用户的主目录,但这似乎没有发生。遗憾的是,mkdir 没有给我有用的错误消息。例如

[myuser@localhost ~]# ssh myuser@otherhost
Connection closed by otherhost
[myuser@localhost ~]# ssh root@otherhost
[root@otherhost ~]# cd /home
[root@otherhost home]# ls
[root@otherhost home]# mkdir myuser
mkdir: cannot create directory `myuser': No such file or directory

导致此错误的原因是什么?

我怀疑 LDAP 出了问题,导致目录无法创建。但是,我不确定从哪里开始研究这个问题,因为我没有看到任何有用的错误消息。

我该如何调查这个问题?用 Google 搜索“创建主目录的问题”只会得到一百万条关于使用 的条目mkdir -p,这毫无帮助。

编辑:otherhost:/etc/fstab 包含以下行,它定义了 /home 的挂载点:

/dev/mapper/vg_otherhost-lv_home /home                   ext4    defaults        1 2

编辑:vgdiplay 输出

[root@otherhost ~]# vgdisplay -v
    Finding all volume groups
    Finding volume group "vg_otherhost"
  --- Volume group ---
  VG Name               vg_otherhost
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               149.50 GiB
  PE Size               32.00 MiB
  Total PE              4784
  Alloc PE / Size       4784 / 149.50 GiB
  Free  PE / Size       0 / 0   
  VG UUID               UnbJdL-v1XY-2HzI-QoHQ-jwtD-0U6N-Nuh66I

  --- Logical volume ---
  LV Name                /dev/vg_otherhost/lv_root
  VG Name                vg_otherhost
  LV UUID                m1Lp6A-SHqa-V3Of-r8GS-TpE6-R42B-M99DbQ
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             1600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/vg_otherhost/lv_home
  VG Name                vg_otherhost
  LV UUID                pqxV47-8QyV-gFpi-xAdn-gfIq-wdV3-rkIeXN
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                93.66 GiB
  Current LE             2997
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Name                /dev/vg_otherhost/lv_swap
  VG Name                vg_otherhost
  LV UUID                f4tqzv-cxEh-rlmU-mByY-RdkM-V1Iz-o4gCRv
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                5.84 GiB
  Current LE             187
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Physical volumes ---
  PV Name               /dev/sda2     
  PV UUID               lQDn1b-emBB-b75e-e6kt-KxBu-OheR-mB12Ac
  PV Status             allocatable
  Total PE / Free PE    4784 / 0

Autofs 似乎正在运行。

/etc/auto.master 的内容:

/misc   /etc/auto.misc
/net    -hosts
+auto.master

/etc/auto.misc 的内容:

cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

/etc/auto.net 的内容:

#!/bin/bash

key="$1"

opts="-fstype=nfs,hard,intr,nodev,nosuid"

for P in /bin /sbin /usr/bin /usr/sbin
do
    for M in showmount kshowmount
        do
            if [ -x $P/$M ]
                then
                        SMNT=$P/$M
                        break
                fi
        done
done

[ -x $SMNT ] || exit 1

SHOWMOUNT="$SMNT --no-headers -e $key"

$SHOWMOUNT | LC_ALL=C sort -k 1 | \
        awk -v key="$key" -v opts="$opts" -- '
        BEGIN   { ORS=""; first=1 }
                { if (first) { print opts; first=0 }; print " \\\n\t" $1, key ":" $1 }
        END     { if (!first) print "\n"; else exit 1 }
        ' | sed 's/#/\\#/g'

/etc/auto.smb 的内容:

#!/bin/bash

key="$1"
opts="-fstype=cifs"

for P in /bin /sbin /usr/bin /usr/sbin
do
    if [ -x $P/smbclient ]
        then
                SMBCLIENT=$P/smbclient
                break
        fi
done

[ -x $SMBCLIENT ] || exit 1

$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
        /Disk/  {
                  if (first)
                        print opts; first=0
                  dir = $2
                  loc = $2
                  # Enclose mount dir and location in quotes
                  # Double quote "$" in location as it is special
                  gsub(/\$$/, "\\$", loc);
                  gsub(/\&/,"\\\\&",loc)
                  print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
                }
        END     { if (!first) print "\n"; else exit 1 }
        '

/etc/sysconfig/autofs 的内容:

TIMEOUT=300
BROWSE_MODE="no"
MOUNT_NFS_DEFAULT_PROTOCOL=4
USE_MISC_DEVICE="yes"

答案1

请包含 的输出vgdisplay -v。如果 autofs 正在运行 ( ps -ef | grep automount),请包含 /etc/auto.* 的内容和 autofs 配置文件(通常是 /etc/default/autofs 或 /etc/sysconfig/autofs)。

编辑:

有可能是

+auto.master

/etc/auto.master 中包含来自 LDAP(或 NIS)的 auto.master 映射,该映射将 /home 定义为自动挂载目录。为确保万无一失,您必须检查automount/etc/nsswitch.conf 和 autofs 配置文件中的条目。如果 nsswitch 定义为转到 nis,则需要运行ypcat -k auto.master;如果定义为转到 ldap,则需要使用ldapsearch适合您的 LDAP 服务器的选项运行 。

为了测试该理论,只需从 /etc/auto.master 中注释掉该行并重新启动 autofs。

自动挂载目录不允许您在顶层创建新的文件或目录,并且会给出与您尝试这样做时遇到的错误类似的错误。

相关内容