[FTZ] training6

지난 포스팅에서도 언급했듯 이번 포스팅에서는 /etc/passwd 파일을 분석하겠습니다.

/etc/passwd

passwd 파일의 역할은 training4에서 간단하게 살펴봤습니다. 서버를 사용하는 사용자들의 정보를 간단히 기록해두는 파일이라고 했었죠. 이제 passwd파일을 분석하기 위해 프롬프트에 cat /etc/passwd를 입력합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[trainer6@ftz trainer6]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/bin/bash
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/html/usage:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
guest:x:1000:1000::/home/guest:/bin/bash
trainer1:x:2001:2001:Trainer 1:/home/trainer1:/home/trainer1/sh
trainer2:x:2002:2002:Trainer 2:/home/trainer2:/home/trainer2/sh
trainer3:x:2003:2003:Trainer 3:/home/trainer3:/home/trainer3/sh
trainer4:x:2004:2004:Trainer 4:/home/trainer4:/home/trainer4/sh
trainer5:x:2005:2005:Trainer 5:/home/trainer5:/home/trainer5/sh
trainer6:x:2006:2006:Trainer 6:/home/trainer6:/home/trainer6/sh
trainer7:x:2007:2007:Trainer 7:/home/trainer7:/home/trainer7/sh
trainer8:x:2008:2008:Trainer 8:/home/trainer8:/home/trainer8/sh
trainer9:x:2009:2009:Trainer 9:/home/trainer9:/home/trainer9/sh
trainer10:x:2010:2010:Trainer 10:/home/trainer10:/home/trainer10/sh
level1:x:3001:3001:Level 1:/home/level1:/bin/bash
level2:x:3002:3002:Level 2:/home/level2:/bin/bash
level3:x:3003:3003:Level 3:/home/level3:/bin/bash
level4:x:3004:3004:Level 4:/home/level4:/bin/bash
level5:x:3005:3005:Level 5:/home/level5:/bin/bash
level6:x:3006:3006:Level 6:/home/level6:/bin/bash
level7:x:3007:3007:Level 7:/home/level7:/bin/bash
level8:x:3008:3008:Level 8:/home/level8:/bin/bash
level9:x:3009:3009:Level 9:/home/level9:/bin/bash
level10:x:3010:3010:Level 10:/home/level10:/bin/bash
level11:x:3091:3091::/home/level11:/bin/bash
level12:x:3092:3092::/home/level12:/bin/bash
level13:x:3093:3093::/home/level13:/bin/bash
level14:x:3094:3094::/home/level14:/bin/bash
level15:x:3095:3095::/home/level15:/bin/bash
level16:x:3096:3096::/home/level16:/bin/bash
level17:x:3097:3097::/home/level17:/bin/bash
level18:x:3098:3098::/home/level18:/bin/bash
level19:x:3099:3099::/home/level19:/bin/bash
level20:x:3100:3100::/home/level20:/bin/bash
clear:x:3101:3101::/home/clear:/bin/bash

지난 시간에 봤던 내용들이 출력됐습니다. 복잡하지만 한 줄씩 살펴보겠습니다.

1
root:x:0:0:Admin:/root:/bin/bash

위의 문자열은 ‘:’를 기준으로 하여 7개의 필드로 나뉘어집니다.

  1. 첫 번째 필드에 적힌 부분은 로그인할 때 사용하는 ID입니다. 참고로 ID는 whoami, id 명령어로도 확인할 수 있었죠?
  2. 두 번째 필드는 x라는 문자만 있습니다. 이것은 리눅스 5.0v까지는 사용자의 실제 암호가 암호화되어 저장되어 있었지만, 크래커들이 이 암호를 해독하는 프로그램을 만들어 암호를 알았내기 때문에 보안상의 이유로 해당 필드를 사용하지 않습니다. 대신 /etc/shadow라는 파일에 사용자들의 암호를 모아두는 새로운 방식이 등장했고, 이 파일을 관리자만이 읽을 수 있도록 설정되어 있습니다. 만약 권한이 없는 파일을 열려하면 다음과 같은 에러 메시지가 출력됩니다.
1
2
[guest@ftz guest]$ cat /etc/shadow
cat: /etc/shadow: 허가 거부됨
  1. 세 번째 필드는 로그인할 때 사용한 이름이 컴퓨터 쉽게 읽을 수 있는 숫자 아이디로 표시된 것입니다.
  2. 네 번째 필드 또한 세 번째 필드처럼 해당 사용자가 속해있는 그룹을 의미합니다.
    1
    root : x : 0 : 0 : Admin : /root : /bin/bash
    컴퓨터가 위의 사용자를 인식할 때, “0이라는 사용자이고, 해당 사용자는 0이라는 그룹에 속해있다” 라고 판단한다고 합니다.
  3. 다섯 번째 필드는 사용자의 이름입니다. 대학 서버들은 모든 학생들에게 리눅스 계정을 준다고 하는데, 이 필드에 그 학생의 실명이 들어간다고 합니다.
  4. 여섯 번째 필드는 사용자가 로그인에 성공하면 기본적으로 위치할 디렉토리를 표시합니다.
  5. 마지막 필드는 사용자가 로그인에 성공했을 때, 처음으로 실행하게 될 프로그램을 나타냅니다. 일반적으로 로그인하면 위의 출력결과처럼 쉘이 실행됩니다.

FTZ training6 정리글을 마칩니다.



Author

Jaeyun Cha

Posted on

2020-01-06

Updated on

2023-04-11

Licensed under

댓글