gpt4 book ai didi

shell -/etc/passwd 中没有条目的 unix 主目录

转载 作者:行者123 更新时间:2023-12-02 00:45:57 25 4
gpt4 key购买 nike

我可以获得两个列表(/etc/passwd 和/home ),但如何编写类似读取/etc/passwd 行的脚本,解析主目录,然后在/home 中查找。如果不存在,则抛出错误,如果存在,则继续。

/etc/passwd 用户主目录列表

cut -d":" -f6 /etc/passwd | grep home | sort

来自/home 的用户列表

ls -1 /home | (while read line; do echo "/home/"$line; done)

也许可以将第一个命令的输出直接输出到文件中,然后将每一行读入查找命令中......或者,使用进行测试

if [ -d "$DIRECTORY" ]; then
echo "directory found for user that doesn't exist"
fi

现在如何将它们组合在一起......

编辑:isedev 正是我所需要的。我可能用错了我原来的信息……我们一直在清理用户,但没有清理他们的/home 目录。所以我想知道哪些/home 目录仍然存在但没有/etc/passwd 条目。

这对 T 来说是有效的

用于/home/* 中的名称;做
if [ -d "$name"];然后
剪切 -d':' -f6/etc/passwd | egrep -q "^$名称$"
如果 [ $? -ne 0];然后
echo“目录$name不对应于有效用户”


完成

从现在开始,我们将开始运行

userdel -r 登录

最佳答案

这将报告 /etc/passwd 中本应位于 /home 中但实际上不在的所有主目录:

cut -d":" -f6 /etc/passwd | grep home | sort | 
while read dir; do [ -e "$dir" ] || echo Missing $dir; done

这个报告了所有不存在的内容:

cut -d":" -f6 /etc/passwd | while read dir; do 
[ -e "$dir" ] || echo Missing $dir
done

关于shell -/etc/passwd 中没有条目的 unix 主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26243829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com