사용자와 그룹 관리 시스템 파일
System Program/common 2013. 8. 8. 07:221. 사용자 관리 시스템
1.1. /etc/passwd
7개의 필드로 구성된 한줄의 기록으로 사용자를 관리한다. 각 필드는 콜론 (:)으로 구분된다.
[로그인이름]:[암화화된 패스워드]:[사용자ID]:[그룹ID]:[주석]:[홈디렉토리]:[로그인쉘]
각 필드의 구성은 다음과 같다.
- 로그인 이름 : 사용자가 로그인할 시 입력해야 하는 고유 이름.
- 암호화된 패스워드 : 13자로 이뤄진 암호화된 패스워드. 최근에는 새도 패스워드를 사용하여 별도의 시스템 파일에 관리하고 있다. 이 경우 보통 필드는 'x'로 표시되어 있다. 만약 해당 필드가 비어 있으면 패스워드 없이 로그인이 가능하다.
- 사용자 ID : 이 필드의 값이 '0'이면 슈퍼유저 권한을 갖는다. 커널 2.4 이후에는 32비트로 저장된다.
- 그룹 ID: 사용자가 속하는 첫 번째 그룹의 숫자 ID. 사용자가 속하는 나머지 그룹은 시스템 그룹 파일에 존재
- 주석 : 사용자를 설명하는 텍스트
- 홈디렉토리 : $HOME 환경변수의 값이 된다.
- 로그인 쉘 : 사용자가 로그인한 다음 제어권을 넘겨받는 프로그램. 보통은 쉘이지만 어떤 프로그램이어도 상관 없다. 이 필드는 $SHELL 환경 변수의 값이 된다.
[예시]
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
messagebus:x:102:105::/var/run/dbus:/bin/false
colord:x:103:108:colord colour management daemon,,,:/var/lib/colord:/bin/false
lightdm:x:104:111:Light Display Manager:/var/lib/lightdm:/bin/false
whoopsie:x:105:114::/nonexistent:/bin/false
avahi-autoipd:x:106:117:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:107:118:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:108:46:usbmux daemon,,,:/home/usbmux:/bin/false
kernoops:x:109:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:110:119:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:111:122:RealtimeKit,,,:/proc:/bin/false
speech-dispatcher:x:112:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
hplip:x:113:7:HPLIP system user,,,:/var/run/hplip:/bin/false
saned:x:114:123::/home/saned:/bin/false
hskim:x:1000:1000:hskim,,,:/home/hskim:/bin/bash
sshd:x:115:65534::/var/run/sshd:/usr/sbin/nologin
vboxadd:x:999:1::/var/run/vboxadd:/bin/false
1.2. /etc/shadow (새도 패스워드)
과거에 유닉스 시스템은 암호화된 패스워드를 포함한 모든 사용자 정보를 /etc/passwd 파일에서 관리하였다. 하지만 이는 보안상의 문제가 있었다. 따라서 보안상에 민감하지 않는 모든 사용자 정보는 공개적으로 읽을 수 있는 패스워드 파일에 두고 암호화되는 패스워드는 특권 프로그램만 읽을 수 있는 새도 패스워드 파일에 두었다.
새도 패스워드 파일은 모든 시스템에서 기능을 제공하는 것은 아니며 자세한 사항은 shadow(5) 메뉴얼 페이지 참조
2. 그룹 관리
여러 관리상의 이유로, 특히 파일과 기타 시스템 자원에 대한 접근 권한을 제어할 떄, 사용자들을 그룹으로 묶으면 편리하다. 하지만 위에서 사용자 관리 시스템을 설명하면서 사용자 관리 파일에서도 그룹을 관리하는 필드가 존재한다. 사용자 시스템에서 관리하는데 왜 또 별도의 파일이 추가된 이유는 역사적인 이유라고 한다.
즉 과거에는 사용자는 한 그룹에만 속했는데 4.2BSD 표준에서 시작하여 현재 POSIX.1-1990에서 표준화되어 한 사용자는 여러 그룹에 속할 수 있는 역사적 배경에 근거한다.
2.1. /etc/group
4개의 필드로 구성되어 있으면 구성은 아래와 같다.
[그룹이름]:[암호화된 패스워드]:[그룹 ID]:[사용자목록]
- 그룹이름 : 패스워드의 로그인 이름처럼 사람이 읽을 수 있는 ID이다.
- 암호화된 패스워드 : 그룹 패스워드 (선택사항). 현재는 거의 사용하지 않음. 패스워드가 설정되어 있으면 newgrp(1)을 실행하면 패스워드를 문의하는데 이 때 비교되는 패스워드이다.
- 그룹 ID: 그룹의 숫자 ID.
- 사용자 목록: 해당 그룹에 속한 사용자를 콤마(,) 구분하여 나열한다.
3. 참고 사항
아래의 사항을 보자. 사용자 avr 이 세개의 그룹 (users, staff, teach)에 속한다고 해 보자. 시스템 관리 파일은 다음과 같이 구성될 수 있을 것이다.
avr:x:100:100:Anthony Robins:/home/avr:/bin/bash
2. /etc/group 파일 구성
users:x:100:
staff:x:101:mtk,avr,martini
teach:x:104:avr,rlb,alc
위에서 사용자 패스워드 관리 시스템 파일에서 avr의 그룹 ID는 100이다. 하지만 아래 그룹 관리 시스템 파일에서는 각각 100, 101,104에 포함되어 있다.
정리하면 사용자 패스워드 시스템 파일에 대표 그룹 ID를 표시하고, 나머지 그룹에 대한 것은 해당 그룹 파일 시스템의 사용자 목록 필드에 사용자를 적어준다는 것을 알 수 있다.
'System Program > common' 카테고리의 다른 글
mount 관련 정리 (0) | 2013.08.07 |
---|