This commit is contained in:
2026-05-11 09:15:08 +02:00
parent 9bec2b9e42
commit 404ee3fec4
641 changed files with 416825 additions and 0 deletions
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
{
output="" output2=""
perm_mask='0177'
maxperm="$(printf '%o' $((0777 & ~$perm_mask)))"
valid_shells="^($(sed -rn '/^\//{s,/,\\\\/,g;p}' /etc/shells | paste -s -d '|' - ))$"
awk -v pat="$valid_shells" -F: '$(NF) ~ pat { print $1 " " $(NF-1) }' /etc/passwd | (
while read -r user home; do
if [ -f "$home/.netrc" ]; then
mode="$(stat -L -c '%#a' "$home/.netrc")"
if [ $(($mode & $perm_mask)) -gt 0 ]; then
output="$output\n - User \"$user\" file: \"$home/.netrc\" is too permissive: \"$mode\" (should be: \"$maxperm\" or more restrictive)"
else
output2="$output2\n - User \"$user\" file: \"$home/.netrc\" exists and has file mode: \"$mode\" (should be: \"$maxperm\" or more restrictive)"
fi
fi
done
if [ -z "$output" ]; then
if [ -z "$output2" ]; then
echo -e "\n-PASSED: - No local interactive users have \".netrc\" files in their home directory\n"
else
echo -e "\n- WARNING:\n$output2\n"
fi
else
echo -e "\n- FAILED:\n$output\n"
[ -n "$output2" ] && echo -e "\n- WARNING:\n$output2\n"
fi
)
}