Как назначить имя учетной записи пользователя и каталог для массива в Bash / sh? - PullRequest
0 голосов
/ 12 ноября 2019

Я пытаюсь создать сценарий bash для теста STIG с идентификатором уязвимости V-72017 в системе Red Hat Enterprise Linux (RHEL). Мне поручено убедиться, что все пользовательские разрешения имеют восьмеричное значение 0750 или меньше

У меня есть возможность собрать восьмеричное значение разрешения пользователя с помощью

    stat -c "%a" /home/$username

Я пытаюсьсоздайте массив $ username (или directory), используя команду (выводит имя каждого пользователя в системе):

    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.

1 Ответ

0 голосов
/ 12 ноября 2019

Вы нашли всех пользователей логина. Regexp можно использовать для проверки разрешений home dir.

echo "Users: "                                                                   
(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                                                                               
  echo $line                                                                     
  perm=$(stat -c "%a" /home/$line)                                               
  [[ "$perm" =~ [0-7][0,1,4,5][0] ]] || echo "Exit fail: $line has permission octal value $perm"                                                                            
done

Может быть, вы хотите настроить форму вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...