PASSWD(5)

명칭
passwd - 패스워드 파일의 포맷

해설
passwd 파일은 개행으로 단락지어진 레코드로부터 완성됩니다. 유저 마다 1 레코드가 대응해, 코론 (‘’): 그리고 단락지어진 10 개의 란이 포함됩니다. 이러한 란은 이하와 같습니다:

name
    유저의 로그인명.

password
    유저의 암호화되었다 패스워드.

uid 유저의 id.

gid 유저의 로그인 그룹 id.

class
    유저의 로그인 클래스.

change
    패스워드의 변경 시간.

expire
    어카운트의 유효기간.

gecos
    유저에 대한 일반적인 정보.

home_dir
    유저의 홈 디렉토리.

shell
    유저의 로그인 쉘.

최초의 공백 캐릭터가 아닌 캐릭터가 파운드 기호 (#)인 것 같은 행은 주석이며, 무시 됩니다. 스페이스, 탭, 개행만으로부터 되는 공행도 또 무시됩니다.

name 란은 컴퓨터 어카운트에 액세스 하는데 이용되는 로그인이며, uid 란은 거기에 연결시킬 수 있었던 숫자입니다. 이것들은 파일 액세스를 제어하므로, 양쪽 모두 그 시스템 (또 자주 복수의 시스템에 걸치는 1 개의 그룹)안 그리고 일의여야 합니다.

같은 로그인명이나 같은 UID 의 엔트리를 복수 가지는 것은 가능해 가, 보통 그것은 잘못입니다. 이러한 파일을 취급하는 routine는 잔디 해 의 복수 엔트리의 1 개만을 돌려주고, 그리고 그것은 랜덤인 선택에 의하는 것입니다.

로그인명은 결코 하이픈 (‘-’) 그리고 시작해는 안됩니다. 또, 메이라를 혼란시키는 경향에 있으므로, 대문자나 닷 (‘’). 도 절대로 이름의 일부로 하지 않는 것을 강하게 추천 합니다.

password 란은 패스워드의 암호화되었다 형태입니다. password 란이 하늘이라면, 그 머신에 액세스 하는데 어떤 패스워드도 필요로 하지 마 짊어진다. 이것은 거의 항상적으로 잘못입니다. 이러한 파일은 암호화되었다 유저 패스워드를 포함하고 있으므로, 적당한 권리 없음에는 어떠한 사람에 따라서도 가독으로 (이)라고는 안됩니다. 관리상의 어카운트는 1 개의 asterisk ‘*’ (을)를 포함한 패스워드란을 가지고 있어 이것은 통상의 로그인을 허락하지 않습니다.

group 란은 유저가 로그인한 다음 자리매김되는 그룹입니다. 이 시스템은 멀티 그룹( groups(1) 참조) (을)를 서포트합니다만, 이 란은 유저의 1 차 그룹을 지명합니다. 2 차 그룹의 멤버는 /etc/group 중(안)에서 선택됩니다.

class 란은 유저의 로그인 클래스에 대한 키입니다. 로그인 클래스는 login.conf(5) 중(안)에서 정의됩니다. login.conf(5) (은)는, 유저의 속성, 어카운팅, 리소스, 환경 설정에 관한 termcap(5) 형식의 데이타베이스입니다.

change 란은 GMT 에 있어서의 기준 시점으로부터의 초수를 나타낸 것이어, 이 때까지 어카운트에 대한 패스워드를 변경할 필요가 있습니다. 패스워드 에이징 기능을 없애려면 , 이 란을 공난으로 해 둘까 0 을 세트 해 두면 좋습니다.

expire 란은 GMT 에 있어서의 기준 시점으로부터의 초수를 나타낸 것이어, 그 때에 어카운트가 소멸합니다. 어카운트재설정 기능을 없애려면 , 이 란을 하늘에 세트 해 둘까 0 을 세트 해 두면 좋습니다.

gecos 란은 콤마 (‘’), 그리고 단락지어진 이하와 같은 부란을 통상 포함하고 있습니다:

•   유저의 풀네임
•   유저의 직장의 위치
•   유저의 직장의 전화번호
•   유저의 자택의 전화번호

이 정보는 FINGER 프로그램 finger(1) 에 의해 이용되어 최초의 란은 시스템의 메이라 에 의해 사용됩니다. fullname 란내에 ampersand(&) 캐릭터 (‘&’) 하지만 나타나면(자), 이 란을 사용하는 프로그램은 그것을 그 어카운트의 로그인명의 대문자판에 옮겨놓습니다.

유저의 홈 디렉토리는, 유저가 로그인해 자리매김되는 완전한 UNIX 패스명입니다.

shell 란은 유저가 좋아하는 인터프리터입니다. shell 란에 아무것도 없으면 Bourne 쉘 (/bin/sh) 하지만 가정됩니다. 보안상의 이유에 의해, 쉘이 시스템에의 액세스 (을)를 허락하지 않는 스크립트 (예를 들면 nologin(8) 스크립트)로 설정되어 있는 경우, 어떠한 환경 변수도 건네받지 않게 배려함 합니다. sh(1) 에 대해서는, 이것은 -p 플래그를 지정하는 것으로 가능합니다. 이것이 다른 쉘로 어떻게 행해질까 (은)는, 특정의 쉘의 문서를 조사해 주세요.

YP/NIS 와의 상호작용

  NIS 패스워드 데이터에의 액세스를 가능하게 한다
시스템 관리 책임자는 /etc/master.passwd 파일에 특별한 레코드를 덧붙이는 것에 의해, 패스워드 정보에 대해 NIS/YP 를 이용하도록(듯이) FreeBSD (을)를 설정할 수 있습니다. 해시 된 패스워드 데이타베이스 및 /etc/passwd 파일 ( /etc/passwd (은)는 절대로 수동으로 편집 해서는 안됩니다)로 변경이 적절히 merge 되도록(듯이), 엔트리는 vipw(8) 그리고 부가해야 합니다. 다른 방법으로서는, 하등의 방법으로 /etc/master.passwd (을)를 수정한 후, pwd_mkdb(8) (을)를 이용해 패스워드 데이타베이스를 수동으로 갱신할 수가 있습니다.

NIS 를 활성화하기 위한 가장 간단한 방법은, 이름란에 플러스 부호 (‘+’) 만을 가지는, 이하와 같은 하늘의 레코드를 덧붙이는 것입니다.

    +:::::::::

‘+’ (은)는, FreeBSD 의 표준 C 프로그램 라이브러리의 getpwent(3) routine에 대해, 검색에 대해 NIS 패스워드 MAP를 사용 개시하도록 지시합니다.

상기의 엔트리는 와일드 카드 엔트리로서 알려져 있는 것에 주의해 주세요. 왜냐하면, 그것은 모든 유저와 일치해 (그 밖에 정보를 가지지 않는다 ‘+’ (은)는, 전원에게 일치합니다), 전 NIS 패스워드 데이터를 무변경에서 꺼내는 것을 허락합니다. 한편, NIS 엔트리로 ‘+’ 의 다음에 유저명이나 넷 그룹명을 지정하는 것에 의해, 어떠한 데이터가 NIS 패스워드 MAP로부터 전개되는지, 및 그것이 어떻게 해석되는지에 임해서, 관리자가 영향을 줄 수가 있습니다. 이 특징을 나타내는, 소수의 레코드예를 듭니다 (1 개(살)의 master.passwd 파일중에는 복수의 NIS 엔트리를 가지는 것이 가능한 것으로 주의):

    -mitnick:::::::::
    +@staff:::::::::
    +@permitted-users:::::::::
    +dennis:::::::::
    +ken:::::::::/bin/csh
    +@rejected-users::32767:32767::::::/bin/false

특정의 유저명은 명시적으로 리스트 됩니다만, 넷 그룹은 ‘@’ (을)를 앞에 두고 붙여 나타내집니다. 위의 예에서는, “staff” 및 “permitted-users” 넷 그룹 의 유저는, NIS 로부터 읽혀지고 무변경으로 사용되는 패스워드 정보를 가집니다. 바꾸어 말하면, 그러한 유저는 그 머신에 통상의 액세스가 용서된다 그렇다고 하는 것입니다. 유저 “ken” 및 “dennis” (은)는, 넷 그룹을 통해서는 아니게 명시적으로 이름이 지정되어 있어 NIS 로부터 읽혀지는 패스워드 정보를 가집니다. 예외 (은)는, 유저 “ken” 의 쉘이 /bin/csh 에 재MAP 되는 것입니다. 이것은, NIS 패스워드 MAP로 지정된 쉘의 값이, 로컬 master.passwd 파일의 특별한 NIS 엔트리로 지정된 값에 의해 덧쓰기되는 것을 의미합니다. 유저 “ken” (은)는 csh 쉘을 할당해 두어도 좋을지도 모릅니다. 왜냐하면, 정치적 혹은 기술적인 이유로 클라이언트 머신에 인스톨되어 있지 않다 다른 쉘을, 그의 NIS 패스워드 엔트리로 지정되어 있을지도 모르기 때문입니다. 한편, “rejected-users” 넷 그룹의 유저는, 그 UID, GID, 쉘이 부정한 값으로 덧쓰기되고 있으므로 로그인할 수 없게 됩니다.

유저 “mitnick” (은)는, 그 엔트리가 ‘+’ (은)는 아니고 ‘-’ 그리고 지정되어 있으므로, 완전하게 무시되게 됩니다. 마이너스 엔트리는, 어느 NIS 엔트리를 완전하게 차단하기 위해서 이용할 수가 있습니다. 이러한 방법으로 패스워드 데이터가 제외된 유저는, 시스템으로부터 전혀 인식되지 않습니다. (마이너스 엔트리로 지정되었다 덧쓰기 정보는 무시됩니다. 왜냐하면, 시스템이 최초로 인식하지 않기로 한 유저의 덧쓰기 정보를 처리 하는 것은 쓸데없기 때문에입니다. ) 일반적으로 마이너스 엔트리는, 어느 권한이 있는 넷 그룹의 멤버가 되어 액세스가 용서될지도 모른다 유저를 특별히 제외하기 위해서 사용합니다. 예를 들면 “mitnick” 하지만 “permitted-users” 넷 그룹의 멤버이며, 어떠한 이유가 있어도 그 넷 그룹내에 머무는 것을 허락할 필요가 있는 경우 (아마 그 도메인내의 다른 머신에 액세스 하는 것을 프로텍션하기 위해(때문에)), 관리자는 마이너스 엔트리를 사용하는 것으로써, 특정의 시스템에의 액세스를 계속 거부하는 와 (이)가 할 수 있습니다. 또, 액세스가 용서된 유저 및 그 나머지를 삭제한 듯 잘 있을 것인 혼잡해 들어간 유저의 리스트를 생성하는 것보다는, 오히려 액세스를 용서되지 않는 유저를 명시적으로 리스트 하는 (분)편이 용이한 일이 많습니다.

플러스 및 마이너스 엔트리는, 선행 일치 우선으로 최초부터 마지막 순서로 평가 일을 의미합니다. 같은 예를 사용하면(자), “staff” 넷 그룹과 “rejected-users” 넷 그룹의 양쪽 모두의 멤버가 되고 있는 것 같은 유저 “foo” (은)는, 위의 예에서는 “rejected-users” 의 엔트리의 전에 “staff” 의 엔트리가 있기 때문에, 시스템에 허가됩니다. 만약 순서가 역이라면, 이번은 유저 “foo” 하 “rejected-users” (으)로서 인식되어 액세스는 거부됩니다.

마지막으로, /etc/master.passwd 파일의 NIS 액세스 엔트리로 지정된 유저 또는 넷 그룹 의 어떤 것과도 일치하지 않는 NIS 패스워드 데이타베이스 레코드는, (마이너스 엔트리 (을)를 사용해 지정한 모든 유저와 함께) 모두 무시됩니다. 먼저 가리킨 예 그럼 리스트의 마지막에 와일드 카드 엔트리가 없기 때문에, “ken” (와)과 “dennis” (와)과 “staff” 넷 그룹과 “permitted-users” 넷 그룹을 제외한 모든 유저를, 시스템은 권한이 있는 유저로서 인식하지 않을 것입니다. “rejected-users” 넷 그룹은 인식됩니다만, 전멤버의 쉘은 재MAP 되기 때문에, 액세스는 거부되겠지요. 다른 모든 NIS 패스워드 레코드는 무시되고 지요. 관리자는 이하와 같은 와일드 카드 엔트리를 리스트의 마지막에 붙여도 좋을 것입니다.

    +:::::::::/sbin/nologin

이 엔트리는 다른 모든 엔트리와 일치하지 않는 모든 유저를 한꺼번에 파악한다 기능을 합니다. 반드시 로그인 액세스를 허가하지 않고 , 특정의 NIS 도메인내의 전유저를 시스템이 인식 가능하다라고 하는 것이 바람직할 때에는, 이 테크닉이 유효한 일이 있습니다. 로그인 쉘과 셸 스크립트를 사용할 때의 보안에 관한 일 에 붙어, 쉘란의 기술을 참조해 주세요.

이 덧쓰기 기능의 주된 용도는, 관리자가 NIS 클라이언트상에서 액세스 제한을 강화 가능으로 하는 것입니다. 단지 특정의 넷 그룹에 대해서 유저를 추가하거나 삭제하거나 하는 것만으로, 그 유저에게 있는 머신군에의 액세스를 허가해, 한편 다른 머신군에의 액세스를 거부할 수가 있습니다. 넷 그룹 데이타베이스도 또 NIS 경유로 액세스 할 수 있으므로, 1 개소 즉 NIS 마스터 서버로부터 액세스 제한을 관리할 수 있습니다. 일단 호스트의 액세스 리스트가 /etc/master.passwd (으)로 설정되면(자), 신에 넷 그룹이 만들어지지 않는 한 그것은 재차 변경할 필요 (은)는 없습니다.

주

  NIS 경유의 그림자 패스워드
FreeBSD (은)는 그림자 패스워드법을 채용하고 있어 유저의 암호화된 패스워드는 슈퍼 유저만이 읽고 쓰기 가능한 /etc/master.passwd 및 /etc/spwd.db 에게만에 기억됩니다. 암호화된 패스워드를 패스워드 추측 프로그램에 통하는 것으로, 유저가 다른 유저 어카운트에 대해서 부정 액세스 하는 것을 막기 (위해)때문입니다. NIS 에는 패스워드 은폐를 위한 표준적인 방법이 없습니다. 이것은, 패스워드 데이터를 모두 NIS 패스워드 MAP에 옮겨놓는 것은, FreeBSD 의 패스워드 은폐 시스템의 보안를 무효로 해 버리는 것을 의미합니다.

FreeBSD 에는 이 문제를 회피하는데 도움이 되는 소수의 특별한 특징이 갖춰지고 있습니다. FreeBSD NIS 클라이언트와 FreeBSD NIS 서버와의 사이에 패스워드 은폐를 실장하는 것은 가능합니다. getpwent(3) routine는 /etc/master.passwd (와)과 같은 데이터를 포함한다 master.passwd.byname (와)과 master.passwd.byuid MAP를 검색합니다. MAP가 존재하면 FreeBSD (은)는 표준의 passwd.byname 및 passwd.byuid MAP대신에 그것들을 유저 인증에 이용하려고 합니다. FreeBSD 의 ypserv(8) (은)는 또 클라이언트의 요구를 체크해, 클라이언트의 요구가 특권 포트로부터 온 것을 확인합니다. 슈퍼 유저만이 특권 포트에 액세스 하는 것이 허락되므로, 요구하고 있는 유저가 슈퍼 유저인지 아닌지 판단 가능합니다. master.passwd MAP에 액세스 하는 권한이 없는 유저로부터의 모든 요구는 거부되겠지요. 모든 유저 인증 프로그램은 슈퍼 유저의 권한으로 실행되므로, 유저의 암호화된 패스워드 데이터에의 필요한 액세스를 가집니다만, 통상 유저는 패스워드 정보를 포함하지 않는 표준 passwd MAP에의 액세스만 용서됩니다.

이 특징은 FreeBSD 이외의 시스템이 있는 환경에서는 이용할 수 없는 것에 주의해 주세요. 또, 네트워크 에 무제한하게 액세스 할 수 있는 실로 한정된 유저는 여전히 master.passwd MAP를 위태롭게 하게도 주의해 주세요.

  NIS 의 덧쓰기에 따르는 UID 및 GID 의 재MAP
SunOS (이)나 Sun 의 NIS 코드를 이용하고 있는 operating system와는 달라, FreeBSD 그럼 유저가 NIS passwd 엔트리중의 모두 의 란을 덧쓰기하는 것을 허락하고 있습니다. 예를 들면 이하와 같은 /etc/master.passwd 엔트리를 생각해 봅시다.

    +@foo-users:???:666:666:0:0:0:Bogus user:/home/bogus:/bin/bogus

이 엔트리에 의해, `foo-users'넷 그룹중의 모든 유저는, UID, GID, 패스워드를 포함해 모두 의 패스워드 정보가 덧쓰기됩니다. 이 결과, 그들의 패스워드는 부정한 값에 재MAP 되므로, 모든 `foo-users'는 시스템으로부터 합계출이야 것이 되겠지요.

이하와 같이 NIS 와일드 카드 엔트리를 사용하는 습관이 있는 사람이 많기 때문에, 이것은 기억해 두어야 한다 중요한 일입니다.

    +:*:0:0:::

이것은 자주 햅쌀의 FreeBSD 관리자가 이하와 같이 master.passwd 파일의 NIS 엔트리를 선택해 버리는 것에 연결됩니다.

    +:*:0:0::::::

더욱 나쁘고, 이하와 같이 해 버리는 일도 있습니다.

    +::0:0::::::

master.passwd 파일에는 「절대로」이러한 엔트리는 넣지 말아 주세요!! 최초의 것은, 모든 패스워드를 ‘*’ 에 재MAP 해 (이것은 아무도 로그인할 수 없게 합니다), 모든 UID 및 GID 를 0 에 재MAP 한다 (이것은 모두를 슈퍼 유저로 합니다) 일을 FreeBSD 에 지시합니다. 2 번째의 것은 전 UID 및 GID 를 정확히 0 에 MAP 합니다 하지만, 이것은 모든 유저가 root 가 되어 버린다 일을 의미합니다!

  NIS 덧쓰기 평가의 호환성
Sun 가 최초로 getpwent(3) routine에 NIS 서포트를 추가했을 때, SunOS 의 패스워드 파일 /etc/passwd (은)는 프레인 ASCII 포맷이다고 하는 것이 고려되고 있었습니다. SunOS 의 문서에 의하면, 패스워드 파일에 ‘+’ 엔트리를 덧붙이면(자), 패스워드 파일중의 ‘+’ 엔트리가 있는 위치에 NIS 패스워드 데이타베이스의 내용이 “삽입” 됩니다. 예를 들면 관리자가 /etc/passwd 의 중앙에 ‘+::::::’ 엔트리를 두었을 경우, NIS 패스워드 MAP의 전체의 내용이 패스워드 파일의 중앙에 카피되었는지와 같이 나타나겠지요. 관리자가 ‘+::::::’ 엔트리를 /etc/passwd 의 중앙과 마지막 양쪽 모두에 두면 NIS 패스워드 MAP는 2 번 나타나게 되겠지요. 즉 1 번째는 그 파일의 중앙에 나타나 이제(벌써) 1 번은 마지막에 나타납니다 (단순한 와일드 카드대신에 덧쓰기 엔트리를 이용하는 것으로, 다른 편성이 가능합니다).

이것에 대해 FreeBSD 그럼 단일의 ASCII 패스워드 파일을 갖는다고 하는 것은 아닙니다. FreeBSD 그럼 해시화 된 패스워드 데이타베이스를 가집니다. 이 데이타베이스로 (은)는 최초나 중앙이나 최후를 용이하게 정의할 수 없기 때문에, SunOS 에 100% 호환의 수법을 설계하는 것은 매우 곤란합니다. 예를 들면 FreeBSD 의 getpwnam() 함수와 getpwuid() 함수는, 선형 검색은 아니고 해시 데이타베이스에 직접 문의하도록(듯이) 설계함 라고 있습니다. 패스워드 데이타베이스가 큰 시스템에서는, 이 접근가 고속으로. 그러나 데이타베이스에 직접 문의를 이용할 때, 시스템은 원래의 패스워드 파일의 순서를 파악하지않고 신경쓰지 않으므로, SunOS 하지만 사용하는 것과 같은 덧쓰기 논리는 용이하게 적용할 수 없습니다.

대신에 FreeBSD 그럼 모든 NIS 덧쓰기 엔트리를 함께의 그룹에 정리해 그것들로부터 1 개 의 필터를 만듭니다. 각 NIS 패스워드 엔트리는 정확히 1 회 덧쓰기 필터 에 대해서 비교되어 거기에 응해 취급됩니다. 필터가 엔트리를 변경키 하지않고서 통하는 것을 허락한다면 엔트리는 변경되지 않는 것으로서 취급되어 필터 하지만 란의 재MAP를 요구한다면 란은 재MAP 되어 필터가 명백한 제외를 요구 한다면(즉 엔트리가 ‘-’ 덧쓰기와 일치한다면) 엔트리는 무시되어 엔트리가 필터 지정의 어떤 것과도 일치하지 않으면 엔트리는 버려집니다.

또, NIS 의 ‘+’ 및 ‘-’ 엔트리 자신은, /etc/master.passwd 중(안)에서 지정된 순서로 취급되는 것에 재차 주의해 주세요. 그 이외의 방법으로 취급하면(자), 예측 불가능한 행동이 되어 버리기 때문입니다.

결국, 데이타베이스의 패러다임(paradigm)를 유지하면서 FreeBSD 그럼 SunOS (와)과 매우 잘 닮은 동작을 실시합니다만, getpwent(3) 함수는 SunOS 의 것과는 조금 다른 행동을 합니다. 주된 차이는 이하와 같습니다.

•   NIS 패스워드 MAP의 각각의 레코드는, 로컬 패스워드 공간의 패스워드에 1 번만 MAP 할 수가 있습니다.

•   NIS 의 ‘+’ 및 ‘-’ 의 엔트리의 위치는, NIS 패스워드 레코드가 패스워드 공간에 MAP 되는 장소에 반드시 영향을 주지 않습니다.

모든 FreeBSD 의 구성중 99% 에 대해 NIS 클라이언트의 행동은 SunOS (이)나 다른 동종의 시스템의 그것과 구별할 수 없는 것이 되겠지요. 그런데도 이것 들의 아키텍쳐적인 차이를 알아 두는 것은 필요합니다.

  NIS 덧쓰기에 관계되어 넷 그룹대신에 그룹을 이용한다
FreeBSD (은)는 넷 그룹은 아니고 유저 그룹에 근거한 덧쓰기 조합을 행하는 능력 (을)를 제공합니다. 예를 들면 NIS 엔트리가 이하와 같이 지정되었을 때,

    +@operator:::::::::

시스템은 우선 ‘operator’ (으)로 불리는 넷 그룹에 대해서 유저를 조합하려고 합니다. ‘operator’ 넷 그룹이 존재하지 않을 때, 시스템은 대신에 통상의 ‘operator’ 그룹에 대해서 조합하려고 합니다.

  FreeBSD 의 낡은 버젼으로부터의 동작의 변천
FreeBSD 의 NIS/YP 의 취급에 대해서는 몇개의 버그 수정과 개선이 있었습니다. 그 몇개인가는 동작상의 변화를 가져왔습니다. 동작상의 변화는 일반적으로 좋을 방향 에 있습니다만, 유저 및 시스템 관리 책임자가 그것들에 대해 알아 두는 것은 중요합니다.

1.  2.0. 5 이전의 버젼에서는, 역방향 검색 (즉 getpwuid() (을)를 이용하기)에는 덧쓰기는 적용되지 않았습니다. 즉, getpwuid() 하 getpwnam() 하지만 인식하지 않는 로그인명을 돌려주는 일이 있었습니다. 이것은 현재는 /etc/master.passwd 그리고 지정된 덧쓰기를 모든 getpwent(3) 함수에 적용하는 것으로 해결되었습니다.

2.  FreeBSD 2.0.5 이전으로는, 넷 그룹의 덧쓰기는 전혀 동작하지 않았습니다. 이것은 주로 FreeBSD 하지만 NIS 를 통해 넷 그룹을 읽는 것을 서포트하지 않았던 것이 원인입니다. 이것도 또 수정되어 SunOS (이)나 동종의 NIS 를 사용 가능한 시스템과 완전히 같이 넷 그룹을 지정 가능해졌습니다.

3.  FreeBSD (은)는 현재 NIS 서버의 능력을 가지고 있어 표준 제 6 판 형식의 passwd MAP에 가세해 master.passwd NIS MAP의 사용도 서포트하고 있습니다. 이것은, NIS 서버로서 FreeBSD 시스템을 이용한다면, 변경 정보, 유효기간의 정보, 클래스 정보를 지정 가능해 아 라고 하는 것을 의미하고 있습니다.

관련 파일
/etc/passwd
    패스워드를 제외했다 ASCII 패스워드 파일
/etc/pwd.db
    패스워드를 제외했다 db(3) 형식의 패스워드 데이타베이스
/etc/master.passwd
    패스워드가 들어갔다 ASCII 패스워드 파일
/etc/spwd.db
    패스워드가 들어갔다 db(3) 형식의 패스워드 데이타베이스

관련 항목
chpass(1), login(1), passwd(1), getpwent(3), login_getclass(3), login.conf(5), adduser(8), pw(8), pwd_mkdb(8), vipw(8), yp(8)

버그
유저 정보는 다른 어디엔가 들어갈 수 있어야 하는 것 (그리고 결국은 넣게 된다)지요.

YP/NIS 패스워드 데이타베이스에서는, 보통 유저에게는 암호화된 패스워드가 보여 버립니다. 따라서 master.passwd MAP의 그림자 패스워드 및 FreeBSD 의 ypserv(8) 서버를 이용하지 않으면 간단하게 패스워드 분쇄를 허락해 버리게 됩니다.

master.passwd 타입의 MAP의 사용을 서포트한다 FreeBSD 의 ypserv(8) (을)를 사용하지 않으면 YP/NIS 패스워드 데이타베이스는 낡은 스타일 ( 제 6 판)의 포맷이 됩니다. 이것은, FreeBSD 시스템을 표준 NIS 서버의 클라이언트로서 이용할 때, 유저의 로그인 클래스나 패스워드 기한등의 현재의 포맷에 있는 란의 값에 대해서는 사이트 와이드인 값을 이용할 수 없게 되는 것을 의미합니다.

호환성
패스워드 파일 형식은 4.3BSD 이후에 변경되었습니다. 이하의 awk 스크립트는, 낡은 스타일의 패스워드 파일을 새로운 스타일의 패스워드 파일에 변환하는데 이용할 수 있습니다. “class”, “change”, “expire” 란이 추가되었습니다만, 디폴트에서는 무효가 되어 있습니다. 이러한 란을 설정하려면 vipw(8) 혹은 pw(8) (을)를 사용해 주세요.

    BEGIN { FS = ":"}
    { print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 }

역사
passwd 파일은 AT&T UNIX 그리고 나타났습니다. YP/NIS 의 기능은 SunOS (을)를 모형으로서 FreeBSD 1.1 그리고 처음으로 나타났습니다. 덧쓰기 기능은 FreeBSD 2.0 에 두어 새롭게 짜넣어졌습니다. 덧쓰기 기능은 넷 그룹을 적절히 서포트하기 위해서 FreeBSD 2.0.5 그리고 갱신되었습니다. 주석의 서포트는 FreeBSD 3.0 그리고 처음으로 서포트되었습니다.