'System Program/common'에 해당되는 글 2건

  1. 2013.08.08 사용자와 그룹 관리 시스템 파일
  2. 2013.08.07 mount 관련 정리

사용자와 그룹 관리 시스템 파일

System Program/common 2013. 8. 8. 07:22

1. 사용자 관리 시스템 

 

1.1. /etc/passwd

 

7개의 필드로 구성된 한줄의 기록으로 사용자를 관리한다. 각 필드는 콜론 (:)으로 구분된다.

 

[로그인이름]:[암화화된 패스워드]:[사용자ID]:[그룹ID]:[주석]:[홈디렉토리]:[로그인쉘]

 

각 필드의 구성은 다음과 같다.

 

  • 로그인 이름 : 사용자가 로그인할 시 입력해야 하는 고유 이름.

 

  • 암호화된 패스워드 : 13자로 이뤄진 암호화된 패스워드. 최근에는 새도 패스워드를 사용하여 별도의 시스템 파일에 관리하고 있다. 이 경우 보통 필드는 'x'로 표시되어 있다. 만약 해당 필드가 비어 있으면 패스워드 없이 로그인이 가능하다.

 

  • 사용자 ID : 이 필드의 값이 '0'이면 슈퍼유저 권한을 갖는다. 커널 2.4 이후에는 32비트로 저장된다.

 

  • 그룹 ID: 사용자가 속하는 첫 번째 그룹의 숫자 ID. 사용자가 속하는 나머지 그룹은 시스템 그룹 파일에 존재

 

  • 주석 : 사용자를 설명하는 텍스트

 

  • 홈디렉토리 : $HOME 환경변수의 값이 된다.

 

  • 로그인 쉘 : 사용자가 로그인한 다음 제어권을 넘겨받는 프로그램. 보통은 쉘이지만 어떤 프로그램이어도 상관 없다. 이 필드는 $SHELL 환경 변수의 값이 된다.

 

[예시]

 

hskim@hskim-VirtualBox:~$ cat /etc/passwd
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)에 속한다고 해 보자. 시스템 관리 파일은 다음과 같이 구성될 수 있을 것이다.

 

1. /etc/passwd 파일 구성
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
:

mount 관련 정리

System Program/common 2013. 8. 7. 13:00

1. 리눅스 마운트 정보 관리

 

  • /etc/fstab

                리눅스 시스템이 처음 기동할 때 마운트 할 정보를 가지고 있는 파일이다.

  • /etc/mtab           

               리눅스 부팅 후에 리눅스에 현재 마운트되어 있는 정보를 관리하는 파일이다.

 

참고로 UUID관련 내용은 다음 웹페이지를 참조한다.

http://blog.simplism.kr/?p=2578

 

2. mount 명령어

 

mount [-fnrvw] [-t 파일시스템 종류] [-o 옵션] 디바이스명 디렉터리명

 

2.1. [ -fnrvw ] option 

 

옵션

설명 

 v

 자세한 내용을 출력합니다.

 f

 실제로 마운트를 하지 않고 마운트를 할 수 있는지 점검합니다

 n

 실제로 마운트를 하지 않고 마운트를 할 수 있는지 점검합니다

 r

 읽기만 가능하게 마운트 합니다. -o ro 옵션과 같습니다.

 w

 읽기/쓰기 모드로 마운트 합니다. 기본설정값이며 -o rw 옵션과 같습니다.

 

2.2. [-t 파일 시스템 종류] option

 

 옵션

설명 

 t

 파일시스템 종류에는 ext3, iso9660등 파일시스템 종류를 적어줍니다.

 만약 이 옵션을 사용하지 않는다면 파일시스템의 수퍼블럭을 조사하여

 자동으로 파일시스템이  선택됩니다.

 

2.3. [-o ] option

 

 옵션

설명 

 defaults

 rw, suid, dev, auto, nouser, async의 옵션이 선택됩니다.

 async

 파일시스템에 대한 입출력이 비동기적으로 이루어지게 합니다. 

 auto

 -a 옵션으로 마운트가 가능하게 합니다.

 dev

 파일시스템의 문자, 블럭 특수장치를 해석합니다. 

 exec

 바이너리의 실행을 허가 합니다. 

 noauto

 -a 옵션으로는 마운트 되지 않으며 명시적으로만 마운트가 가능합니다. 

 noexec

 바이너리의 실행을 허가하지 않습니다. 

 nosuid

 set-UID, set-GID를 무시합니다. 

 nouser

 일반 사용자가 마운트할 수 없게 합니다. 

 remount

 이미 마운트된 파일시스템을 다시 마운트 합니다. 

 ro

 읽기 전용

 rw

 읽기 쓰기 가능

 suid

 nosuid 반대 기능

 sync

 파일 시스템에 대한 입출력 동기화

 user

 nouser 반대 기능

 

3. unmount 명령어

 

umount [-nv] 디바이스명 or 디렉터리명

 

3.1. [-nvat ] option 

 

옵션

설명 

 n

/etc/mtab 파일을 갱신하지 않고 마운트를 해제 합니다.

 v

자세한 정보를 보여줍니다. 

 a

/etc/mtab 파일에 명시된 모든 파일시스템의 마운트를 해제 합니다. 

 t

-a 명령어와 함께 사용되며 이 옵션이 지정되면 /etc/mtab 파일에 명시된 모든 파일시스템 중 유저가 입력한 파일시스템만 마운트를 해제 

 

4. mount -a [-fnrvw] [-t fiilesystem]

 

/etc/fstab에 기술된 디바이스 노드들을 자동으로 마운트하는 명령어

일반적으로 초기 부팅 쉘에 사용된다.

 

 

'System Program > common' 카테고리의 다른 글

사용자와 그룹 관리 시스템 파일  (0) 2013.08.08
: