리눅스 박스에서 루트 권한을 가진 모든 사용자를 나열하려면 어떻게해야합니까?
리눅스 박스에서 루트 권한을 가진 모든 사용자를 나열하려면 어떻게해야합니까?
답변:
루트 비밀번호를 변경하는 것을 잊지 마십시오. root 외에 UID 0을 가진 사용자가 있으면 안됩니다. 나쁜 생각. 확인하다:
grep 'x:0:' /etc/passwd
다시 말하지만이 작업을 수행하지 말고 사용자가 루트 그룹의 구성원인지 확인하십시오.
grep root /etc/group
누구나 루트로 명령을 실행할 수 있는지 확인하려면 sudoers를 확인하십시오.
cat /etc/sudoers
루트 권한으로 프로그램을 실행할 수있는 SUID 비트를 확인하려면 다음을 수행하십시오.
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd
입니다. 특히 SUID를 확인하는 경우 +1입니다.
누가 UID 0인지 확인하려면 :
getent passwd 0
확인하려면 누가 그룹에 root
, wheel
adm
그리고 admin
:
getent group root wheel adm admin
구성원 인 모든 사용자 및 그룹을 나열하려면 다음을 수행하십시오.
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
은 실제로 정확합니다. / etc / sudoers를 확인하는 것을 잊지 마십시오.
순수 루트는 사용자 ID "0"입니다.
시스템의 모든 사용자는 / etc / passwd 파일에 있습니다.
less /etc/passwd
루트 사용자는 사용자 ID로 "0"(세번째 열)을 갖습니다. 그룹 (4 번째 열)이 "0"인 사용자에게는 일부 루트 권한이있을 수 있습니다.
다음으로 그룹을 살펴보고 "루트"또는 "휠"또는 "관리자"그룹의 추가 구성원 인 사람을 확인하십시오.
less /etc/group
해당 그룹에 나열된 사용자는 특히 "sudo"명령을 통해 일부 루트 권한을 가질 수 있습니다.
마지막으로 "sudo"구성을 확인하고이 명령을 실행할 권한이있는 사용자를 확인하십시오. 이 파일 자체는 잘 문서화되어 있으므로 여기서 재현하지 않습니다.
less /etc/sudoers
그것은 루트 액세스 권한을 가진 사람의 주요 영역을 다룹니다.
consolehelper
and PackageKit
.)
getent passwd
정의 된 데이터베이스에 관계없이 모든 시스템 사용자 (루트 포함)를 암호 형식으로 나열해야합니다.
모든 사용자를 인쇄하려면
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
다른 사람들이 말했듯이 UID 0을 가진 사용자 만 인쇄하려면 암시 적 루트 권한이있는 사용자 :
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
대신 사용하십시오 . 첫 번째 "모든 사용자 인쇄"예제의 경우 다음과 같이 시도하십시오.getent passwd | perl -naF: -e 'print "$F[0]\n"'
모든 사용자의 빠른 목록을 보려면 passwd
명령 다음에 공백을 입력 한 후 탭을 두 번 누르십시오 (자동 완성) . 이것은 su
명령과 함께 작동 합니다.
루트 권한이있는 사용자로 수행해야합니다.