У меня есть сценарий bash здесь, который я пытаюсь изменить, чтобы проверить, есть ли только один идентификатор root, является ли он уязвимым и в настоящее время, этот скрипт проверяет только, есть ли дублирующий uid и отображать пользователей, которые имеют один и тот же uid , Заранее спасибо! :)Bash: как проверить, есть ли только один идентификатор корня, и все пользовательские UID уникальны?
Bash сценария:
#!/bin/bash
/bin/cat /etc/passwd| /bin/cut -f3 -d":" | /bin/sort -n | /usr/bin/uniq-c | while
read x ; do
[ -z "${x}" ] && break
set -$x
if [ $1 -gt1 ]; then
users=`/bin/gawk -F: '($3 == n) { print $1 }' n=$2 /etc/passwd| /usr/bin/xargs`
echo "Duplicate UID ($2): ${users}"
fi
done
Ожидаемый результат:
Audit criteria: There is only one root id
Vulnerability: Yes
Details: See below
root:!:0:0::/:/usr/bin/bash
jdoe:*:0:1:John Doe:/home/jdoe:/usr/bin/bash
Я предлагаю заменить 'Uniq-c' на' Uniq -c' и пожалуйста, смотрите: http://www.shellcheck.net/ – Cyrus
Есть причина, по которой вы используете полные пути для основных команд, таких как 'cut',' grep', 'awk' и т. д.? – codeforester
@codeforester это был пример, предоставленный мне, и, поскольку я стал новичком в сценариях bash, я не понял его, пока вы не указали его, спасибо за вход! –