如何用Bash单行命令提取Kali中shell为/bin/false的用户及家目录
可用Bash单行命令
最优实现(单awk处理,无多余管道)
awk -F: '$7 == "/bin/false" {printf "The user %s home directory is %s\n", $1, $6}' /etc/passwd
逻辑说明:
- 以冒号为字段分隔符读取
/etc/passwd每一行 - 筛选第7字段(shell配置字段)等于
/bin/false的行 - 按要求格式输出第1字段(用户名)和第6字段(家目录)
原命令错误点
- 调用
cut -f 1 -d ":"仅保留了用户名,后续管道丢失了家目录、shell字段的全部内容 grep -v '/bin/false'为反向匹配,实际筛选出的是shell不为/bin/false的用户,与需求完全相反
兼容原思路的修改版命令
cat /etc/passwd | grep '/bin/false$' | cut -d: -f1,6 | awk -F: '{print "The user "$1" home directory is "$2}'
内容的提问来源于stack exchange,提问作者Alex Variance
相关产品推荐
相关产品推荐

