/etc/passwd에 주석 줄이 허용되는지 여부

/etc/passwd에 주석 줄이 허용되는지 여부

RHEL 7.8에서는 빈 줄이 있을 수 있다는 것을 알고 있습니다./etc/passwd

하지만 주석 줄을 가질 수 있나요? 주석 줄은 무엇으로 시작합니까?

답변1

계정 데이터베이스 등을 처리하는 데 사용되는 musl C 라이브러리 루틴은 또는 파일에 어떤 종류의 주석도 getpwent()허용하지 않습니다 ./etc/passwd/etc/shadow도서관 코드어떠한 캐릭터도 해설자로 취급되지 않습니다. (또한 라인을 YP 플래그로 인식하지 않으며 +특수 태그를 전혀 허용하지 않습니다.)

당신이 가지고 있다면어느musl C 라이브러리에 대해 작성된 프로그램의 경우 이러한 파일에 주석을 추가하지 마십시오.

그러나 GNU C 라이브러리와 FreeBSD C 라이브러리는 모두하다댓글이 허용됩니다.

더 구체적으로:

GNU C 라이브러리 코드는 files모든 NSS 데이터베이스에 대한 소스 코드를 제공합니다.(설명서 참조) nsswitch.conf공백이 아닌 첫 번째 문자로 줄 주석을 허용합니다. 따라서 포함될 수 있는 것은 댓글 #만이 아닙니다 ./etc/passwd/etc/shadow

BSD에서는 이 /etc/passwd파일아니요계정 데이터베이스. BSD의 계정 데이터베이스아니요플랫 파일 데이터베이스이지만 Berkeley DB 파일(실제로는 두 /etc/pwd.db개의 합계 /etc/spwd.db)이며 Berkeley DB 파일의 특성상 주석을 허용하지 않습니다. /etc/master.passwd로 컴파일도구의 계정 데이터베이스 pwd_mkdb.

/etc/passwdBSD의 파일은 C 라이브러리 루틴에 의한 조회에 실제로 사용되지 않고 발행된 가상 역호환 파일 이며 더 나은 명령(C 라이브러리 쉘 스크립트를 래핑하는 명령) 보다는 직접 등을 사용하여 쉘 스크립트를 사용하는 사람들 pwd_mkdb만을 위한 것입니다. ).awk /etc/passwdgetent passwd

FreeBSD 및 그 파생물에 대해서는/etc/master.passwd댓글을 포함할 수 있습니다.그리고 pwd_mkdb도구댓글을 에서 로 복사하세요 /etc/master.passwd./etc/passwd, 기본 Berkeley DB 파일에 넣지 않고. #TAB 및 SPC 문자를 앞에 추가하는 옵션이 있지만 이는 그렇지 않습니다.상당히GNU C 라이브러리와 동일합니다( isspace()GNU C 라이브러리 루틴을 사용하는 프로세스의 로케일에 의해 충족되는 모든 공백 문자를 허용합니다. 이는 매우 모호한 it-때로는 주석으로, 때로는 비밀로 기록될 수 있습니다). 오류가 발생합니다).

대조적으로, OpenBSD 및 NetBSD pwd_mkdb명령은 dummy 에 주석을 추가하는 것을 허용하지 않으며 /etc/master.passwddummy 에 주석을 삽입하지도 않습니다 /etc/passwd.

따라서 FreeBSD에서는 모든 (관련) 프로그램이 GNU C에 링크되어 있는 한 #TAB 및 SPC 앞의 주석 /etc/master.passwd#현재 로케일 문자로 isspace()시작하는 주석 /etc/passwd및 Linux 기반 운영 체제의 기타 NSS 소스 코드 전체를 사용할 수 있습니다. /etc/shadow도서관.

답변2

파일에는 사용자 입력만 허용됩니다 /etc/passwd. 그 외의 입력은 잘못된 형식으로 간주되어 파일에 의존하는 일부 도구가 실패하게 됩니다.

TLDR: 없음

답변3

의 각 레코드는 /etc/passwd사용자 계정을 설명하며 설명 줄은 지원되지 않습니다.

passwd(5)파일형식은 ( ) 를 참고하세요 .man 5 passwd

관련 정보