【发布时间】:2019-11-12 04:59:02
【问题描述】:
我正在尝试在 Red Hat Enterprise Linux (RHEL) 系统上为 STIG 测试创建一个漏洞 ID V-72017 的 bash 脚本。我的任务是确保所有用户权限的八进制值不超过 0750
我有能力通过使用来收集用户的权限八进制值
stat -c "%a" /home/$username
我正在尝试使用命令创建一个 $username(或目录)数组(输出系统上每个用户的名称):
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1
我计划将此输出映射到一个数组,可能是一个 while 循环。这是一个可能的解决方案吗?
来自以下的语法错误:
(eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1) | while read -r line
do
myarray+=line
stat -c "%a" /home/$line
done
所需的输出案例 1:
Users:
rob
bob
Exit Fail: bob has permission octal value 0755.
所需的输出案例 2:
Users:
rob
bob
Exit Pass: All users have permission octal value of 0750 or less.
【问题讨论】:
标签: bash command-line sh rhel user-accounts