4. 시스템 관리 기본 naldo.

Slides:



Advertisements
Similar presentations
1 장 Unix/Linux 소개 1 Helpers. 1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2.
Advertisements

SPARCS 10 채승우 시스템 관리 기본. Maintaining the System 시스템 유지하기  시스템 관리 작업 - root 계정에서 !  root 계정은 파일 퍼미션과 보안 메커니즘의 적용 X. 즉 모든 파일에 접근 및 수정 가능  모든 사용자에게 모든.
2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
1. Drive A, Drive B 표준 CMOS 설정 화면에서는 하드디스크 드라이브의 특성 외에 플로피디스크 드라이브도 설정해야 합니다. PC에서 FDD를 2개까지 사용할 수 있다. 표준 CMOS  설정 화면의 Drive A와 Drive B 항목에서는 플로피디스크.
시스템 운영계획 OS 설치 및 드라이버 설치 패치 및 업그레이드 보안설정
윈포스 설치 매뉴얼 포스소프트 전화 : 053) 팩스 : 053)
Managing Filesystems, Swap Space, and Devices
사용자 인터페이스와 멀티미디어 2006년 2학기 컴퓨터의 개념 및 실습.
유닉스 OS Installation Solaris 2.6 설치 부팅 설치 후 작업들 Sun patches 설치
소프트웨어와 운영체제.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Boot cd제작방법과 윈도 Administrator Password 초기
Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해
휠 인수인계 세미나 jambo ⓒ 홍양홍삼.
제12강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
1장 유닉스 소개.
USER’S MANUAL 모델명: CCR-201 코드시스템(주)
Essential System Manager
Linux University of Seoul Computer Science Park Jong wook
11장. 리눅스 시스템 조사.
뇌를 자극하는 Windows Server 2012 R2
컴퓨터 네트워크 실습.
제6장 FUSING.
Kernel Porting Lecture #7.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
FUSING.
Complementary Metal Oxide Semiconductor
Tftp, nfs, samba 실습 임베디드 시스템 I.
[beginning] Linux & vi editor
유닉스 이론과 실습 √ 원리를 알면 IT가 맛있다 컴퓨터정보계열 이광규.
UNIX Unbounded A Beginning Approach
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
목차 커널의 개념 및 기능 커널 포팅 램디스크.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
XEN & CLOUD SPARCS14 ONION.
부 록 Ubuntu 설치.
UNIX Unbounded A Beginning Approach
컴퓨터 네트워크 실습.
임베디드 시스템 개론 3주차 Embedded System..
Embedded System Porting (2)
포항공과대학교 PLUS 오태호(PLUS015)
시스템 보안 백 도 어 학번: 이름: 김 준 일.
리눅스 기본 명령어 기본 명령어 명령어 기능 사 용 예 date 날짜 및 시간을 확인하고 생성.
Ch 08. 부트 프로세스 Flatstar.
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
20. 시스템 관리. 수퍼 유저(The Superuser) 시스템 구성(System Configuration)
제 4 강 운영체제 개요 및 리눅스 실습.
강철(cancho_at_sparcs)
상지대학교 컴퓨터공학과 고광만 Lecture 01: 유닉스/리눅스 소개 상지대학교 컴퓨터공학과 고광만
공인인증서 신청 및 발급 제일 먼저 은행에 직접 방문하여 인터넷뱅킹 신청.
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
2018 봄학기 Pusan National University School of CSE
Boot PROM.
Google Cloud Platform을 이용한 서버 인프라 구축
3장. 라우터와 스위치의 기본설정 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
컴퓨터 : 지적 도구 PARSONS/OJA 컴퓨터 사용하기: 기본개념 Page 1 1.
1장. 가상머신(Virtual Machine)의 소개와 설치
라즈베리파이 기초과정 (1차시) ㈜헬로앱스 강사: 김영준 목원대학교 겸임교수.
4장 서버 구축을 위해 알아야 할 핵심 개념과 명령어
유닉스 개요 및 기본 사용법 ㅎㅎ 유닉스 개요 유닉스 시스템 접속 방법과 명령 사용법.
Linux 9.X 기초에서 활용까지 Chapter 03 리눅스 설치.
운영체제 RaspberryPi Sejin Oh.
Unix 방문(접속하여 로그인) 하기 수퍼 유저 되어 사용자 계정 만들기 Unix의 아파치 웹 서버에 홈페이지 등록하기
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
Execution with Unnecessary Privileges
제4장 유닉스 쉘 숙명여대 창병모
소리가 작으면 이어폰 사용 권장!.
임베디드 리눅스 설치 및 동작 Lecture #5.
Presentation transcript:

4. 시스템 관리 기본 naldo

목차 1. 시스템 유지 - Maintaining 2. 시스템 부팅 – Booting 3. 시스템 셧다운 - Shutting down 4. proc 파일시스템 5. 사용자 계정 관리 – Managing User Accounts

시스템 유지

Root 계정 root 계정은 파일 퍼미션과 보안 메커니즘의 적용이 안 된다. 즉, 모든 파일에 접근 및 수정 가능 루트계정에서는 제한이 없기 때문에 작은 오타나 궁금증이 거대한 재난으로 다가올 수 있다 Ex) rm –rf / : 시스템의 모든 파일을 삭제합니다 init 1 : 런레벨을 1로 바꾼다 네트워크가 끊깁니다 리눅스에서 루트 계정은 파일 퍼미션과 보안 메커니즘의 적용이 안됩니다. 즉, 쉽게 말해서 모든 파일에 접근 및 수정이 가능한 계정입니다. 따라서 루트 계정에서는 제한이 없기 때문에 작은 오타나 궁금증이 거대한 재난으로 다가올 수가 있다. 예를 들어서 루트에서 rm –rf command를 내리게 되면, 시스템의 모든 파일을 삭제하게 됩니다. 그리고 init1은 런레벨을 1로 바꾸어 네트워크가 끊기게 됩니다. 여기서 런레벨이라는 용어는 뒤에서 좀 더 추가 설명을 하도록 하겠습니다. 그런데 만약, 모든 사용자가 이 루트 계정을 사용할 수 있어서 모든 파일에 대한 접근 및 수정이 가능하다면, 부팅에 있어서 중요한 파일이라던가, 유저정보가 기록된 파일이라던가, 기타 등등 시스템 유지에 있어서 중요한 파일들이 악의나 실수에 의해 손상이 될 수 있습니다. 따라서 이러한 문제를 방지하기 위해서 리눅스에서는 파일마다 소유자의 권한, 그룹의 권한, 다른 사람에 대한 권한이 기록되어 있습니다. 또 일반사용자와 앞서 설명 드린 슈퍼유저, 즉, 루트 계정을 분리해 놓습니다. 그래서 이러한 시스템을 관리하는 사람에 대해서만 루트 계정을 사용할 수 있도록 하여 문제를 최대한 방지시키는 것입니다.

시스템에 관리자가 여러 명인 경우, 누가 언제 root 접근했는지 알 필요가 있다

su & sudo su (–) [username] su (substitute user) : 해당 ID로 전환하기 위한 명령어. 아무것도 입력하지 않으면 root 계정으로 로그인 됩니다. exit 명령어로 빠져 나올 수 있다. su (–) [username] sudo (superuser do) : root권한으로 명령 하나를 실행한다. su는 root 패스워드가 필요하고 /etc/sudoer에서 사용을 허락한 사용자는 패스워드와 관계없이 쓸 수 있다. sudo –s : 자신의 비밀번호로 root계정을 이용 가능 이러한 것이 가능하도록 하는 것이 바로 su 와 sudo 명령어 입니다. su 명령어는 substitute user의 약자로 다른 계정으로 잠시 들어가고 싶을 때 사용하는 명령어입니다. 다음과 같이 사용하고자 하는 계정의 username을 붙여 사용하면 됩니다. 그리고 이 username을 생략하면 root 계정으로 들어가게 됩니다. (-) 그리고 여기서 하이픈이 있고 없고의 차이는 로그인 쉘을 불러오냐의 차이입니다. 하이픈을 붙여서 su 명령어를 사용하면, 기존에 가지고 있던 환경변수를 전부 지워버리고, 처음에 로그인을 하고 들어왔을 때의 상황과 같게 만듭니다. 즉, 현재의 상황이 그대로 전해지나 아니면 새로운 환경을 구축하는가로 간단히 설명을 할 수 있습니다. 이를 간단히 보여주도록 하겠습니다. 임의의 디렉토리 상에서 su username을 쓰면, user가 바뀐 후에도 그대로 디렉토리가 남아있게 되고 상태가 남아있게 됩니다. 하지만, 하이픈을 사용하게 되면, 현재 디렉토리가 home으로 초기화 되어있는것을 확인할 수 있고, logout시에는 다시 돌아오는 것을 확인할 수 있습니다. sudo 명령어는 superuser do의 약자로 직접 root 계정을 들어가는 것이 아니라 root 계정을 빌려서 하나의 명령을 실행합니다. sudo는 또한 su를 사용하기 위해서 필요하였던 root계정의 비밀 번호 대신 자신의 비밀번호를 통해 사용할 수 있다는 차이점이 있습니다. sudo 명령어는 sudoer 파일에 속해져 있는 허락된 유저들만 사용할 수 있는 명령어입니다. 여기서 그럼 sudo –s는 su와 같을까요 아님 su – 와 같을까요?

시스템 부팅

리눅스 부팅 과정 시스템이 처음 부팅되거나 리셋되면 프로세서는 잘 알려진 위치에 코드를 실행합니다. PC의 경우에는 BIOS입니다. 이 바이오스는 부트로더를 실행하고, 이 부트 로더는 커널을 거쳐 init을 실행하게 됩니다. 지금부터 각각의 용어들이 무슨 의미를 가지고 어떠한 작업을 하는가를 알아보도록 하겠습니다. 시스템이 처음 부팅되거나 리셋되면 프로세서는 잘 알려진 위치에 코드를 실행한다. PC의 경우, basic input/output system (BIOS)이다. 이것은 마더보드의 플래시 메모리에 저장된다. 부팅 장치를 찾으면 첫 번째 단계 부트 로더는 RAM으로 로딩되어 실행된다. 이 부트 로더는 길이는 512 바이트 미만이고 하는 일은 두 번째 단계의 부트 로더를 로딩하는 것이다. 제 2 단계 부트 로더가 RAM에 있고 실행되면 스플래시 스크린이 디스플레이 되고 리눅스와 초기 RAM 디스크 옵션(임시 루트 파일 시스템)이 메모리에 로딩된다. 이미지가 로딩될 때 2 단계 부트 로더는 제어를 커널 이미지로 전달하고 커널은 압축이 해제되어 초기화 된다. 이 때 2 단계 부트 로더는 시스템 하드웨어를 검사하고 첨부된 하드웨어 장치들을 열거하고, 루트 장치를 마운트 하고 필요한 커널 모듈을 로딩한다. 완료되면 첫 번째 사용자-공간 프로그램(init)이 시작되고 고급 시스템 초기화가 이루어진다. http://www.ibm.com/developerworks/kr/library/l-linuxboot/ <- 자세한 내용은 여기서 확인

Start-up BIOS(Basic Input/Output System) POST(Power-On Self Test) 하드웨어 검색 및 점검 (시리얼장치, 패러럴장치, PS/2 마우스장치, 사운드장치, IDE장치, 플로피드라이브, SCSI장치, 이더넷 카드 등 런타임 – 부트 장치 검색 (플로피 디스크, CD-ROM, 하드 디스크 파티션, 네트워크 상의 장치, USB 플래시 메모리 스틱) 우선, 전원을 넣으면, PC의 경우에는 BIOS를 실행한다고 하였습니다. 이 때, BIOS는 Basic Input/Output System의 약자로 두 부분으로 나눌 수가 있습니다 처음은 Power-On Self Test로 연결이 되어있는 하드웨어를 검색하고 이상이 없는가를 점검합니다. 그리고 다음 과정으로 Linux를 부팅할 수 있는 부트 장치를 검색합니다. 일반적인 경우에는 하드 디스크 파티션이 부트 장치가 되지만, 플로피 디스크, CD-ROM이나 USB 플래시 메모리 스틱 등도 부트 장치가 될 수 있습니다. 예전에는 플로피 디스크가 일반적인 부트 장치로 사용되었지만 최근에는 CD-ROM 혹은 USB를 사용합니다

Stage 1 BootLoader MBR(Master Boot Record) RAM에 로딩된 후 제어권을 받는다. 바이오스가 512바이트밖에 메모리에 올리지 않기 때문에 부트로더란 프로그램이 필요합니다. 부트 장치에는 Master Boot Record (MBR)을 가지고 있고, 여기에는 주 부트 로더가 포함되어 있습니다. MBR이 RAM에 로딩된 후에 BIOS는 제어권을 여기에 넘겨줍니다. 주 부트 로더의 작업은 2차 부트 로더를 찾아 로딩하는 것입니다. 액티브 파티션을 찾기 위해 파티션 테이블을 검사하고, 액티브 파티션을 찾으면 테이블에 남아있는 파티션들을 검사하여 이들이 모두 비활성 상태인지를 확인한다. 확인이 되면 액티브 파티션의 부트 레코드는 장치에서 RAM으로 읽혀지고 실행된다.

Stage 2 BootLoader 커널 이미지 호출 LILO (Linux Loader) GRUB (GRand Unified Bootloader) GRUB이란 리눅스를 포함하여 머신에 설치한 어떤 운영체제든 부팅할 수 있도록 해주는 다목적 부트 관리자 Stage 2 BootLoader의 주 작업은 커널이미지를 호출하여 부팅하는 것입니다. 이를 할 수 있도록 도와주는 관리자가 LILO 혹은 GRUB입니다. 예전에는 LILO가 많이 사용되었으나 현재는 GRUB을 많이 사용되고 있으며, 이 GRUB은 어떠한 운영체제든 부팅이 가능하기 때문에 다양한 곳에서 다양한 운영체제를 부팅할 수 있도록 도와주는 장점이 있습니다.

Kernel 하드웨어 수준에서 다뤄지는 데이터와 어플리케이션 사이를 이어주는 다리역할 Swapper 장치드라이버 초기화 커널은 하드웨어 수준에서 다뤄지는 데이터와 어플리케이션 사이를 이어주는 다리로써의 역할을 합니다. 커널실행되고 커널이 swapper를 실행하고 swapper가 장치드라이버를 초기화 이와 같은 커널은 부팅이 되면서 가지는 정보들을 저장시켜 둡니다.

dmesg 명령 이용: 부팅 후 부팅 메시지 확인 /var/log/dmesg 파일에 존재

커널 버전, 커널이 언제 어디에서 어떤 컴파일러로 컴파일 되었는지 보여줌 Linux version 2.6.32-316-ec2 (buildd@crested) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #31-Ubuntu SMP Wed May 18 14:10:36 UTC 2011 (Ubuntu 2.6.32-316.31-ec2 2.6.32.38+drm33.16) 커널 버전, 커널이 언제 어디에서 어떤 컴파일러로 컴파일 되었는지 보여줌 커널 부트 메시지에는 다양한 정보가 들어있습니다. 이 정보는 커널 버전 커널이 언제 어디에서 어떤 컴파일러로 컴파일 되었는지를 보여줍니다.

Kernel command line: console=xvc0 root=/dev/sda1 ro 어느 장치로 부팅되었는지 알 수 있다. 그리고 이 내용은 어느 장치로부터 부팅이 되었는지 알 수 있습니다.

프로세스의 속도를 근사한 값. 몇몇 장치 드라이버에서 사용할 최적의 지연 루프 성능을 알아내기 위해 사용 Calibrating delay using timer specific routine.. 5334.89 BogoMIPS (lpj=26674459) 프로세스의 속도를 근사한 값. 몇몇 장치 드라이버에서 사용할 최적의 지연 루프 성능을 알아내기 위해 사용 PCI 버스에 대한 정보 네트워킹, 마우스 포트, 시리얼 드라이버 설정 기타 하드웨어의 인식 결과 그리고 이 외에도 이와 같은 정보들을 가지고 있습니다.

init, inittab 장치 드라이버가 초기화 되면 커널은 /etc에 있는 init 프로그램을 실행시킨다 inittab 파일은 init의 동작 제어를 위한 파일이다. /etc 에 존재한다. 커널실행되고 커널이 swapper를 실행하고 swapper가 장치드라이버를 초기화하고 init을 실행 커널이 실행되고 장치드라이버가 초기화 되면 커널이 /etc에 있는 init 프로그램을 실행시킵니다. Init은 새로운 프로세스를 생성하거나 프로그램이 종료되었을 때 이를 다시 시작하는 기능이 있는데 Init의 모든 동작은 /etc/inittab 파일을 통해 제어합니다. 한번 inittab을 살펴보겠습니다.

실행 레벨 현재의 시스템 상태를 명시하는 숫자 혹은 문자 Init : run-level을 바꿔줌 ID Name Description Halt Shuts down the system. 1 Single-User Mode Mode for administrative tasks 2 Multi-User Mode Does not configure network interfaces and does not export networks services 3 Multi-User Mode with Networking Starts the system normally 4 Not used/User-definable For special purposes. 5 Start the system normally with appropriate display manager. ( with GUI ) As runlevel 3 + display manager 6 Reboot Reboots the system. 런레벨 0는 시스템을 셧다운 시킬때 사용합니다. 런레벨 1은 단일 사용자 모드를 뜻합니다. 단일 사용자 모드에 대해선 뒤에서 설명하겠습니다. 런레벨 2는 네트워크를 사용하지 않는 다중 사용자 모드입니다. 런레벨 3은 말그대로 노말모드입니다. 런레벨 4는 임의로 정해서 실행레벨 1: 최소한의 설정 스크립트를 실행 실행레벨 2: 실행레벨 1 + 네트워크 설정을 실행 실행레벨 3: 실행레벨 1,2 + 전화 접속 로그인을 허용 그리고 init n 이라는 명령어를통해 런 레벨을 바꿀 수 있습니다. 예를들어 init 1 이라고 입력하면 네트워크를 지원하지 않는 단일 사용자 모드가 되어서 푸티 접속이 끊기고 휠장이 고쳐줘야 다시쓸 수 있습니다.

단일 사용자 모드 보통 ‘다중’ 사용자 모드로 이용. 처음부터 부팅 직후 Superuser 로 로그인 로그인이 필요치 않음 설치 중 어떤 문제가 발생해서 점검을 할 때 사용한다.

Inittab Id:run-levels:action:process Basic mode 각 줄은 :로 나누어진 4개의 필드로 이루어져 있습니다. 첫번째 필드는 임의의 식별자입니다. 충돌만 안하면 됩니다. 두번째 필드는 명령이 실행될 실행 레벨입니다. 세번째 필드는 init가 그 항목을 어떻게 처리할 것인지 지시한다. 예를 들어 명령을 한 번만 실행하고 말 것인지 아니면 명령이 종료될 때마다 명령을 다시 시작할 것 인지를 결정할 수 있습니다. 마지막 필드는 실행할 명령입니다. 기본 실행레벨이 2로 설정되 있음을 알 수 있습니다. 기본 실행 레벨이 2로 되어있음을 볼 수 있다. 시스템을 부팅할 때마다 이 실행레벨을 이용하며, init [숫자] 를 이용하여 기본 실행 레벨을 변경할 수 있다. (단 모든 프로세서를 닫은 후 해당 레벨로 재시작되기 때문에, 여러 사람이 동시에 쓰는 경우 로그아웃을 하라는 경고가 간다.)

Inittab 각 실행 레벨에 따라 rc라는 것을 실행 대기(wait)하게 되어있는 것을 볼 수 있다. rc는 각 실행 레벨에서의 작동될 명령들을 모아놓은 설정으로 볼 수 있다. ca항목은 옆에 제시된 실행 레벨들(1~5)에서 ctrl + alt + del 을 눌렀을 때, 시스템을 리부팅 하게 되어있다.

Rc files 리눅스의 시동 명령은 오래된 유닉스 규범에 따라 rc라는 파일명으로 저장된다 시스템을 실질적으로 시작하는 데 필요한 작업을 수행합니다.

파일 이름을 보시면 Knnxxxx나 Snnxxxx로 나타내어진 파일이 많습니다. 맨앞글자에서 K는 서비스를 죽이고 S는 새로운 서비스를 시작합니다. 숫자 nn은 낮은숫자가 먼저 실행됩니다. Xxxx는 서비스의 이름입니다. 앞서 스샷에서 봤듯이 실행 레벨에 따라 구분되어 저장된다.

시스템 셧다운

따라서 전원이 나가면 버퍼가 디스크에 쓰이지 않기에 자료 상실 디스크 읽기/쓰기를 메모리에 버퍼 따라서 전원이 나가면 버퍼가 디스크에 쓰이지 않기에 자료 상실 커널에서 약 5초마다 더티버퍼를 디스크에 씀 그러나 정상적인 종료가 가장 안전 디스크는 cpu에 비해 상대적으로 매우 느리기때문에 성능 향상을 위해서 디스크 읽기 쓰기를 메모리에 버퍼해두었다가 정말로 필요할 때에만 디스크 쓰기가 일어납니다. 그래서 시스템의 전원이 갑자기 나가버리거나 재부팅하면 메모리에 있는 버퍼가 다 날아가버립니다. 커널은 이러한 심각한 손상을 피하기위해 더티버퍼란걸 5초마다 저장을합니다. 더티버퍼란 디스크로부터 읽고 난 후 내용이 변경된 것을 말합니다. 그러나 정말로 안전하게 재부팅하려면 셧다운 과정을 거쳐야 합니다.

shutdown [옵션] [시간] [메시지] 셧다운 명령어 루트권한 필요 shutdown [옵션] [시간] [메시지] 옵션: -h(종료), -r(리부팅), -c(취소), -k(경고)

/sbin/shutdown –r +10 10분뒤에 시스템이 재부팅함. /sbin/shutdown –r +10 “rebooting” 뒤에 경고 메시지를 붙일 수 있다. /sbin/shutdown -c 취소하기

halt 명령어와의 차이 shutdown과 비슷하게 시스템을 종료 halt = 강제 종료 shutdown = 안전한 종료 Halt라는 명령어를 통해서 system을 종료시킬 수 있습니다. 하지만 이것은 현 상황에서 system을 바로 종료시키는 것으로 아무런 사전 조치나 과정이 없습니다. 즉, 현재 작업을 하는 자료들이나 과정들에 대한 오류가 발생할 수도 있습니다. 즉, 컴퓨터로 생각하면 전원 버튼을 꾹 눌러서 강제로 종료하는 것이 halt에 비교할 수 있고 윈도우 버튼을 눌러서 시스템 종료를 누르는 것이 shutdown이라고 할 수 있습니다.

사용자 계정 관리

사용자는 보통 사용자와 가상 사용자로 구분 시스템 데몬에서 이용하는 것이 가상 유저. 시스템 관리를 하려면 이러한 유저들을 추가, 수정, 삭제 등의 작업을 할 수 있어야 한다. 유저정보, 그룹정보, 사용자의 추가, 삭제, 수정, 정지 등의 방법

passwd 파일 시스템의 모든 계정은 /etc/passwd 파일에 자신의 항목을 가짐 이 파일에는 각 행마다 한 사용자씩 특성이 명시

username:password:uid:gid:gecos:homedir:shell Uid : 사용자 아이디(user id) – 정수값 Gid : 그룹 아이디 Gecos : 이름, 사무실 주소, 전화번호 등등 Homedir : 홈디렉토리 경로 Shell : 사용자가 로그인 할 때 실행되는 프로그램명. 보통 /bin/bash, /bin/tcsh와 같은 쉘의 절대 경로를 포함 username: 계정을 구별하는 역할을 하는 문자열. 개인계정의 경우 로그인할 때 쓰는 이름. // 보편적으로 영문자와 숫자만 허용. 8자 이내. password: 사용자의 패스워드가 암호화된 형태. 단방향(one-way) 암호화 알고리즘을 이용하였다. 첫 번째 문자가 ‘*’인 경우 계정은 사용 불능 상태가 된다. uid: user ID의 준말로, 시스템에서 계정을 구분하는 정수 값이다. 프로세스나 파일 퍼미션 처리할 때 이용.(문자보다 숫자를 다루는 편이 쉽고 간결하기 때문) username과 uid 모두 계정을 구별해주는 역할. gid: group ID의 준말. 이 역시 정수로 이루어져 있다. gecos: 사용자의 실제 이름, 사무실 주소, 전화번호 등의 ‘지역 정보’가 적혀있다. maill과 finger에서 시스템의 사용자를 구별할 때 이 정보를 사용. GECOS(General Electric Comprehensive Operating System) 서비스와의 호환성을 제공하기 위해 생긴 필드. homedir: 사용자의 홈 디렉토리. 사용자가 로그인 했을 때, 현재 작업 디렉토리는 이 필드에 적힌 곳이 된다. shell: 사용자가 로그인 할 때 실행되는 프로그램명. /bin/bash, /bin/tcsh와 같이 쉘의 절대 경로를 포함한다.

섀도우 패스워드 암호화된 패스워드를 일반 사용자에게 노출하는 것은 보안상 위험 /etc/passwd의 패스워드 항목에 x나 *만 표시 /etc/shadow에 암호화된 패스워드 저장 /etc/passwd는 누구나 읽어볼 수 있다. 그렇기 때문에 보안상의 위험이 생길 수 있다. 따라서 /etc/shadow라는 파일을 만들어 암호화된 패스워드는 전부 이쪽으로 옮기고, /etc/passwd에 password필드에는 x나 *을 표시한다. 그리고 /etc/shadow는 root이외의 사용자가 읽을 수 없게 되어있다. 데비안의 경우 ‘shadowconfig on’를 사용하여 섀도우 패스워드를 사용할 수 있다

groupname:password:gid:members 그룹 파일 사용자 그룹은 사용자 계정을 논리적으로 조직화하기 편리한 방법으로 그룹 내부의 사용자들이 파일을 공유할 수 있게 해준다 이러한 그룹들은 /etc/group에 저장되어 있다. groupname:password:gid:members 그룹 추가: /etc/group 수정 or gpasswd 이용 groupname: 그룹을 구분하게 하는 문자열. password: 필수적인 항목은 아니나, newgrp 명령으로 그룹에 속하지 않은 사용자가 그룹에 접근할 때, 이를 허용하기 위해 필요하다. gid: 시스템에서 그룹을 가리킬 때 사용하는 그룹 ID member: 해당 그룹에 속하는 사용자 목록. 각각의 사용자는 콤마(,)로 구분된다. 그룹을 추가하는 방법은 직접 /etc/group파일을 수정하는 방법과, (데비안에서) gpasswd 프로그램을 이용한다.

계정 만들기 사용자 계정을 만들려면 몇 가지 과정을 거쳐야 한다. /etc/passwd에 항목을 추가하고, 사용자의 홈 디렉토리를 만들고, 사용자의 기본 설정 파일을 홈 디렉토리에 복사해야함. adduser 명령어를 통해 한번에 가능 adduser [username] 계정을 만드는 방법은 크게 2가지로 볼 수 있다. 한가지는 관라지가 직접 유저를 추가하는 방법이고, 다른 한가지는 프로그램의 도움을 받는 것이다. 먼저 관리자가 직접 유저를 추가하는 방법은, /etc/passwd에 형식에 맞게 항목을 추가한다. 사용자 홈 디렉토리를 만든다. 기본 설정파일들을 홈 디렉토리에 복사한다. 로 하면 된다. 그러나 이렇게 복잡하게 하지 않아도, 대부분의 배포판에서는 adduser(혹은 useradd) 프로그램을 제공하기 때문이다. 따라서 간단히 root 로그인을 해서 adduser를 실행하면 된다. 해당 질문에 맞춰 답을 하는 것으로 쉽게 계정을 만들 수 있다. 이렇게 만들어진 계정에는 /etc/skel/ 에 있는 설정파일들이 사용자의 홈 디렉토리로 복사된다.

userdel [옵션] [username] 계정 삭제와 비활성화 /etc/passwd에서 해당 항목 삭제. /etc/group에서 해당 유저 제거. 사용자의 홈 디렉토리 제거. userdel 명령 이용. userdel [옵션] [username] 옵션: –r(홈 디렉토리도 같이 제거)

보통 기타 파일(수동으로 지워야하는 파일)은 중요하지 않기에 나둬도 상관 없다. 지우는 경우, 해당 사용자와 관련된 파일을 찾아야 하는데, 찾는 방법은 find 명령을 사용하면 쉽게 찾을 수 있다. find [디렉토리] [옵션] [옵션 값] –ls 옵션: –user [username], –uid [num] 계정 비활성화: passwd파일의 암호란 앞에 *추가 usermod –(L/U) [username] -user 옵션을 사용하기 위해서는 passwd파일에 해당 계정에 대한 등록이 되어있어야한다. 만일 없다면 –uid 옵션을 이용하여 검색하면 된다. 계정정지: 섀도우 패스워드를 사용하지 않을 경우에는 passwd파일의 암호란의 맨 앞에 *를 추가하는 것으로 계정의 사용을 막을 수 있다.(해당 계정으로 로그인 불가) 만일 섀도우 패스워드를 사용하면, shadow파일의 암호란에 같은 작업을 해 주어야 한다. usermod -L [username] : 계정 비활성화 usermod -U [username] : 계정 활성화

chown –R [username] [homedir] 사용자 계정 수정 사용자 계정이나 그룹의 속성을 수정하려면 간단히 /etc/passwd, /etc/group 을 수정. usermod 혹은 groupmod 명령 이용. 사용자 ID 수정은 /etc/passwd 파일에서 해당 부분 수정 후, chown 명령 이용. chown –R [username] [homedir] chown: 새로운 사용자 ID를 위해 사용자가 소유하던 파일의 소유권을 변경하는 명령

sudo 명령 권한 su, 혹은 sudo 명령을 통해 root와 같은 권한으로 명령을 실행 할 수 있다. 그러나 일반 사용자에게 이런 명령을 사용하게 하는 것은 앞서 지적했던 여러 가지 문제가 발생할 수 있다. 따라서 wheel 그룹을 생성하여, 여기에 속한 사람들만 sudo 명령을 사용할 수 있게 한다. 이를 이용할 수 있는 유저들이 /etc/sudoers 에 기록되어 있다. visudo - /etc/sudoers를 편집할 수 있는 명령어 su 혹은 sudo 명령어를 통해서 root와 같은 권한으로 명령을 할 수 있기 때문에, 일반적인 사람들은 사용하지 못하도록 막아 놓고, sudo 명령어는 오직 wheel 그룹에 속한 사람들만 사용할 수 있도록 한다. 그리고 이러한 유저들을 /etc/sudoers에서 포함하고 있는데, 이를 수정하여 사용할 수 있는 권한들을 바꿀 수 있다. 하지만, 만일 잘못된 수정으로 인한 오류가 발생하는 것을 방지하기 위해서 문법 검사를 해주는 visudo 명령어를 통하여 sudoers를 수정한다. sudoers 문법 참고 자료 : http://www.gratisoft.us/sudo/sudoers.man.html

감사합니다