CHPASS(1)

명칭
chpass, chfn, chsh, ypchpass, ypchfn, ypchsh - 유저 데이타베이스내의 정보를 편집한다

서식
chpass [-a list] [-p encpass] [-e expiretime] [-s newshell] [user]

chpass [-oly] [-a list] [-p encpass] [-e expiretime] [-s newshell] [-d domain] [-h host] [user]

해설
chpass 하 user 혹은 디폴트에서는 실행한 유저의 유저 데이타베이스의 정보를 변경합니다. 정보는 포맷 되어 필요한 부분을 에디터로 변경합니다.

유저가 변경할 수가 있는 정보만이 표시됩니다.

옵션으로서는, 다음의 것이 있습니다:

-a  슈퍼 유저는, 유저 데이타베이스의 엔트리를 passwd(5) 그리고 정의된 포맷으로 인수로서 직접 지정할 수 있습니다. 이 인수는 코론 (“”): 그리고 단락지어진 리스트이며, 빈 곳의 부분이 있어도 용서됩니다만, 모든 필드를 리스트로 하지 않으면 안됩니다.

-p  슈퍼 유저는, 암호화된 패스워드 필드를 crypt(3) 그리고 이용되고 있는 포맷으로 인수로서 직접 지정할 수가 있습니다.

-e expiretime
    어카운트가 무효가 될 때를 변경합니다. 대화 에디터로부터와 같이 스크립트로부터, 무효가 될 때를 변경하기 위해서, 본옵션을 사용합니다.

-s newshell
    유저의 쉘을 newshell (으)로 변경하려고 합니다.

표시되는 엔트리에는 이하의 것이 있습니다:

Login:
    유저의 로그인명
Password:
    유저의 암호화된 패스워드
Uid:
    유저의 ID
Gid:
    유저의 그룹 ID
Class:
    유저의 일반적인 분류
Change:
    패스워드의 변경 시간
Expire:
    어카운트의 유효기간
Full Name:
    유저의 실제의 이름
Office Location:
    유저의 오피스의 장소 (1)
Office Phone:
    유저의 오피스의 전화번호 (1)
Home Phone:
    유저의 자택의 전화번호 (1)
Other Information:
    유저에 관한 로컬 정의 정보 (1)
Home Directory:
    유저의 홈 디렉토리
Shell:
    유저의 로그인 쉘

주 (1) -
    실제의 master.passwd 파일에서는, 이러한 필드는 콤마로 단락지어진 필드로서 FullName 필드에 파묻힙니다.

login 필드는 계산기에 액세스 할 경우에 사용되는 유저명입니다.

password 필드는 유저의 암호화된 패스워드를 거둘 수 있고 있습니다.

uid 필드는 login 필드와 관련한 번호입니다. 파일의 액세스를 제어하기 위해서, 어느 쪽의 필드도 시스템 (자주, 복수의 시스템) 중(안)에서 일의일 필요가 있습니다.

복수의 엔트리가 동일한 로그인명이나 동일한 유저 ID 를 가지는 것은 가능합니다만, 그처럼 하는 것은 통상 잘못입니다. 이러한 파일을 조작하는 순서에서는, 그러한 복수의 엔트리내로부터 무작위로 선택한 것의 하나만을 돌려주겠지요.

group 필드는 유저가 로그인시에 소속하는 그룹입니다. BSD 하지만 복수의 그룹을 채용하고 나서 ( groups(1) 참조) 이 필드는 거의 의미가 없습니다. 이 필드는 번호나 그룹명 ( group(5) 참조)의 어느 쪽인지가 기술됩니다.

class 필드는 /etc/login.conf 의 클래스에 관한 기술을 참조합니다. 전형적으로는, 유저의 로그인시에, 유저의 system resource를 제한하기 위해서 사용됩니다.

change 필드는 패스워드가 변경되고 있어야 할 일자입니다.

expire 필드는 어카운트의 만료하는 일자입니다.

change (와)과 expire 의 양쪽 모두의 필드는 “month day year” 의 형식에서 입력해, month (은)는, 영어의 달의 이름 (초의 3 캐릭터에서도 충분합니다)으로, day (은)는, 그 달안일로, year (은)는, 그 해입니다.

5 개의 필드는, 유저의 실제의 이름 , 오피스의 장소 , 직장 (와)과 가로 사용하는 전화 번호, 그리고 그 외의 정보 (을)를 보관하고 있습니다. 그 외의 정보 (은)는, 콤마로 단락지은 단일 캐릭터 라인이며, 추가의 gcos 필드를 표현합니다. (전형적으로는 사이트 고유의 유저 정보를 위해서(때문에) 사용합니다). finger(1) 하지만, Office: 그렇다고 하는 헤더아래에 오피스의 장소와 전화번호를 함께 표시하는 것에 주의해 주세요.

유저의 home directory (은)는 유저가 로그인시에 있는 장소에의 절대 UNIX 패스명입니다.

shell 필드는 유저가 좋아하는 명령 인터프리터입니다. 만약 shell 필드가 하늘이면, Bourne 쉘 /bin/sh 이라고 가정합니다. 로그인 쉘을 변경할 경우에, 슈퍼 유저가 아닌 유저는, 비표준 쉘로부터, 또는 비표준 쉘에의 변경은 용서되고 있지 않습니다. 비표준 쉘란 /etc/shells 그리고 찾아낼 수 없는 쉘입니다.

한 번 정보가 확인되면(자) chpass (은)는 유저 데이타베이스를 갱신하기 위해서 pwd_mkdb(8) (을)를 이용합니다.

환경 변수
환경 변수 EDITOR (을)를 설정해 다른 에디터를 지정해 있는 경우를 제외해, vi(1) 에디터가 사용됩니다. 에디터가 종료하면(자), 그 정보는 재차 읽혀 유저 데이타베이스를 변경하기 위한 정보로 합니다. 유저의 정보를 변경할 수 있는 것은, 그 유저나 슈퍼 유저만입니다.

PW_SCAN_BIG_IDS 환경 변수의 설정의 임펙트에 대해서는, pwd_mkdb(8) 의 설명을 참조해 주세요.

NIS 와의 상호작용
몇개의 제한이 적용됩니다만, chpass 유틸리티를 NIS 와 동시에 사용할 수도 있습니다. 현재 chpass 하지만 rpc.yppasswdd(8) (을)를 통해서 NIS 의 패스워드 MAP중에서 변경할 수 있는 것은, 통상은 유저의 패스워드, 쉘, GECOS 필드 뿐입니다. NIS 마스터 서버상에서 슈퍼 유저에 의해 기동되었을 경우를 제외해, chpass (와 같이 passwd(1)) (은)는, 유저 정보의 변경 및 신레코드의 추가를 위해서(때문에) rpc.yppasswdd(8) 서버를 사용 할 수 없습니다. 덧붙여 rpc.yppasswdd(8) (은)는, 어떠한 변경을 실시하기 전에도 패스워드 인증을 요구합니다. 패스워드 없음으로 변경 요구할 수 있는 유저는 NIS 마스터 서버상의 슈퍼 유저 뿐입니다; 다른 모든 유저는 패스워드를 입력할 필요가 있습니다. 다른 모든 유저에게는 NIS 클라이언트 ( 및 NIS 슬레이브 서버) 상의 root 권한을 가지는 유저도 포함됩니다. (NIS 마스터 서버상의 슈퍼 유저가 이 제약을 우회도로 할 수 있는 이유는, 주로 간편함 때문에입니다: NIS 마스터 서버에의 root 액세스권한을 가지는 유저는 이미 NIS MAP를 갱신하기 위한 권한을 가지고 있습니다. 그럼에도 불구하고 MAP 원시 파일을 손으로 편집하는 것은 귀찮습니다.

주: 이러한 예외가 적용되는 것은 NIS 마스터 서버가 FreeBSD 시스템때 뿐입니다. )

그 결과적으로, 상술의 예외를 제외해, NIS 환경에서 chpass (을)를 사용하는 경우에는 이하의 제한이 적용됩니다:

1.  쉘과 GECOS 정보만을 변경할 수 있습니다. 비록 chpass 하지만 슈퍼 유저에 의해 기동되었을 경우여도입니다. 다른 필드의 변경이 서포트되게 되어도, 다른 NIS 시스템과의 호환성의 문제를 일으키겠지요. 슈퍼 유저가 있는 엔트리를 편집하고 있을 때에, 다른 필드에 데이터를 써도, 여분의 정보로서 (패스워드는 예외 -- 이하를 참조해 주세요) 가만히 있어 폐기되겠지요.

    예외: NIS 마스터 서버상의 슈퍼 유저는, 임의의 필드의 변경이 용서되고 있습니다.

2.  패스워드 인증이 요구됩니다. 어떠한 변경을 실시하기 전에도 chpass 유틸리티는 유저의 NIS 패스워드를 요구합니다. 만약 패스워드가 잘못되어 있으면, 어떠한 변경도 행해지지 않습니다.

    예외: NIS 마스터 서버상의 슈퍼 유저는 패스워드 없이 로 변경 요구할 수 있습니다. (슈퍼 유저는, 후술 하도록(듯이) -o 플래그를 지정하는 일에 의해 이 사양을 무효로 하는 것이 선택할 수 있습니다. )

3.  새로운 레코드의 로컬 패스워드 데이타베이스에의 추가는 권유받지 않습니다. NIS 가 동작하고 있을 때, 관리자가 chpass 유틸리티에 의해 새로운 레코드를 로컬의 패스워드 데이타베이스에 추가 가능합니다. 그러나, 새로운 레코드가 master password 파일의 최후, 통상은 NIS 의 특별한 '+'엔트리의 뒤에 추가되기 (위해)때문에, 몇개의 혼란을 부를 수 있습니다. vipw(8) (을)를 사용해 로컬의 패스워드 파일을 변경해야 합니다.

    NIS 마스터 서버상의 슈퍼 유저에 의한다 NIS 패스워드 MAP에의 신레코드의 추가가 허가되는 것은, rpc.yppasswdd(8) 서버가 -a 플래그부로 기동되었을 경우, 즉 추가를 허가해 기동되었을 경우만입니다 (통상은 추가를 거부합니다). chpass 유틸리티는 디폴트에서는 로컬의 패스워드 데이타베이스를 갱신하려고 합니다; NIS MAP를 변경하는 경우에는 chpass 를 -y 플래그부로 기동해 주세요.

4.  패스워드의 변경은 허가되고 있지 않습니다. 유저가, 자신의 NIS 의 패스워드를 변경할 경우에는 passwd(1) 인가 yppasswd(1) (을)를 사용해야 합니다. 슈퍼 유저는 새로운 패스워드를 지정하는 것이 용서되고 (이)라고 있습니다 (비록, “Password:” 필드가 에디터의 템플릿에 나타나 있지 않아도, 슈퍼 유저는 수동으로 더할 수가 있습니다). 그렇지만, 슈퍼 유저여도 유저 원래의 패스워드가 없으면 rpc.yppasswdd(8) 하지만 NIS MAP의 갱신을 거부하겠지요.

    예외: NIS 마스터 서버상의 슈퍼 유저는 chpass (을)를 사용해, 유저의 NIS 패스워드를 변경하는 것이 허락되고 있습니다.

chpass 하지만 NIS 를 서포트해 컴파일 되었을 때에, 몇 개의 특별한 플래그가 유효 (이)가 됩니다:

-l  로컬과 NIS 의 양쪽 모두의 데이타베이스에 유저가 존재하고 있어도, 유저의 패스워드 정보의 로컬의 카피를 수정하는 것을 chpass 에 강제합니다.

-y  -l (와)과 반대의 효과가 있습니다. 만약 NIS 가 동작하고 있으면, 디폴트에서는 chpass (은)는 NIS 의 엔트리를 조작하므로, 이 플래그는 완전히 장황합니다.

-d domain
    NIS 도메인을 지정합니다. chpass 유틸리티는 디폴트에서는 시스템의 도메인명을 사용합니다. 이것은 domainname(1) 명령에서 설정되어 있습니다. -d 옵션은, 이 디폴트를 덧쓰기하기 위해(때문에), 혹은 도메인명이 설정되어 있지 않은 경우에 도메인명을 지정하기 위해서 사용할 수 있습니다.

-h host
    문의해야 할 NIS 서버의 이름 혹은 주소를 지정합니다. 통상 chpass 하 master.passwd 혹은 passwd MAP에서 지정되는 NIS 마스터 호스트와 통신합니다. NIS 클라이언트로서 구성되어 있지 않은 호스트상에서는, 이 정보를 결정하기 위한 방법이 프로그램에는 없기 때문에, 유저가 서버의 호스트명을 지정합니다. 지정하는 호스트명은 NIS 마스터 서버일 필요가 없는 일에 주의해 주세요; NIS 도메인내의 마스터 서버명에서도 슬레이브 서버명에서도 좋습니다.

    -d 옵션 사용시에는, 호스트명의 디폴트는 “localhost” 입니다. -h 옵션을 -d (와)과 함께 사용해, 유저가 지정하는 호스트명으로 이 디폴트를 덧쓰기할 수 있습니다.

-o  rpc.yppasswdd(8) 에 RPC 베이스의 갱신을 강제합니다 (“구모드”) NIS 마스터 서버상에서 슈퍼 유저에 의해 기동되었을 경우, chpass (은)는 전용의 비 RPC 베이스의 기구를 사용해, NIS 패스워드 MAP에 대한 무제한의 변경을 허가합니다 (이 경우 UNIX 도메인 소켓을 사용합니다). -o 플래그를 사용하는 일에 의해 chpass 에 표준의 갱신 메카니즘을 사용시킬 수가 있습니다. 이 옵션은 주로 테스트 목적을 위해서(때문에) 제공되고 있습니다.

관련 파일
/etc/master.passwd
    유저 데이타베이스
/etc/passwd
    Version 7 포맷의 패스워드 파일
/etc/chpass.XXXXXX
    패스워드 파일의 텐포라리용 카피
/etc/shells
    이용할 수 있는 쉘의 리스트

관련 항목
finger(1), login(1), passwd(1), getusershell(3), login.conf(5), passwd(5), pwd_mkdb(8), vipw(8) and Robert Morris, Ken Thompson, UNIX Password security.

주
chfn(1), chsh(1), ypchpass(1), ypchfn(1), ypchsh(1) 명령은 실제로는 chpass 에 링크 하고 있을 뿐입니다.

버그
유저 정보의 보존은 어딘가 다른 장소로 해야 합니다 (해, 언젠가는 그렇게 되겠지요).

역사
chpass 명령은 4.3BSD Reno (으)로부터 등장했습니다.