我們有多個伺服器,我想使用 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
但我仍然得到空格分隔的輸出。我想跳過輸出中的空格。