UNIX/Linux 시스템 기본

# 시스템 로그인 과정
- 사용자 계정과 패스워드를 입력하면 로그인을 담당하는 프로그램은 입력한 패스워드와 /etc/passwd 파일의 해당 필드를 비교합니다. (유닉스는 모든 과정이 별개의 프로그램으로 실행된다)
- 패스워드 확인 후 로그인 프로그램은 쉘이 사용할 변수들을 근거로 초기 환경을 설정합니다. HOME, SHELL, USER, LOGNAME 변수들은 /etc/passwd 파일에 기록된 정보로 값이 설정된다.
∙ HOME 변수 : 사용자의 홈 디렉터리 지정
∙ SHELL 변수 : 로그인 쉘 지정
∙ USER or LOGNAME 변수 : 사용자의 사용자 계정을 지정
- 로그인 쉘(/bin/sh, /bin/csh, /bin/ksh 등)은 일반적으로 /etc/passwd 파일의 마지막 필드에 정의 되어 있다.
# 로그아웃
- UNIX 시스템에서 로그아웃할 때 사용하는 명령어로는 logout, exit가 있으며 키보드의 [Ctrl+d] 조합키를 사용해도 된다.
# /etc/passwd 파일
- 시스템 관리자가 사용자 계정을 만들 때마다 해당 사용자와 관련된 정보를 /etc/passwd 파일에 저장한다.
- 파일의 각 라인은 개별 사용자에 대한 정보로 이루어져 있으며, 구분자 ' : '을 이용하여 7개의 필드로 구분 됩니다.
< 형식 >


① user_account : 사용자 계정명
② x : 사용자 패스워드 (x는 shadow 패스워드를 사용한다는 의미)
③ 0 : 사용자 ID (UID)
④ 0 : 기본 그룹 ID (GID)
⑤ root : 사용자 관련 기타 정보 (코멘트)
⑥ /root : 로그인에 성공한 후에 사용자가 위치할 홈 디렉터리
⑦ /bin/bash : 로그인
# 그룹 정보
- 기본 그룹과 보조 그룹
∙ UNIX 시스템의 사용자 계정은 하나의 기본 그룹과 복수의 보조 그룹에 소속될 수 있다.
∙ 기본 그룹은 사용자가 자원 생성시 해당 자원의 소유그룹을 지정하는데 사용되며 /etc/passwd 파일의 4번째 필드에 명시된다.
< 형식 >


① bin : 그룹명
② x : 그룹의 암호화된 패스워드
③ 1 : 기본 그룹 ID로 그룹명을 대신하는 정수형 숫자
④ root, bin, daemon : 소속된 사용자 계정들
# 특수문자
- 쉘 명령에는 일부 문자들은 사전에 정의된 특별한 기능이 있다. 이런 문자들을 특수문자라고 하며 정의된 기능대로 동작한다.
