본문 바로가기
보안

05 계정 관리 (UNIX, LINUX)

by ^..^v 2019. 4. 28.
728x90
반응형

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)

③ 197011일부터 마지막으로 패스워드를 변경한 날까지의 일자 수

④ 패스워드를 변경하기 전에 패스워드를 사용한 기간 (0 = 최초 설정 후 변경하지 않음)

⑤ 패스워드를 변경하지 않고 사용할 수 있는 기한

⑥ 패스워드 변경기한 만료 며칠 전부터 경고메시지를 보여줄지를 설정

⑦ 계정에 대한 사용 제한을 설정하고 며칠 후에 완전히 사용을 정지할지 설정

⑧ 197011일부터 계정이 완전 사용 정지된 날까지의 일자 수

⑨ 관리자가 임의로 사용할 수 있는 부분

 

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을(를) 실행할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
728x90
반응형

'보안' 카테고리의 다른 글

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

댓글