카테고리 없음2013. 6. 18. 10:03

 

20-2장. 부팅과정과 시스템 초기화

 

 

● 시스템 부팅 과정


 

 

● 런레벨(runlevel)
- 시스템을 운영하는 7개의 방법
- Windows 계열의 표준모드, 안전모드, 도스프롬프트모드 등과 비슷
- 리눅스 부팅시 결정
- /etc/rc.d/rc 파일 -> /etc/rc?.d/ 디렉토리 파일 실행
- 종류
   → 0 : 시스템 종료 (# halt == # init 0)
   → 1 : 싱글모드, root 사용자의 패스워드 분실시
   → 2 : 네트웍기능 없는 다중사용자 모드
   → 3 : 일반적 형태(텍스트). 네트웍기능이 포함된 다중사용자 모드
   → 4 : 예비 레벨
   → 5 : 일반적 형태 (그래픽). runlevel 3과 거의 유사.
   → 6 : 재부팅 모드 (# reboot == # init 6)

 

 

/etc/inittab 파일
- "코드 런레벨:행동:명령어" 형식
- 주요 코드
   → id:3:initdefault:
      ☞ 기본으로 runlevel 3번으로 부팅

   si::sysinit:/etc/rc.d/rc.sysinit
      ☞ 시스템 초기화를 위한 설정
   → |0:0:wait:/etc/rc.d/rc 0
   → |1:1:wait:/etc/rc.d/rc 1
      ☞ 기본으로 세팅된 런레벨에 의해서 실행
   → ca::crtlaltdel:/sbin shutdown -t3 -r now
      ☞ ctrl-alt-del 키보드 사용
      ☞ "#" 주석처리 권장

 

 

● 현재 런레벨 확인
- 명령어 : # runlevel

 

 

● 시스템 부팅시 특정 서비스 실행
- 명령어 : # ntsysv
- /etc/init.d/디렉토리에 존재하는 파일 -> /etc/sysconfig/ 참조

 

 


[실습]

 
● Root 암호 분실시 부팅방법
● ntsysv 사용법

 

 

 

< root 사용자 암호 GRUB으로 변경하기 >

 

 

 

만약에 내가 root 사용자의 암호를 잊어버렸다면

어떻게 해야할까?

 

 


 

GRUB 창에서

'p' 를 눌러서 GRUB 암호를 입력한다.

 



 

그리고 'e' 를 눌러서 edit 모드로 진입

 



 

수정해야 할 부분은 두번째 줄이다.

싱글모드로 런레벨을 수정해보자.

'e' 를 누른다.

 



 

grub edit 모드로 들어왔다.

 



 

마지막 LABEL=/ 에서 한칸 띄고 사용할 런레벨 번호를 입력하면 된다.

싱글모드는 1번이므로 '1'을 입력하고 엔터키를 친다.

 



 

그럼 수정이 되었고 이대로 'b' 키를 눌러 부팅을 하자.

 



 

싱글모드로 부팅중

 



 

싱글 유저 모드로 부팅이 되었다.

 



 

이제 루트의 패스워드를 변경하자.

 

passwd

새로운 패스워드 입력

 

패스워드를 변경하였으면 reboot 명령으로 다시 부팅을 하자.

 



 

다시 GRUB 창이 뜨면 이번엔 정상적으로 첫번째로 부팅을 하자.

 



 

root 사용자로 로그인을 하자.

 


 

 이제 새로운 패스워드로 들어가면 된다.

 

 

만약에 GRUB 암호를 설정해 놓지 않는다면

아무나 GRUB을 조정해 root 암호를 수정할 수가 있다.

이는 엄청난 보안의 문제를 가져올 수 있으므로 GRUB 암호 설정은 필수라 할 수 있겠다.

 

 

 

 

 

< /etc/inittab 파일 확인 >

 

 


vi /etc/inittab



id:5:initdefault:

 

숫자를 3으로 바꿔주면 텍스트 모드로 부팅하겠다는 의미

 

/etc/rc.d/rc 파일은 0번부터 6번까지의 런레벨이 사용하겠다는 건데

저 파일안에 있는 내용대로 부팅이 진행이 된다.

 



간단하게

vi /etc/rc.d/rc 로 살펴보면

복잡한 쉘 프로그래밍으로 짜여진 부분들을 볼 수 있다.

 

이러한 내용들은 나중에 살펴보자.

 

 

 

 

< ntsysv >

 

부팅시에 특정 명령들을 실행하는 ntsysv에 대해 살펴보자.



머.. 살펴볼꺼 까진 없고 그냥 한번 보자.

 

ntsysv


 

Windows의 '서비스'와 같은 역할을 한다.

사용하고 싶은 기능에 스페이스를 눌러 '*'로 표시하면

부팅할때 그 기능을 사용하겠다는 의미다.

 

 

 

[정리]


● GRUB 부트로더 편집
● 시스템 부팅 과정
● 부팅 초기화 파일

Posted by 아이맥스
카테고리 없음2013. 6. 18. 10:00

 

21장. 시스템 설정 정보

 

학습목표

 

- /etc/sysconfig 디렉토리의 파일에 대해서 알아본다.

 


● /etc/sysconfig 디렉토리의 파일
   - /etc/init.d/ 의 초기화 스크립트가 필요시 참조하는 파일
   - 서비스 구현시 각종 옵션을 변수값으로 기록한 파일
   - /etc/init.d/ 파일을 수정하는 것보다 /etc/sysconfig/ 설정값을 변경하는 것이

     시스템 유지보수에 편리
   - rpm 패키지로 설치하지 않았을 때, 파일이 존재하지 않을수도 있음
   - 필요에 따라 변경

 

● /etc/sysconfig/amd
   - amd 데몬 실행시 옵션과 디렉토리 설정

 

● /etc/sysconfig/apmd
   - 시작/종료/변경 및 보류 등에대한 설정

 

● /etc/sysconfig/authconfig
   - 사용자 정보 및 인증 방법 설정
   - # authconfig 명령을 사용하거나, 직접 변경가능

 

● /etc/sysconfig/clock
   - 시간에 관련된 내용을 설정하는 영역

 

● /etc/sysconfig/desktop
   - X윈도우 가동시 사용할 데스크탑 매니저 결정
   - "GNOME"이나 "KDE" 선택

 

● /etc/sysconfig/harddisk
   - 하드디스크 설정 (주의!)

 

● /etc/sysconfig/hwconf
   - 현 리눅스에서 어떠한 하드웨어를 인식하는지 참고용

 

● /etc/sysconfig/i18n
   - 시스템에게 현재 사용되는 언어를 알려줌

 

● /etc/sysconfig/init
   - 부팅과정에서 시스템 초기화시 출력될 화면 설정

 

● /etc/sysconfig/iptables
   - 방화벽 및 NAT 설정시 유용한 설정영역

 

● /etc/sysconfig/keyboard
   - 키보드 제어방법을 설정

 

● /etc/sysconfig/kudzu
   - 부팅시 검색할 하드웨어 영역 설정

 

● /etc/sysconfig/mouse
   - 마우스 정보 설정

 

● /etc/sysconfig/named
   - 네임 서버 구동시 사용할 옵션 지정

 

● /etc/sysconfig/network
   - 네트워크에 관련된 기본값 설정

 

● /etc/sysconfig/network-scripts
   - 네트워크 장치에 대한 정보를 기록파일 및 명령어가 있는 디렉토리

 

● /etc/sysconfig/vncservers
   - vnc 서버를 구동하는 방법 설정

 


[정리]


● 각 시스템 정보 설정파일의 의미

Posted by 아이맥스
카테고리 없음2013. 6. 18. 09:57

 

22장. 사용자 관리와 비밀번호

 

 

학습목표

- 사용자 관리의 방법을 알아본다.

 

 

● 리눅스 제공 표준 사용자 및 표준 그룹 (root)
- /etc/passwd, /etc/group
- UID(UserID)  : 사용자계정과 대응하는 시스템이 인식하는 고유한 숫자 (root는 0)
- GID(GroupID) : 그룹명과 대응하는 시스템이 인식하는 고유한 숫자
- 사용자 : ID와 Password를 가지고 리눅스 사용권한을 가짐
- 그룹 : 여러 사용자에게 같은 권한을 가질 수 있도록 묶는 역할

 


● 명령어를 이용한 사용자 관리
- root 관리자가 생성


- 명령어 : useradd new-id [옵션] [변경값] (useradd = adduser)
   → 예) 디렉토리 지정 # useradd woo -d /home/woo
   →     쉘 지정 # useradd woo -s /bin/tcsh
   →     그룹 지정 # useradd woo -g mygroup

 

- 명령어 : passwd user-id
   → 예) # passwd woo

- 명령어 : userdel [옵션] user-id
   → 예) 디렉토리까지 삭제 # userdel -r woo

 

- 명령어 : usermod [옵션] [변경값] user-id
   → 예) 그룹변경 # usermod -g user woo
   →     디렉토리 변경 # usermod -d /woo woo


 

- 명령어 : chage [옵션] [변경값] user-id
   → 예) ID사용 만료일지정 # chage -E 2004/02/01 woo

 

- 사용자 추가시 기본값 -> /etc/login.defs

 

- skel 디렉토리 -> /etc/skel/ (사용자가 생성될 때 제공할 기본 파일이 있음)

- 명령어 실행시 작동순서
   → 1. /etc/passwd 에 사용자 추가
   → 2. /etc/group 에 그룹이름 추가
   → 3. /home 디렉토리 밑에 계정이름과 같은 이름의 디렉토리 생성 (계정 공간)
   → 4. /etc/skel 디렉토리의 파일내용을 계정공간으로 복사
   → 5. 패스워드는 나중에 passwd <계정이름> 으로 설정

 

- root 사용자는 모든 패스워드 변경가능

 

- 일반 사용자는 자기 패스워드만 변경

 

- /etc/shadow/etc/passwd 차이
   → : passwd는 모든사용자가 읽기 가능,
   → : shadow는 root 만 읽기 가능

 

- 사용자 계정 변경
   → # su -> root 권한 획득
   → # su - -> root 권한 획득 + root 환경설정
   → # su 사용자명 -> 사용자 권한 획득

 

- /etc/passwd 파일의 구조
   ※ account:password:UID:GID:GECOS:directory:shell
      ☞ account                 사용자이름
      ☞ password               암호(shadows 파일로 대치될 경우 * 표시)
      ☞ UID, GID                 사용자번호, 그룹번호
      ☞ GECOS                  사용자정보(사용자 Full Name)
      ☞ directory                사용자의 홈디렉토리
      ☞ shell                      사용자의 기본 shell
   → 계정앞에 "*" 표시하면 계정잠금
   → 첫 User나 Group의 UID, GID는 500번으로 시작

 

- /etc/shadow 파일구조
   ※ account:encryptedpassword:last:may:must:warn:expire:disable:reserved
      ☞ account                    계정이름
      ☞ encrypted password   암호화된 패스워드
      ☞ last                          최근 패스워드 변경일 (1970년 1월 1일 기준의 날짜 수)
      ☞ may                         패스워드 변경 후, 재설정을 위한 대기일 수
      ☞ must                        패스워드 유효기간
      ☞ warn                        패스워드 변경 경고 시간
      ☞ expire                      패스워드 만료시간 이후 계정을 사용할 수 없게 되는 기간
      ☞ disable                    계정 사용 불가능 날짜 (1970년 1월 1일 기준의 날짜 수)
      ☞ reserved                  예약된 영역

 

- 그룹생성
   → # addgroup -g gid <그룹이름>

 

- 그룹삭제
   → # delgroup <그룹이름>

 

- 그룹변경
   → # groupmod -n <new 그룹이름> <old 그룹이름>

 

- /etc/group 파일구조
   ※ group_name:password:GID:user-list
   → group_name : 그룹명
   → Password : 그룹 패스워드(필요 시 사용, 일반적으로 사용하지 않음)
   → GID : 그룹 번호
   → User-list : 그룹에 속한 User ID, 콤마(,)로 구분

 

- 사용자 확인 명령
   → # whoami
   → # who am i
   → # id
   → # groups

 


[실습]


● 명령어를 이용한 사용자 관리
● X윈도우 환경에서 사용자 관리

 

 

 

 

/etc/passwd >

 

 

사용자 관리를 위한 기본적인 파일이다.

 

 


vi /etc/passwd



root:x:0:0:root:/root:/bin/bash

 

root : 사용자 이름

x : passwork 암호

0 : UID

0 : GID

root : GECOS 사용자 정보 (딱히 지워도 상관없다)

/root : root 사용자의 홈 디렉토리

/bin/bash : root 사용자의 기본 쉘

 

각 사용자들의 정보를 확인할 수 있다.

대표적으로 root 사용자에 대한 부분을 확인해보았는데

예를들면 root의 그룹번호는 0이다.

 

이게 왜 0인지 잘 모르겠다.

어디서 확인할 수 있을까?


 

vi /etc/group



 

각각의 그룹들을 확인할 수 있는 /etc/group 파일을 확인해보면

이렇게 기본적으로 시스템이 부여한 그룹 번호들을 확인할 수도 있다.

 

 


이번엔 john이라는 사용자를 만들어보도록 하자.

 

useradd john

 

치면 아무 변화가 없다.

에러메시지가 뜨지 않으면 성공적으로 만들어진 것이다.

 

그리고 잘 만들어졌는지 확인해보자.

vi /etc/passwd

 



맨 아래에 보면 john 사용자에 대한 정보가 있는 것을 볼 수 있다.

잘 만들어 졌다.

 

john은 일반 사용자 이기 때문에 500번 부터 UID와 GID를 부여 받았다.

 

그전에 내가 만든 master라는 사용자가 처음 만들어졌기 때문에 500번을 부여받았고

john은 그 다음 501번을 부여받았다.

 

 

그렇다면 이러한 정보들은 어디서 직접 지정해주는 걸까?

 

 

 

vi /etc/login.defs

 

/etc/login.defs 파일을 한번 열어보자.

 


 

UID는 500번 부터 60000번까지 생성할 수 있음을 확인할 수 있다.

GID도 UID와 마찬가지이다.

 

CREATE_HOME yes로 되어있는 것은

사용자 홈 디렉토리를 만들것인가인데 이것을 no로 바꾸면 홈 디렉토리를 생성하지 않는다.

 

 

 

/etc/skel >

 

사용자를 생성할 때 기본적인 환경설정 파일이 제공되는 폴더이다.

 


우리는 앞에서 john 사용자를 만들었다.

/home/john 폴더로 한번 가보자.

ls -a를 치면 난 만든적이 없는데

이상한(?) 파일들이 생성되어 있다.

 

어디서 이런 파일들이 생긴 것일까?





cd /etc/skel

 

/etc/skel 폴더로 이동하자.

 

ls -a 하면 기본적으로 새 사용자에게 제공해주는

환경설정 파일들이 여기 있다는 것을 확인할 수가 있다.

 

이번엔 새 사용자를 만들때 hello.txt 파일을 생성하게 해보자.

 

cat > hello.txt

Hello...

라고 내용을 입력하고 Ctrl + Z를 눌러 빠져나온다.

 


/root 폴더로 이동해서

 

adduser bann

bann 사용자를 새로 생성한다.

 

cd /home/bann

bann 사용자의 폴더로 이동해서

 

ls 명령을 쳐보면 hello.txt 파일이 생성되어 있다.

 

cat hello.txt

내용 역시 /etc/skel 에서 만들었던 것과 같은것을 볼 수 있다.

 

 

 

 

 

 

사용자 계정 변경 >

 

 


john 사용자를 만들고 password를 지정해주지 않았으니

지정해주자.

 

passwd john

 

john 사용자로 계정을 변경해보자.

 

su john

 

그럼 john 사용자의 권한만 얻었을 뿐이지

기본 폴더가 /home/john으로 바뀐건 아니다

 

그래서 현재 /root 폴더에서 ls명령을 쳤을때

허가가 거부된 것이다.

 

exit 명령으로 john 사용자로부터 빠져나오자.

 



다시 john 사용자의 권한을 얻는데 이번엔 '-' 를 붙여서 해보자.

 

su - john

그럼 바로 /home/john 폴더가 기본폴더가 된다.

 

whoami를 치면 현재 사용자가 나온다.

 

who am i를 치면 좀 더 자세한 정보가 나온다.

 

id를 치면 UID나 GID같은 정보들을 확인할 수 있다.

 


 

현재 john 사용자인 상태에서 bann 사용자를 한번 지워보자.

 

userdel bann

 

john 사용자는 root가 아니기 때문에 이 명령을 실행할 수가 없다.

exit로 john 사용자로부터 빠져나오자.

 

 

 

root 사용자로 bann 사용자를 지운다.

 

userdel -r bann

 

-r 옵션은 bann 사용자의 디렉토리까지 지우는 것이다.

 

ls /home 을 쳐보면 bann 디렉토리가 지워진 것을 확인할 수 있다.

 

 

 

 

 

 

Group 설정 >

 

 

먼저 그룹을 하나 생성해보자.

 

 

 

groupadd bbb

 

bbb 그룹을 하나 만들었다.

잘 만들어졌는지 확인해보려면

 

cat /etc/group

 

※ adduser같은 경우는 반대로 useradd로 해도 되지만 groupadd는 addgroup가 없다.

 

 

맨 아래줄에 bbb라는 그룹이 502번의 GID를 부여받았음을 볼 수 있다.

 

 

 

adduser abc -g bbb

 

abc 사용자를 만듬과 동시에 bbb 그룹으로 넣는다.

그리고 abc 사용자가 잘 생성되었는지 확인해보자.

 

cat /etc/passwd




맨 아래줄에 abc 사용자가 잘 생성이 되었고

속한 그룹이 502라고 표시되어 있다.

 

502면 그룹 bbb이다.

잘 설정이 되어 있음을 확인할 수 있다.

 

 

 

 

 

 

X 윈도우 환경에서 사용자 관리 >

 

 

X 윈도우 환경에서 사용자 관리 하는 것을 알아보자.

 

 


redhat-config-users

 



'사용자 추가'를 클릭

 



def 사용자를 생성해보자

암호를 입력하고 확인

 



def 사용자가 간단하게 생성이 되었다.

 



이번엔 bbb 사용자를 생성해보자.

암호를 입력하고

"이 사용자의 개인 그룹 생성"을 체크 해제한 후 확인

 



bbb 사용자가 잘 만들어졌지만 기본 그룹은 users로 설정이 되어있다.

 

users는 기본적으로 시스템에서 제공하는 그룹이다.

 

이 bbb 사용자를 john 그룹에 넣어보자.

 



bbb 사용자를 더블클릭한다.

[그룹] 탭에서 users 가 체크되어있는 부분을 찾아 체크해제를 한다.

 



그리고 john 을 찾아서 체크한다.

그리고 확인

 


 

그럼 성공적으로 bbb 사용자가 john 그룹에 속하게 되었다.

 

 


[정리]

 


● 사용자 관리 명령어
● X윈도우 환경에서 사용자 관리

 

Posted by 아이맥스