/etc/nsswitch.conf
에 다음이있는 경우 :
passwd: files ldap
이 줄을 입력하고 getent passwd
를 실행하면 먼저 /etc/passwd
이 실행됩니다. 목록을 표시 한 다음 LDAP의 모든 사용자를 살펴 볼까요? 그런 일이 일어난 것 같습니다.
Red Hat 서버에서 시도해 보았는데 /etc/passwd
가 36 줄에 불과할 때 수천 줄을 스크롤했습니다.
댓글
답변
getent
지정한 “데이터베이스”에 대한 결과를 반환합니다. /etc/nsswitch.conf
의 내용을 기반으로이 “데이터베이스”를 구성 할 때 사용할 백엔드를 결정합니다.
getent
사용 페이지 (getent --help
)를 쿼리하면 “데이터베이스”가 나열됩니다.
Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow
내가 아는 한, wa가 없습니다. y는 /etc/nsswitch.conf
에 구성된 다양한 백엔드에 대한 모든 결과를 제공하는 동작을 비활성화합니다.
getent
및 /etc/nsswitch.conf
는 모두 nss (Name Service Switch)의 일부입니다.
nss man 페이지에서 발췌
암호 또는 그룹 데이터베이스와 같은 시스템 데이터베이스에서 데이터를 검색하는 함수에 대한 각 호출은 GNU C 라이브러리의 이름 서비스 스위치 구현에 의해 처리됩니다. 제공되는 다양한 서비스는 독립적 인 모듈로 구현되며 각 모듈은 자연스럽게 서로 크게 다릅니다.
GNU C 라이브러리와 함께 제공되는 기본 구현은 기본적으로 보수적이며 안전하지 않은 데이터를 사용하지 않습니다. 특히 데이터베이스가 큰 경우 일부 상황에서는 비용이 많이들 수 있습니다. 일부 모듈은 안전하다고 알려진 경우 시스템 관리자가 바로 가기 사용을 요청할 수 있습니다. 그런 다음 가정이 올바른지 확인하는 것은 시스템 관리자의 책임입니다.
시간이 지남에 따라 구현이 변경된 다른 모듈이 있습니다. 구현이 메모리 소비를 위해 속도를 희생하는 데 사용되는 경우 문제가 발생할 수 있습니다. 환경 설정이 바뀝니다.
백엔드
여러 가지가 있습니다. 여기에서 다루기에는 너무 많습니다. sssd
(sss / LDAP), NIS 및 NIS +와 같은 백엔드입니다.
따라서 시스템이
파일은 getent passwd
과 같이 주어진 "데이터베이스"를 쿼리 할 때 getent
가 표시하는 출력에 영향을줍니다. div>.
참조
댓글
- sssd 하우투 링크가 종료되었습니다.
- @GhostLyrics-변경된 링크
답변
예, getent passwd
라고 말하면 nsswitch에 나열된 모든 데이터베이스에서 찾을 수있는 모든 사용자가 나열됩니다.
댓글
- 열거를 활성화하는 NSS 공급자에만 해당됩니다. 예를 들어
sss
를 사용하면 일부 도메인에 대한 열거를 비활성화 할 수 있습니다.
getent passwd
에 모든 사용자 (로컬 + ldap)