UNIX 서버에 액세스할 수 있는 사용자(사람과 기계 모두)의 목록을 얻고 싶습니다. 운영 체제는 다음과 같습니다.
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
시도해 보았 cat /etc/passwd
으나 getent passwd
두 목록 모두 완전하지 않았습니다. /home에 폴더를 소유한 많은 사용자는 위 두 명령의 출력에 나타나지 않습니다.
id <username>
폴더가 있지만 이 명령의 출력에는 존재하지 않는 사용자 이름을 실행했으며 사용자가 존재했음을 증명하는 유효한 출력을 얻었습니다.
그렇다면 서버의 "모든" 사용자 목록을 어떻게 얻을 수 있습니까?
추신: sudo 액세스 권한이 있습니다.
산출
~> grep passwd /etc/nsswitch.conf
passwd: files sss
EDIT1: 좀 더 조사한 결과 이 서버가 IPA를 사용한다는 것을 알았습니다. 나는 도망 갔다 ipa user-find
. 여기에는 2K 사용자가 나열되어 있습니다. 이는 IPA를 통해 생성된 사용자의 전체 목록이지만 반드시 모든 사용자가 특정 서버에 액세스할 수 있는 것은 아닙니다.
추가 배경 정보:
대부분의 인간 사용자는 SSH 또는 ID + 비밀번호를 통해 로그인합니다.
서버는 IT/서버 팀에서 유지 관리하지 않으며, 상용 사용자가 서버를 소유합니다. 서버와 시스템에 대한 깊은 지식이 없는 사람들이 그 위에 사용자를 만듭니다. 최근에 sudo 액세스 권한을 얻었고 서버를 약간 "정리"해야 했습니다. 더 이상 액세스 권한이 없는 사용자를 제거하고, 보관할 수 있는 데이터를 식별하고, 적절한 UNIX 그룹을 만들어 데이터에 대한 액세스를 격리해야 했습니다.