如何从 /etc/sudoers 仅打印用户列表和访问级别?

如何从 /etc/sudoers 仅打印用户列表和访问级别?

我们有多台服务器,我想使用 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

但是我仍然得到了空格分隔的输出。我想跳过输出中的空格。

相关内容