UNIX 계열의 시스템에서는 기본 관리자 계정으로 root가 존재하며, 계정 목록은 /etc/passwd 파일에서 확인할 수 있습니다.
passwd 파일
계정 정보 /etc/passwd 파일에 저장
ubuntu@ubuntu-VirtualBox:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
uuidd:x:105:111::/run/uuidd:/usr/sbin/nologin
avahi-autoipd:x:106:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
dnsmasq:x:108:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
rtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologin
cups-pk-helper:x:110:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
whoopsie:x:112:117::/nonexistent:/bin/false
kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
saned:x:114:119::/var/lib/saned:/usr/sbin/nologin
pulse:x:115:120:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
avahi:x:116:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
colord:x:117:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
hplip:x:118:7:HPLIP system user,,,:/var/run/hplip:/bin/false
geoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologin
gnome-initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
ubuntu:x:1000:1000:ubuntu,,,:/home/ubuntu:/bin/bash
mysql:x:122:127:MySQL Server,,,:/nonexistent:/bin/false
vboxadd:x:999:1::/var/run/vboxadd:/bin/false
/etc/passwd 파일 구성
① 사용자 계정
② 패스워드가 암호화되어 shadow 파일에 저장되어 있음
③ 사용자 번호(UID: User ID)
④ 그룹 번호(GID: Group ID)
⑤ 사용자 이름
⑥ 사용자의 홈 디렉터리(관리자 계정은 /root 디렉토리이며, 일반 사용자는 /home 디렉터리 하위에 위치)
⑦ 사용자의 쉘(shell)(기본 설정은 bash)
UID, GID
- 관리자는 "0"이며, 일반 사용자는 그 외의 번호로 설정
- UID가 동일하면 사용자 계정이 달라도 동일한 권한을 가짐
- UID가 0인 계정은 관리자 권한을 가짐
group 파일
그룹 정보를 /etc/group 파일에 저장
ubuntu@ubuntu-VirtualBox:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,ubuntu
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:ubuntu
floppy:x:25:
tape:x:26:
sudo:x:27:ubuntu
audio:x:29:pulse
dip:x:30:ubuntu
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:ubuntu
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
input:x:104:
crontab:x:105:
syslog:x:106:
messagebus:x:107:
netdev:x:108:
mlocate:x:109:
ssl-cert:x:110:
uuidd:x:111:
avahi-autoipd:x:112:
bluetooth:x:113:
rtkit:x:114:
ssh:x:115:
lpadmin:x:116:ubuntu
whoopsie:x:117:
scanner:x:118:saned
saned:x:119:
pulse:x:120:
pulse-access:x:121:
avahi:x:122:
colord:x:123:
geoclue:x:124:
gdm:x:125:
ubuntu:x:1000:
sambashare:x:126:ubuntu
mysql:x:127:
vboxsf:x:999:
/etc/group 파일 구성
① 그룹 이름
② 그룹에 대한 패스워드 (일반적으로 사용하지 않음)
③ 그룹 번호
④ 해당 그룹에 속한 계정 목록 (완전하지 않으므로 passwd 파일과 비교하는 것이 가장 정확)
shadow 파일
암호화한 패스워드와 유효기간 등을 기록한 파일로 root 계정만 읽을 수 있도록 제한
ubuntu@ubuntu-VirtualBox:~$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2508 4월 25 14:17 /etc/passwd
ubuntu@ubuntu-VirtualBox:~$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1418 4월 28 20:31 /etc/shadow
ubuntu@ubuntu-VirtualBox:~$ cat /etc/shadow
cat: /etc/shadow: 허가 거부
ubuntu@ubuntu-VirtualBox:~$ su -
암호: root
root@ubuntu-VirtualBox:~# cat /etc/shadow
root:$6$gdHix.0L$OsfbpmRm6bpaHhkb3dTOiu/3UZvNTdVUcKsXigYRxY4vrcYAelrLzfi4uN/p2MDKyTVCbyx2cC0ixsIRsWopk0:18014:0:99999:7:::
daemon:*:17937:0:99999:7:::
bin:*:17937:0:99999:7:::
sys:*:17937:0:99999:7:::
sync:*:17937:0:99999:7:::
games:*:17937:0:99999:7:::
man:*:17937:0:99999:7:::
lp:*:17937:0:99999:7:::
mail:*:17937:0:99999:7:::
news:*:17937:0:99999:7:::
uucp:*:17937:0:99999:7:::
proxy:*:17937:0:99999:7:::
www-data:*:17937:0:99999:7:::
backup:*:17937:0:99999:7:::
list:*:17937:0:99999:7:::
irc:*:17937:0:99999:7:::
gnats:*:17937:0:99999:7:::
nobody:*:17937:0:99999:7:::
systemd-network:*:17937:0:99999:7:::
systemd-resolve:*:17937:0:99999:7:::
syslog:*:17937:0:99999:7:::
messagebus:*:17937:0:99999:7:::
_apt:*:17937:0:99999:7:::
uuidd:*:17937:0:99999:7:::
avahi-autoipd:*:17937:0:99999:7:::
usbmux:*:17937:0:99999:7:::
dnsmasq:*:17937:0:99999:7:::
rtkit:*:17937:0:99999:7:::
cups-pk-helper:*:17937:0:99999:7:::
speech-dispatcher:!:17937:0:99999:7:::
whoopsie:*:17937:0:99999:7:::
kernoops:*:17937:0:99999:7:::
saned:*:17937:0:99999:7:::
pulse:*:17937:0:99999:7:::
avahi:*:17937:0:99999:7:::
colord:*:17937:0:99999:7:::
hplip:*:17937:0:99999:7:::
geoclue:*:17937:0:99999:7:::
gnome-initial-setup:*:17937:0:99999:7:::
gdm:*:17937:0:99999:7:::
ubuntu:$6$Ddd6s7eT$5KEsnvmlyGPVmPsqxS5cN5OrUacVeIxwcOvbjwprS.3eJEgPXUha.6CBeupBNlxQ9xFz.oymGGbJHt1rq3/J00:18014:0:99999:7:::
mysql:!:18009:0:99999:7:::
vboxadd:!:18011::::::
shadow 파일 구성
① 사용자 계정
② 암호화된 사용자의 패스워드 ($1$ = MD5, $5$ = SHA256, $6$ = SHA512)
③ 1970년 1월 1일부터 마지막으로 패스워드를 변경한 날까지의 일자 수
④ 패스워드를 변경하기 전에 패스워드를 사용한 기간 (0 = 최초 설정 후 변경하지 않음)
⑤ 패스워드를 변경하지 않고 사용할 수 있는 기한
⑥ 패스워드 변경기한 만료 며칠 전부터 경고메시지를 보여줄지를 설정
⑦ 계정에 대한 사용 제한을 설정하고 며칠 후에 완전히 사용을 정지할지 설정
⑧ 1970년 1월 1일부터 계정이 완전 사용 정지된 날까지의 일자 수
⑨ 관리자가 임의로 사용할 수 있는 부분
shadow 파일 사용
- /etc/passwd 파일은 일반 사용자가 읽을 수 있으므로 위험
- 암호화한 패스워드와 유효기간 등을 /etc/shadow 파일에 저장하고, root 계정만 읽을 수 있도록 제한
ubuntu@ubuntu-VirtualBox:~$ sudo pwunconv
ubuntu@ubuntu-VirtualBox:~$ grep -E "root|ubuntu" /etc/passwd
root:$6$gdHix.0L$OsfbpmRm6bpaHhkb3dTOiu/3UZvNTdVUcKsXigYRxY4vrcYAelrLzfi4uN/p2MDKyTVCbyx2cC0ixsIRsWopk0:0:0:root:/root:/bin/bash
ubuntu:$6$Ddd6s7eT$5KEsnvmlyGPVmPsqxS5cN5OrUacVeIxwcOvbjwprS.3eJEgPXUha.6CBeupBNlxQ9xFz.oymGGbJHt1rq3/J00:1000:1000:ubuntu,,,:/home/ubuntu:/bin/bash
ubuntu@ubuntu-VirtualBox:~$ sudo pwconv
ubuntu@ubuntu-VirtualBox:~$ grep -E "root|ubuntu" /etc/passwd
root:x:0:0:root:/root:/bin/bash
ubuntu:x:1000:1000:ubuntu,,,:/home/ubuntu:/bin/bash
관리자 계정 관리
- 임의 생성된 관리자 계정의 존재 여부를 확인
- 관리자 계정은 root가 아닌 다른 이름으로 바꿔서 사용하는 것을 권장
ubuntu@ubuntu-VirtualBox:~$ grep ':0:' /etc/passwd
root:x:0:0:root:/root:/bin/bash
시스템에 로그인할 필요가 없는 사용자는 쉘을 제거
- /etc/passwd 파일에서 쉘이 정의된 부분을 수정하거나, usermod 명령어를 이용하여 쉘 정보를 변경
- 웹 사용자 중 시스템에 로그인할 필요가 있는 사용자는 쉘이 부여된 별도의 계정을 사용
ubuntu@ubuntu-VirtualBox:~$ sudo adduser tester
[sudo] ubuntu의 암호: votmdnjem
'tester' 사용자를 추가 중...
새 그룹 'tester' (1001) 추가 ...
새 사용자 'tester' (1001) 을(를) 그룹 'tester' (으)로 추가 ...
'/home/tester' 홈 디렉터리를 생성하는 중...
'/etc/skel'에서 파일들을 복사하는 중...
새 UNIX 암호 입력: tester
새 UNIX 암호 재입력: tester
passwd: 암호를 성공적으로 업데이트했습니다
tester의 사용자의 정보를 바꿉니다
새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요
이름 []:
방 번호 []:
직장 전화번호 []:
집 전화번호 []:
기타 []:
정보가 올바릅니까? [Y/n]
ubuntu@ubuntu-VirtualBox:~$ grep tester /etc/passwd
tester:x:1001:1001:,,,:/home/tester:/bin/bash
ubuntu@ubuntu-VirtualBox:~$ su tester
암호: tester
tester@ubuntu-VirtualBox:/home/ubuntu$ exit
exit
ubuntu@ubuntu-VirtualBox:~$ sudo usermod -s /bin/none tester
ubuntu@ubuntu-VirtualBox:~$ grep tester /etc/passwd
tester:x:1001:1001:,,,:/home/tester:/bin/none
ubuntu@ubuntu-VirtualBox:~$ su tester
암호: tester
/bin/none을(를) 실행할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
'보안' 카테고리의 다른 글
06 패스워드 관리 (0) | 2019.04.29 |
---|---|
04 계정 관리 (windows) (0) | 2019.04.28 |
03 식별, 인증, 인가, 책임추적성 (0) | 2019.04.28 |
02 시스템 보안 (0) | 2019.04.28 |
01 정보보안 (0) | 2019.04.27 |
댓글