是否可以查詢 /etc/passwd 檔案以查看所有小於 200 的使用者 UIDS 並檢查這些使用者是否在 /etc/ftpusers 等檔案中?
到目前為止,我已經成功編寫了下面的命令,列出了 UID 低於 200 的所有用戶,但我不確定如何檢查這些列出的用戶是否在 /etc/ftpusers 文件中。
grep -Ev "^\+" /etc/passwd | awk -F: '($3 < 200) {print $1}'
如果文件中沒有任何用戶,我需要輸出差異。我嘗試過使用 for 語句,但效果不佳。
答案1
我不知道是否aix diff
有相同的選項GNU diff
,但在我的this 中使用(預設 shell )工作linux
執行時:ksh
aix
diff -I "^#" --new-line-format="" --unchanged-line-format="" <(awk -F: '$3 < 200 {print $1}' /etc/passwd) /etc/ftpusers
如果diff
命令不同,請嘗試使用循環:
for u in $(awk -F":" '$3 < 200 {print $1}' /etc/passwd); do
count=$(grep -scx "$u" /etc/ftpusers)
[ "$count" -gt 0 ] || echo "$u"
done
我已經測試過它ksh
並且它有效。
我還檢查了分佈式惠特grep
中可用的選項,它支援計數和抑制錯誤訊息。grep
aix
-c
-s