У нас есть несколько серверов, и я хотел бы вывести список пользователей и уровень доступа с помощью bash.
Я попробовал команду ниже, но не смог получить именно тот результат, который хотел:
awk '/Allow root/{p=5} p > 0 {print $1; p--}' /etc/sudoers
команда выше просто даст мне пять записей, как показано ниже
##
root
abcd
ghfd
fcff
но я должен получить O/P, как показано ниже:
UserList AccessLevel
root ALL
abcd !/usr/bin/*
Могу ли я получить результат, как указано выше?
решение1
Проведя столько экспериментов, мне удалось добиться максимально близкого результата с помощью следующей команды.
grep "ALL=(ALL)" /etc/sudoers | awk '{ print $1 "\t""\t""\t" $3 $4}' | cut -d '#' -f1 | cut -d '%' -f1
и вывод такой:
xxxx ALL
xxxxxx ALL
xxxx ALL
xxxx NOPASSWD:ALL
abcd ALL
xxxx ALL
Но я все равно получаю вывод, разделенный пробелами. Я хочу пропустить эти пробелы в выводе.