我有一台 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。
自动挂载目录不允许您在顶层创建新的文件或目录,并且会给出与您尝试这样做时遇到的错误类似的错误。