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/passwd
BSD의 파일은 C 라이브러리 루틴에 의한 조회에 실제로 사용되지 않고 발행된 가상 역호환 파일 이며 더 나은 명령(C 라이브러리 쉘 스크립트를 래핑하는 명령) 보다는 직접 등을 사용하여 쉘 스크립트를 사용하는 사람들 pwd_mkdb
만을 위한 것입니다. ).awk /etc/passwd
getent 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.passwd
dummy 에 주석을 삽입하지도 않습니다 /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