Provided by: login_4.5-1ubuntu1_amd64 bug

이름

       login - 시스템 접속

사용법

       login [ 이름 ]
       login -p
       login -h 호스트이름
       login -f 이름

설명

       login  풀그림은  한  시스템에  접속처리를  하는  풀그림이다.   또한  현재 접속 중에서도 한
       사용자에서 다른 사용자로 바꾸고자 할 때도 사용될 수 있다. (한편,  대부분의  요즘  만들어진
       쉘은 그 쉘 내부적으로 이러한 기능을 제공하고 있기도 하다.)

       아무 옵션 없이 사용하면, 사용자 계정을 물어보는 프롬프트가 나타난다.

       이때 입력되는 계정이 root가 아니고, /etc/nologin 파일이 있으면 그 파일안에 내용이 보여지고
       이 풀그림은 종료된다. 이것은 시스템 검사나 기타 사정상 일반 사용자  접속을  하지  못하도록
       할때 사용된다.

       /etc/usertty  파일에서  특정  사용자의  로그인  허용과  거부가  지정되어  있을 때, 만일 그
       사용자가 접속하고자 할 때는 그에 따른 접속처리를 한다.  이때, 접속거부되면 로그인은 끝나고
       syslog 명령이 작동되어 그 상황을 기록한다.  자세한 이야기는 아래 "특별 접근 거부" 부분에서
       다룬다.

       /etc/securetty 파일에서는 root로 접속할 수  있는  터미날들이  나열되어  있다.   이때  접속
       실패가 일어나면 syslog 명령이 작동되어 그 상황을 기록한다.

       사용자  계정의  확인  절차가 끝나면, 비밀번호를 물어보는 프롬프트가 나타난다. (그 사용자의
       계정에서 비밀번호가 필요하면 나타난다.)  이때, 10번동안 비밀번호를 틀리게 입력하면 login은
       종료된다.   그런데,  처음  세번은  바로  다시 물어보지만, 다음부터는 매우 느리게 반복된다.
       (로그인 과정이) 물론 이 과정들도 syslog 명령에 의해 그 상황이 기록된다.

       .hushlogin 파일 $HOME 경로안에 있으면, 새로 도착한 편지가 있을 때 보여주는 메시지와 마지막
       로그인한  시간을 알리는 메시지를 보여주지 않는다.  이 파일이 없고, /var/log/lastlog 파일이
       있으면, 그 파일에서 마지막 로그인 시간을 읽어 보여주고, 그 파일에, 현재 로그인을 기록한다.

       로그인 계정, 비밀번호 확인철자가 끝나면, 다음은 터미날의 UID,  GID  설정같은  관리작업들을
       무작위로  수행한다.  TERM  환경변수가 사용되고 있으면, 이 환경변수를 지정하고, ( -p 옵션이
       사용되면 다른 환경변수가 지정된다) HOME, PATH, SHELL,  TERM,  MAIL,  LOGNAME  환경변수들을
       지정한다.  일반 사용자라면 경로를 초기값으로 아래와 같이 지정하고,
       /usr/local/bin:/bin:/usr/bin:.  root라면 초기값으로 아래와 같이 지정한다.
       /sbin:/bin:/usr/sbin:/usr/bin
       마지막으로  "조용한" 로그인이 아니라면, 그날의 메시지를 출력하고, /usr/spool/mail 경로안에
       그 사용자 이름으로 된  파일의  크기가  0이  아닌지  확인해서  0이  아니면,  편지가  있다고
       알려준다.

       다음  사용자  쉘을 지정하는데, /etc/passwd 파일에서 그 사용자의 쉘이 지정되어 있지 않으면,
       /bin/sh 쉘을 사용한다.  또한, /etc/passwd 파일에서  홈  경로가  지정되어  있지  않으며,  /
       경로로 로그인된다.(홈 경로는 위에서 설명한 .hushlogin 파일이 있는지 확인할 때 검사된다.)

옵션

       -p     login 실행할 때 이전 환경들을 그대로 사용하도록 getty(8) 명령에 의해 사용된다.

       -f     두번째  로그인일  경우에는  그 인증(계정확인절차)을 통과한다.  root 계정일 경우에는
              작동되지 않으며, 리눅스에서는 바르게 작동되지 않을 수도 있다.

       -h     리모트 호스트 로그인시(가령, telnetd(8) 사용) 계정  입력을  통과한다.   물론  utmp,
              wtmp 기록은 있다. 이 옵션은 단지 root만이 사용할 수 있다.

특별 접근 거부

       /etc/securetty  파일에는 root가 접속 할 수 터미날이 나열되어 있다.  이 터미날 이름은 /dev/
       글자를 생략한 터미날 이름만이다.  이 파일이 없다면 root는 모든 터미날에서 접속이 가능하다.

       /etc/usertty 파일에는 특정 사용자의 접속에  대한  특별한  설정  내용이  있다.   이  파일이
       없다면,  어떠한  특정  사용자의 접속 거부같은 없다.  이 파일의 세부분으로 구성되어 있는데,
       각각 그 부분들의 이름은 CLASSES, GROUPS, USERS 이다. CLASSES 부분에서는 터미날의  클래스와
       호스트이름  패턴이  정의되고,   GROUPS  부분에서는  그룹 단위의 허락되는 터미날과 호스트가
       정의되고, USERS 부분에서는 사용자 단위의 허락되는 터미날과 호스트가 정의된다.

       이 파일의 각 줄은 255 문자를 넘을 수 없으며, #  문자로  시작하는  그  줄  전체는  주석으로
       처리된다.

   CLASSES 섹션
       CLASSES  섹션은  대문자로  첫칸부터  CLASSES라고  씀으로  정의된다.  이 부분은 다음 섹션이
       정의되기 전까지 모든 부분이 포함된다.  각 단어의  구분은  공백문자나  탭문자로  한다.   각
       줄에는 터미날과 호스트 패턴의 클래스가 정의된다.

       각  줄의  처음은  관리자가 정의하는 클래스 이름이 오고, 그 다음에는 그 클래스에서 사용하는
       터미날과 호스트 패턴이 온다.  이 클래스 이름은 다음에 오는 GROUPS, USERS  섹션에서  사용될
       수 있다.

       CLASSES 섹션 예제:

       CLASSES
       myclass1       tty1 tty2
       myclass2       tty3 @.foo.com

       윗 예제는 myclass1myclass2 클래스를 오른쪽 부분과 같이 정의한 것이다.

   GROUPS 섹션
       GROUPS  섹션에서는  유닉스  그룹  단위의  허락되는  터미날과  호스트가 정의된다.  접속하는
       사용자의 그룹이(이것은  /etc/passwd  파일과  /etc/group  파일에서  확인됨)이  /etc/usertty
       파일의  GROUPS  섹션  부분에서 정의된 그룹이라면, 그에 해당되는 터미날과 호스트에만 접속이
       가능해 진다.

       GROUPS 섹션은 첫칸에 대문자로 GROUPS 이라고  씀으로  정의가  시작되고,  다음섹션의  정의가
       나타나기  전까지 이 섹션으로 가정한다.  각 단어의 구분은 공백문자나 탭문자로 하며, 각 줄의
       처음에는 그룹이 오고 다음에는 그 그룹에서 접근할 수  있는  터미날과  호스트가  온다.  또한
       허락되는  터미날과  호스트  부분에서  앞 CLASSES 섹션에서 정의한 클래스 이름이 사용될 수도
       있다.

       GROUPS 섹션의 예제:

       GROUPS
       sys       tty1 @.bar.edu
       stud      myclass1 tty4

       윗 예제는 sys 그룹의 사용자는 bar.edu 도메인을 가진 호스트에서, tty1로만 접속이  가능하다.
       stud 그룹의 사용자는 myclass1 클래스 또는 tty4로만 접속이 가능하다.

   USERS 섹션
       USERS  섹션은  첫칸에  USERS  라고  대문자로 씀으로 정의된다.  각 단어의 구분은 공백문자와
       탭문자로 하며, 첫칸에는 사용자 계정, 다음에는 그 계정 사용자가 접속 할 수 있는 터미날과 그
       사용자가  접속  시도하는  호스트가 정의된다.  물론 터미날과 호스트 정의부분에서 앞 CLASSES
       섹션에서 정의한 클래스가 사용될 수도 있다.

       USERS 섹션 예제:

       USERS
       zacho          tty1 @130.225.16.0/255.255.255.0
       blue      tty3 myclass2

       윗 예제는 zacho 계정  사용자는  IP  주소가  130.225.16.0  부터  130.225.16.255  범위  안의
       호스트에서  이  컴의  tty1로  접속  하고자  할 때만 접속을 할 수 있다.  blue 계정 사용자는
       myclass2에서 정의된 환경과 tty3으로만 접속할 수 있다.

       USERS 섹션안에서 사용자 계정 부분에 * 문자가 올 수도 있다.  이것은 초기값  지정이며,  모든
       사용자에게 적용된다.

       접속하고자  하는  사용자의  계정과  그룹이 USERS, GROUPS 섹션 두 부분에서 모두 적용되면 각
       섹션에서 정의된 모든 터미날/호스트가 적용된다.

   Origins
       터미날과 호스트 정의 부분에는 클래스, origin이라고 부르는  일군의  문자열이  사용된다.  이
       origin 문자열은 다음과 같은 형식을 취한다.

       o      터미날의 이름에는 /dev/ 부분이 빠진다. 즉, tty1, ttyS0 형식으로 사용된다.

       o      @localhost  문자열은  로칼 호스트에서 telnet/rlogin으로 접속하는 사용자를 의미한다.
              즉 `xterm -e /bin/login' 명령같은 것이 실행된다는 것을 의미한다.

       o      @.some.dom 문자열은 리모트 호스트 접속시  그  사용자가  rlogin/telnet으로  도메인이
              .some.dom로 끝나는 호스트에서만 접속할 수 있다는 것을 의미한다.

       o      IP  주소의  영역은  @x.x.x.x/y.y.y.y  이런  식으로  정의하는데, 이것은 x.x.x.x 에서
              y.y.y.y  범위의  IP  주소를  가진  호스트에서만   접속이   가능하다.   예를   들어,
              @130.225.16.0/255.255.254.0    으로    정의하면,   IP의   범위가   130.225.16.0   -
              130.225.17.255인 호스트에서만 접속이 가능하다.

       기타 origin 에서 사용되는 문자열로 시간을 정할수 있는데, 그 형식은 다음과 같다.

       timespec    ::= '[' <day-or-hour> [':' <day-or-hour>]* ']'
       day         ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
       hour        ::= '0' | '1' | ... | '23'
       hourspec    ::= <hour> | <hour> '-' <hour>
       day-or-hour ::= <day> | <hourspec>

       예를  들어,  [mon:tue:wed:thu:fri:8-17]tty3  문자열은  월요일부터  금요일까지,  오전   8시
       00분부터 오후 5시 59분까지만 tty3으로 접속할 수 있음을 의미한다. 시간 지정에서는 단지, a-b
       식으로 정의되면 a시 00분 부터 b시 59분까지를 의미하며, 단지 단일 숫자만 있으면(가령 10) 그
       시간만(10시 00분부터 10시 59분까지)을 의미한다.

       시간부분의  설정이 지정되지 않으면 어떠한 시간에도 접속이 가능하다.  각 요일별로 그 시간을
       따로 정하고 싶으면 각 요일 정의다음에 시간을 각각 따로 정의 할 수도 있다.   시간지정에서는
       공백문자를 사용할 수 없다.

       만약  /etc/usertty  파일에서 각 정의들이 바르지 못하게 정의된다면, 모든 사용자의 특별 접속
       거부 같은 것은 없다.

관련 파일

       /var/run/utmp
       /var/log/wtmp
       /var/log/lastlog
       /etc/motd
       /etc/passwd
       /etc/nologin
       /etc/usertty
       $HOME/.hushlogin

관련 항목

       init(8), getty(8), mail(1), passwd(1), passwd(5), environ(7), shutdown(8)

벌레

       리눅스에서는 다른 옛날 운영체제와 달리 한 사용자의 중복 로그인을 제한하지 않는다.

       설명되지 않은 BSD의 -r 옵션은 지원되지 않는다.  이  옵션은  어떠한  rlogind(8)  풀그림에서
       필요할 지도 모른다.

만든이

       Derived from BSD login 5.40 (5/9/89) by Michael Glad (glad@daimi.dk) for HP-UX
       Ported to Linux 0.12: Peter Orbaek (poe@daimi.aau.dk)