/etc/sudoers에서 사용자 목록과 액세스 수준만 인쇄하는 방법은 무엇입니까?

/etc/sudoers에서 사용자 목록과 액세스 수준만 인쇄하는 방법은 무엇입니까?

우리는 여러 대의 서버를 가지고 있으며 bash를 사용하여 사용자 목록과 액세스 수준을 인쇄하고 싶습니다.

아래 명령을 시도했지만 원하는 정확한 결과를 얻을 수 없습니다.

awk '/Allow root/{p=5} p > 0 {print $1; p--}'   /etc/sudoers

위 명령은 아래와 같이 5개의 항목을 제공합니다.

## 
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

하지만 여전히 공백으로 구분된 출력이 표시됩니다. 출력에서 해당 공백을 건너뛰고 싶습니다.

관련 정보