<RPM이란?>

Redhat Package ManagerWindow "setup.exe"와 비슷하다. , 프로그램을 설치한 후에 바로 실행할 수 있는 설치 파일을 제작하게 되었다. 이러한 설치파일의 확장명은 *.rpm이며, 이를 패키지라고 부른다.

RPM의 단점은 무엇일까?

RPM이 나오면서 리눅스에서의 설치는 편리해 졌지만 RPM의 가장 큰 문제점은 '의존성'이다.

예로 페도라의 기본 웹 브라우저인 FirefoxX윈도우에서 가동된다. X윈도우가 설치되지 않은 상태에서 firefox를 설치한다면? 의존성 때문에 설치가 되지 않을 것이다.

 


<RPM 파일 형식>

rpm 파일 형식을 예로 알아보자.

gedit-2.6.1-1.fc11.i586.rpm

패키지 이름-버전-릴리즈번호.페도라버전.아키텍처.rpm

 

1. 패키지 이름 : gedit

2. 버전 : 2.6.1

주버전, 부버전, 패치버전이며 높을 수록 최신임.

3. 릴리즈번호 : 1

문제점을 개선할 때 마다 붙여지는 번호

4. 페도라버전 : fc11

페도라에서 배포할 경우 붙여진다. fc11은 페도라 11용을 의미.

5. 아키텍처 : i586

CPU를 의미하는데, 이 파일이 설치 가능한 CPU를 의미한다.

 


<RPM 명령어>

rpm [옵션] [패키지파일]

 

U : 기존에 패키지가 설치되어 있지 않다면, 설치를 하고 기존에 패키지가 설치되어 있다면 업그레이드를 한다.

v : 설치과정을 출력

h : 설치진행과정을 특수문자"#"으로 표시한다.

e : 설치된 rpm삭제

qa : 시스템에 패키지가 설치되어 있는지 확인

qf : 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인

ql : 특정 패키지에 어떤 파일들이 포함되었는지 확인

qi : 패키지 상세정보 출력

 


<YUM이란?>

리눅스에서 RPM은 유용하다. 하지만 의존성 문제때문에 불편한 점이 있다. 이런 의존성 문제를 완전히 해결한 것이 yum이다. Yellowdog Updater Modified라고 단순히 RPM을 설치할 때 편리하게 해주는 툴이라고 생각하자.

rpm같은 경우는 사용자가 직접 설치하고자 하는 파일을 인터넷에서 *.rpm을 다운받아 의존성을 따져가며 차례대로 설치하여야 했다. 하지만 yum은 어떤 특정 rpm파일을 다운받고자 할 때, 의존성을 가지는 다른 *.rpm파일들도 알아서 인터넷을 통해 Fedorarpm 파일이 저장된 저장소(Repository)에서 설치하고자 하는 rpm파일을 다운로드 한 다음에 설치까지 자동으로 해준다. (물론 자동으로 인터넷을 통해 다운로드 하기 때문에 네트워크가 꼭 연결된 상태에서만 yum을 사용해야 한다.)

그렇다면 저장소의 URL은 어떻게 알아 차리고 자동으로 다운로드를 하는것일까?

그것에 대한 정보는 /etc/yum.repos.d/ 디렉토리에 저장되어 있다.

 


<YUM 명령어>

yum install [패키지 이름]

-> 패키지 설치 (기본 설치 명령어)

yum -y install [패키지 이름]

-> 무조건 yes로 모두 설치할 때 사용한다. 편리함

yum check-update

-> 현재 시스템에 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력한다.

yum update [패키지 이름]

-> 업데이트 해준다.

yum remove [패지키 이름]

-> 삭제하는 명령어

 


<yum 설정파일>

yum/etc/yum.conf/etc/yum.repos.d/ 디렉토리가 있다.

/etc/yum.conf는 사용자들이 특별히 설정할 것이 없다.

/etc/yum.repos.d/ 디렉토리는 아까 말했다 시피 yum명령을 입력했을 때 검색하게 되는 네트워크 주소가 들어있다.

 

<실습>

이번 실습은 /etc/yum.repos.d/ 디렉토리에 있는 파일을 backup파일에 모두 옮겨놓고(네트워크 URL파일들을 임시로 지우는 것이다.)

fedora-local.repo라는 빈 파일을 생성해서 yum명령을 실행하며 자동으로 이 파일만 확인하게끔 할 것이다.

우선 /etc/yum.repos.d/에 있는 파일들을 backup 디렉토리를 만들어 옮겨놓자.

그 후에, fedora-local.repo에 있는 내용은 mount시켜놓은 cdrom에서만 rpm파일을 찾을 수 있게 해보자. (원래 네트워크로만 정의되어 있는 경로를 cdrom으로 축소시켜서 범위를 제한하는것이다.)



 

우선 네트워크가 안되는 상황을 연출하기 위해 ifdown eth0를 입력해 네트워크를 다운시키자.



 

이제부터 yum install명령어를 사용하여 패키지를 설치하면 cdrom에서만 찾아서 설치할 것이다.



LIST

<프로세스란?>

프로세스란 하드디스크에 저장된 프로그램이 메모리에 로딩되어 활성화 된것이다.

예로리눅스 웹 브라우저인 Firefox를 실행해서 화면에 나타난 상태를 프로세스라고 한다. (프로그램이 꼭 화면에 나타나지 않고 백그라운드로 실행되고 있는 것을 백그라운드 프로세스라 한다.)

 

 

<프로세스 용어정리>

1. 프그라운드 프로세스

Firefox등과 같이 실행하면 화면에 나타나 동작하는 프로세스를 말한다. , 화면에서 실행되는 것이 보이는 프로세스라고 생각하자.

2. 백그라운드 프로세스

실행은 되었지만, 화면에는 나타나지 않고 뒤에서 실행되는 프로세스를 말한다. 예로 바이러스 백신 같이 눈에는 보이지 않지만 실행되고 있는 것이다.

3. 프로세스 번호

프로세스가 실행될 때 번호가 부여되며, 그 고유번호가 곧 프로세스를 말한다. 프로세스 번호가 필요한 이유는 활성화된 프로세스를 메모리에서 강제로 퇴장시키기 위해서 프로세스 번호를 사용하기 때문이다.

4. 작업 번호

작동 중인 백그라운드 프로세스의 번호를 의미한다.

5. 부모 프로세스와 자식 프로세스

모든 프로세스는 부모 프로세스의 하위에 종속되어 실행된다.

예를 들어 firefox프로세스(자식 프로세스) X윈도우 프로세스(부모 프로세스) 아래에서 구동되어야 하는 것과 같다그렇다면 만약에 부모 프로세스가 죽게 되면 자식 프로세스는 어떻게 될까? 당연히 종료가 될 것이다.

X원도우 프로세스가 죽으면 firefox 프로세스는 죽게된다.

 

 

<데몬이란?>

데몬이란 서버 프로세스를 말한다. 방금 전에 프로세스에 대해서 설명했다. 프로세스에는 종류가 무지 많지만, 그중 서버 관련 프로세스 즉, 서비스해주는 프로세스를 말한다. 예를 들어 웹 서버 프로세스, 네임 서버 프로세스, DB 서버 프로세스 등을 데몬 이라고 부른다.데몬은 뒤에서 백그라운드로 작동한다.

데몬에는 Standalone 타입과 xinetd 타입의 데몬으로 나뉜다.

1. Standalone 타입

독자적으로 프로세스가 구동되어 서비스하는 데몬을 말한다. 웹 서버, DB서버, 센드메일 서버 등이있다. Standalone의 실행 파일은 /etc/init.d/ 디렉토리에 저장되어 있다.



/etc/init.d에 있는 파일들 모두에 데몬은 아니다. (거의 대부분!)

/etc/init.d/디렉토리에 있는 데몬들은 부팅 시에 자동 실행 여부를 지정할 수 있는데, system-config-services명령으로 확인하면 /etc/init.d/ 디렉토리에 있는 데몬들이 올라가 있는 것을 확인할 수 있다.

메모리상에 항상 작동되어 있어야 한다. 이렇게 자주 호출되는 데몬들은 Standalone타입의 데몬으로 처리하면 용이하지만 자주 사용되지 않은 데몬들까지 Standalone으로 처리하여 사용하면 시스템 자원의 낭비를 가져올 수 있다.


데몬 실행 및 종료 명령어)

service [데몬이름] start - 데몬 시작

service [데몬이름] stop - 데몬 중지

service [데몬이름] restart - 데몬 재시작 (종료했다가 다시 킴)

 

2. xinetd 타입

이 데몬은 수퍼데몬이라고 한다. 평소에 메모리에 상주해있지 않고, 자기가 standalone으로 동작하는 데몬들을 제외한 데몬들에 대해 최고의 지휘권을 갖고있으면서, Standalone이외의 데몬들(xinetd타입의 데몬)을 실행시키기 위해선 이 수퍼데몬을 거쳐서 실행되어야 한다. 이런 데몬들을 관리하며, 서비스하도록 연결시켜주는 것이다. xinetd타입의 데몬으로 사용하기 적당한 데몬은 빈도수가 대체로 적은 데몬들이다. 만약 이런 데몬들을 항상 메모리에 구동시켜 놓으면 잘 사용하지도 않은데다가 메모리 낭비가 이어지기 때문이다.

, xinetd타입의 데몬은 평상시에 구동되지 않다가, 서비스를 요청할 때만 xinetd데몬이 알아서 구동 시켜주는 방식이므로 별도로 서비스를 가동시켜 줄 수는 없다.

xinetd의 설정파일은 /etc/inetd.conf에 있으며, xinetd타입의 데몬들은

/etc/xinetd.d/ 디렉토리에 있다.

xinetd타입의 데몬은 재시작 할 필요가 없으므로, 그 상위(xinetd타입의 데몬들을 관리하는 xinetd 데몬)xinetd데몬을 재시작 하는 것이다. 왜냐? 어짜피 xinetd가 관리하고 실행 시켜줄 것이기 때문에!

LIST

Inode?

 


사용자는 커널을 통하여 디스크의 파일을 접근하는데, 이를 위해 커널 내에는 현재 사용중인 파일에 대한 자료 구조를 갖고있다.


커널 내에서 파일 시스템과 관련하여 중요한 자료구조 중 하나가 바로 Inode이다.

Inode는 해당 파일에 대한 부분의 정보를 갖고 있다.

Inode에는 파일의 소유권 및 권한 여부에 대한 정보, 파일 내용이 들어있는 디스크 내의 물리적 주소, 파일의 링크 수형태, 크기, 만들어진 시간 등을 저장하고 있다.

파일을 생성할 때  inodei-list안에 만들어지며, inodeinumber와 파일이름이 디렉토리에 등록된다.

파일을 삭제할 때는 그 파일에 대한 inodw의 파일 링크수가 하나 감소되고 디렉토리 entry상에는 해당 파일의 inumber0으로 변한다.

inode의 파일 링크수가 0이 되면 파일의 디스크 블록은 free가 되며 inodedellocate상태가 된다.

 

쉽게 말해, 하드디스크에는 수많은 파일이 저장되어 있다. 그런데 사용자가 컴퓨터에게 "! a라는 파일 좀 열어봐"라고 명령을 했을때, a라는 파일을 찾는 일은 파일 시스템이 맡아서 한다. 윈도우에서는 FAT, NTFS등을 사용하고 리눅스에서는 ext2, ext3, reiser... 을 사용한다파일시스템은 시스템에 존재하는 모든 inode를 가진다. 그리고 inode는 파일 하나하나에 대한 정보를 가지고 있다. 그래서 이 inode 를 따라가면 파일이 있게 된다.



 


하드링크란?

디렉토리에 그 파일에 대한 새로운 이름이 등록되고 inumber는 본래 있던 파일의 inumber가 복사(동일한 inode를 사용) 된다.

이때 복사되는 파일의 inode에서 파일의 링크수가 하나 증가된다.

 

심볼릭 링크란?

디렉토리에 그 파일에 대한 새로운 이름이 등록되고 새로운 inode를 생성하며 inode원본 파일을 연결한다. 심볼릭 링크의 경우 원본 파일의 주소가 저장되어 있으므로 원본 파일의 위치가 변경되면 심볼릭 링크는 사용할 수 없게 된다.(오류 발생)



<실습>

basefile이라는 파일을 만들고 하드링크와 심볼릭 링크 파일을 만들겠다.

inode가 다른 것을 확인한 후, 파일을 옮겼을때 어떻게 동작하는지 알아보겠다.



 

위 그림을 보면 하드링크의 inode 심볼릭 링크의 inode 원본 파일과 차이가 나는 것을 알 수 있다.


 

test파일을 상위 디렉토리로 옮긴 후, softlink의 내용을 보려고 했지만 오류가 난다.



LIST

GRUB부트 로더는 부팅에 관련된 정보를 담당한다

원래 리눅스의 부트로더는 LILO가 사용되었지만페도라에서는 GRUB 부트로더를 제공한다.

LILO GRUB의 차이점 (GRUB가 더 좋다는 의미)

1. 부트 정보를 사용자가 임의로 변경 가능

2. 다른 운영체제와 멀티 부팅이 가능

3. 대화형 설정을 제공

4. 커널의 경로 및 파일 이름만 알고 있으면 부팅 가능

 

GRUB의 설정파일은 /boot/grub/grub.conf파일에 있다. 링크파일은 /etc/grub.conf이다.

그렇다면 grub.conf파일에 대해서 알아보자.



 

1. default=0

부트 순차번호이다. 멀티부팅인경우 기본으로 부팅할 OS의 레이블 번호를 선택한다 (기본 0)

2. timeout=0

여기서 지정한 시간이 경과하면 default항목에 설정된 OS로 부팅이 된다. 다른 OS로 부팅하고 싶다면 gap을 줘서 grub창이 뜰 때, 아무키나 누른 후 부팅하고 싶은 OS로 부팅하면 된다

3. splashimage=(hd0,0)/grub/splash.xpm.gz

부팅 이미지 파일을 지정한 부분이다. hd0은 첫번째 하드디스크에 첫번째 파티션에 있다는 것이다.

4. hiddenmenu

grub부트 로더를 보여주지 않는 설정인데 지우면 부트 로더 화면이 처음에 보인다.

5. title Fedora(2.6.29.4-167.fc11.i386.PAE)

title은 부팅되는 부트 엔트리를 의미한다.

root(hd0,0)

 /boot 파티션이 저장된 장치(/dev/sda1)을 의미한다.

kernel ~ quiet에서 kernel 다음에 나오는 것은 부팅될 커널 파일이다. /vmlinuz~PAE까지...

roRead Only로 루트 파티션을 마운트 하라는 의미이다.

quiet는 부팅 시 메시지를 화면에 출력하지 않도록 설정하는 것이다. 그렇기 때문에 부팅 시 화면 아래에 막대만 보인것임.

initrd /initrd-2.6.29.4-167.fc11~

initrd이미지가 있는 파일 이름을 나타낸다. /boot디렉토리에 있음

 

<실습>

GRUB 부트 로더에 암호를 설정해서 아무나 부트 로더에 손을 대지 못하도록 암호를 설정해보자.





먼저, /boot/grub/grub.conf 파일을 열어서 timeouthiddenmenu를 바꿔보자.

그 후 암호를 설정해보자. 어디서? grub에서!





이렇게 암호를 md5 암호체계로 만들었다

저 암호화된 것을 복사하여 grub.conf파일에 붙여넣기 한다.



 

이렇게 되면 아무나 비밀번호를 알지 않는 이상 부트로더를 변경할 수는 없을것이다.



LIST

<프로세스란?>

프로세스란 하드디스크에 저장된 프로그램이 메모리에 로딩되어 활성화 된것이다.

예로리눅스 웹 브라우저인 Firefox를 실행해서 화면에 나타난 상태를 프로세스라고 한다. (프로그램이 꼭 화면에 나타나지 않고 백그라운드로 실행되고 있는 것을 백그라운드 프로세스라 한다.)

 

 

<프로세스 용어정리>

1. 프그라운드 프로세스

Firefox등과 같이 실행하면 화면에 나타나 동작하는 프로세스를 말한다. , 화면에서 실행되는 것이 보이는 프로세스라고 생각하자.

2. 백그라운드 프로세스

실행은 되었지만, 화면에는 나타나지 않고 뒤에서 실행되는 프로세스를 말한다. 예로 바이러스 백신 같이 눈에는 보이지 않지만 실행되고 있는 것이다.

3. 프로세스 번호

프로세스가 실행될 때 번호가 부여되며, 그 고유번호가 곧 프로세스를 말한다. 프로세스 번호가 필요한 이유는 활성화된 프로세스를 메모리에서 강제로 퇴장시키기 위해서 프로세스 번호를 사용하기 때문이다.

4. 작업 번호

작동 중인 백그라운드 프로세스의 번호를 의미한다.

5. 부모 프로세스와 자식 프로세스

모든 프로세스는 부모 프로세스의 하위에 종속되어 실행된다.

예를 들어 firefox프로세스(자식 프로세스) X윈도우 프로세스(부모 프로세스) 아래에서 구동되어야 하는 것과 같다그렇다면 만약에 부모 프로세스가 죽게 되면 자식 프로세스는 어떻게 될까? 당연히 종료가 될 것이다.

X원도우 프로세스가 죽으면 firefox 프로세스는 죽게된다.

 

 

<데몬이란?>

데몬이란 서버 프로세스를 말한다. 방금 전에 프로세스에 대해서 설명했다. 프로세스에는 종류가 무지 많지만, 그중 서버 관련 프로세스 즉, 서비스해주는 프로세스를 말한다. 예를 들어 웹 서버 프로세스, 네임 서버 프로세스, DB 서버 프로세스 등을 데몬 이라고 부른다.데몬은 뒤에서 백그라운드로 작동한다.

데몬에는 Standalone 타입과 xinetd 타입의 데몬으로 나뉜다.

1. Standalone 타입

독자적으로 프로세스가 구동되어 서비스하는 데몬을 말한다. 웹 서버, DB서버, 센드메일 서버 등이있다. Standalone의 실행 파일은 /etc/init.d/ 디렉토리에 저장되어 있다.



/etc/init.d에 있는 파일들 모두에 데몬은 아니다. (거의 대부분!)

/etc/init.d/디렉토리에 있는 데몬들은 부팅 시에 자동 실행 여부를 지정할 수 있는데, system-config-services명령으로 확인하면 /etc/init.d/ 디렉토리에 있는 데몬들이 올라가 있는 것을 확인할 수 있다.

메모리상에 항상 작동되어 있어야 한다. 이렇게 자주 호출되는 데몬들은 Standalone타입의 데몬으로 처리하면 용이하지만 자주 사용되지 않은 데몬들까지 Standalone으로 처리하여 사용하면 시스템 자원의 낭비를 가져올 수 있다.

 

데몬 실행 및 종료 명령어)

service [데몬이름] start - 데몬 시작

service [데몬이름] stop - 데몬 중지

service [데몬이름] restart - 데몬 재시작 (종료했다가 다시 킴)

 

2. xinetd 타입

이 데몬은 수퍼데몬이라고 한다. 평소에 메모리에 상주해있지 않고, 자기가 standalone으로 동작하는 데몬들을 제외한 데몬들에 대해 최고의 지휘권을 갖고있으면서, Standalone이외의 데몬들(xinetd타입의 데몬)을 실행시키기 위해선 이 수퍼데몬을 거쳐서 실행되어야 한다. 이런 데몬들을 관리하며, 서비스하도록 연결시켜주는 것이다. xinetd타입의 데몬으로 사용하기 적당한 데몬은 빈도수가 대체로 적은 데몬들이다. 만약 이런 데몬들을 항상 메모리에 구동시켜 놓으면 잘 사용하지도 않은데다가 메모리 낭비가 이어지기 때문이다.

, xinetd타입의 데몬은 평상시에 구동되지 않다가, 서비스를 요청할 때만 xinetd데몬이 알아서 구동 시켜주는 방식이므로 별도로 서비스를 가동시켜 줄 수는 없다.

xinetd의 설정파일은 /etc/inetd.conf에 있으며, xinetd타입의 데몬들은

/etc/xinetd.d/ 디렉토리에 있다.

xinetd타입의 데몬은 재시작 할 필요가 없으므로, 그 상위(xinetd타입의 데몬들을 관리하는 xinetd 데몬)xinetd데몬을 재시작 하는 것이다. 왜냐? 어짜피 xinetd가 관리하고 실행 시켜줄 것이기 때문에!



LIST

<파일과 디렉토리의 소유권과 허가권>

 


리눅스에는 각각의 파일과 디렉토리마다 소유권 및 허가권의 속성이 있다

)

 


1. 파일 유형

d : 디렉토리

- : 일반적인 파일

b : 블록디바이스

c : 문자디바이스

l : 링크



2. 파일 허가권

파일 허가권은 install.log.syslog 파일을 예로 "rw-", "r--", "r--"로 끊어서 읽으면 된다.

rread, wwrite, xexecute이다. "rw-"는 읽거나 쓸 수는 있지만 실행할 수는 없다는 의미이고, "r--"는 읽을수는 있지만 쓰거나 실행할 수는 없다는 의미이다.




파일 허가권을 변경하는 명령어는 chmod이다.

실습을 해보자.

vi test를 사용하여 아무 내용을 입력해서 넣고, (간단히 Hi?) ls -l을 입력해 허가권 및 소유권을 보자





파일의 허가권은 "rw- r-- r--"로 되어있고, 파일의 소유자는 root이고, 그룹은 root이다. 왜냐? root사용자에서 만들었으니까...

root라는 사용자는 이 파일을 읽거나 쓸수만 읽고 실행할 수는 없다. 다른 사용자나 그룹은? 읽을 수 밖에 없다.





root사용자에서 파일을 실행하려고 했지만 허가 거부되었다.

이것을 실행할 수 있도록 rwxchmod명령으로 살려보자




 

chmod로 권한을 허용한 뒤, 실행하였다. 허가 거부가 해제되었다. Hi라는 명령어는 없기때문에 오류가 났지만 허가 거부는 해제된 것을 알 수 있다.

 

3. 링크

숫자가 적혀있는데 몇 개의 링크가 있는지를 보여준다.

 

4. 파일 소유권

파일 소유권은 차례대로 파일을 소유한 사용자와 그룹을 의미한다.

위 그림의 예로 intstall.log.syslog파일의 사용자는 root이며 root그룹이다.

파일소유권을 변경하는 명령어는 chown이다.

파일 소유권에 대한 실습을 해보자



chown의 소유자와 그룹을 root에서 fedora로 변경하였으니, fedora로 접속하여 실행시켜보자.



잘 실행되는 것을 볼 수 있다.



LIST

쉘이란?


로그인 이후부터 명령어를 기계어로 번역해 주는 명령 해석기를 쉘이라고 한다.쉘은 사용자와 운영체제간에 상호 작용을 할 수 있는 기본적인 인터페이스를 제공명령를 입력하면 쉘에서 해석되어 해석한 명령을 운영체제로 전달한다., 쉘은 우리의 명령어를 받아 들이고 그것을 실행하도록 하기 위한 프로그램이라고 생각하면 된다.shell은 변수를 정의할 수 있고 조건문,반복문,산술 연산 등을 할 수 있는 완전한 프로그램 언어이다.


예를 들어 dir 이란 명령어를 입력했는데, 기계에 불과한 컴퓨터가 dir 이 무엇인지 직접 알수는 없다.

여기서, shelldir 이라는 명령어를 해석하여 파일의 목록을 출력하도록 운영체제를 움직이고, 운영체제가 결국은 컴퓨터를 움직이는 것이다




LIST

리눅스는 루트 디렉토리를 근간으로한 체계적인 트리구조로 되어있다.처음 리눅스를 설치시에 생성되는 디렉토리는 각 파일의 목적이나 시스템의 특징에 따라 분류된다.그렇기 때문에 주요 디렉토리의 이름을 변경하거나 이동하면 안된다.(시스템 다운될 가능성이 있음)리눅스 디렉토리에 대해서 알아보자.

 

 

/

최상위 디렉토리다. 모든 디렉토리는 "/"를 기준으로 생성된다. 윈도우처럼 C: D:와 같은 드라이브

개념이 없다. 오로지 "/"부터 출발을 한다.

 

/boot

부팅에 필요한 핵심 파일들과 커널이 위치한다. 이 디렉토리의 파일들이 손상되거나 없어진다면 부팅이 되지 않으므로 조심해야한다.

 

/etc

윈도우의 제어판이랑 유사하며, 시스템이나 사용자 관리(/etc/shadow, /etc/passwd, /etc/group)를 위한 파일 관리자용 명령어들이 있다.TCP/IP, 메일 서버, 웹 서버, 삼바 서버, DHCP서버 등 네트워크와 관련된 설정 파일들도 위치해있다.그 외에 /etc/skel에는 .bash_profile.bashrc파일들이 있는데 두 파일은 환경설정 파일로 설치시 기본적인 셋팅이 되어있는 기본값이 들어가 있으며,만약 유저 생성 시 유저의 초기값이 들어가 있는 곳이다.응용 프로그램과 서버프로그램의 환경설정에 필요한 설정 파일이 위치 중요한 디렉토리이므로, 수시로 백업하는 것이 좋다.

 

/bin

기본 명령어가 존재하며, 사용 빈도가 높은 디렉토리다. 명령어와 관련된 파일들이 있다. cat, chmod, date, env, ls, mkdir, rm, touch, vi 등의 명령어들이 있다.

 

/dev

시스템에 있는 모든 장치가 파일로 표현되어 있다. udev라는 데몬이 이곳 디바이스들을 관리한다. 하드웨어를 교체할때 들어가야 할 곳이다.1. 블록장치 - 읽기/쓰기 장치이다. ) IDE하드(hda, hdb...), CD-ROM, SCSI하드(sda, sdb...), 플로피(fd0), 테이프 등의 하드 관련된 정보를 파일로 갖고 있는 디렉토리이다.2. 문자장치 - 파일 맨 앞에 C라고 붙는 입출력 장치를 말한다.

 

/root

관리자용 홈 디렉토리이다.

 

/home

일반 사용자의 홈디렉토리이다. "/home/사용자 이름"으로 만들어진다.

 

/lib

라이브러리 및 부팅시의 커널 모듈을 포함한다.윈도우에서는 어떤 실행프로그램을 실행할 때, DLL파일이 없다고 뜨는 경우가 있다.

DLL파일은 동적 라이브러리 파일이라고 해서, 어떤 프로그램을 실행할때 프로그램을 지원해주는 파일이다.리눅스에서도 마찬가지로 어떤 프로그램을 실행할 때, 각종 라이브러리 파일이 필요하기 때문에 그 라이브러리를 모아놓은 디렉토리이다.책을 보고 그대로 따라 쳤는데 잘 안된다 싶으면 이 디렉토리에 들어가 필요한 라이브러리를 업데이트 해준다.

 

/proc

실행중인 프로세서를 파일로 제작하여 관리하는곳이다.

, 안에 파일로 된 프로세서를 지우면 그 프로세스가 종료된다.프로그램을 구동하게 되면 /proc에 해당되는 프로세서의 PID번호에 따라 디렉토리를 생성하여 프로세스의 진행상황을 추적하고 관리하는 곳이다.문자로 이루어진 이름의 디렉토리 파일은 시스템 및 커널정보이고, 숫자로 이루어진 이름의 디렉토리는 현재 실행중인 프로세스의 정보이다.윈도우에서는 작업관리자로 표시를 하지만 리눅스는 굳이 파일로 만드는 걸 좋아하여 가상의 파일을 만들어 관리한다.(프로세스는 실행중인 상태이며, 프로그램은 설치상태인 것이다.)

 

/sbin

root(관리자)만 이용 가능한 명령어를 모아 둔 곳이다. 관리자가 사용하는 시스템 운영 명령어가 위치한다. 시스템을 점검하거나 복구하고, 시스템 초기화명령 등이 있다.

ifconfig, reboot, shutdown, mount, fsck, mkfs, iptables등이 있다.

 

/var

내용이 자주 변경되는 정보가 저장(로그파일, 메일스풀(메일 내용), 프린트 스풀(인쇄될 내용))된다.서버파일, 로그파일이 존재하는 곳으로 만약 서버로 리눅스를 이용할 시 다른 접속자들은 var에서만 이용되는 서버쪽 디렉토리다.레드햇 배보판에서 패치지로 제공하는 아파치 웹 서버 관련 자료 MySQL의 데이터베이스, FTP의 최상위 디렉토리 등 다양한 서버 자료들이 존재하는 디렉토리다.

 

/usr

user의 약자로 사용자 디렉토리라고 보면 된다. 프로그램을 설치할 때 패치지에 포함된 대부분의 파일이 이곳에 설치된다. 윈도우의 programs file이라 보면 된다.

 

/lost+found

부팅시 파일시스템 손상이 되었을 때, 사용되는 디렉토리이다. 파일 시스템을 체크하는 유틸리티가 있는데, 이런 유틸리티들이 파일시스템을 점검한다.이상이 있을 경우 복구를 하지만, 복구하지 못했을 경우 /lost+found디렉토리 안에 복구하지 못한 내용들을 저장한다.그러므로 평소에 파일에 이상이 없으면 이 디렉토리는 비어있다.

 

/media

기본적인 마운트 포인트를 제공한다. 주로 fedora에서 사용하는 것이고, 기본적인 리눅스는 /mnt를 사용한다.

 

/tmp

프로세스 생성 과정에서 발생되는 임시 파일을 모아두는 디렉토리로 안에 내용이 삭제되거나 해도 크게 영향을 주지 않는 곳이다. 재구동시에 모두 삭제된다.



LIST

리눅스는 다중 사용자 시스템이다. 사용자 여러명이 동시에 접속해서 사용할 수 있는 시스템이다.

자 그렇다면 여러명의 사용자 정보를 어느 파일에서 관리를 하고 있을까?

/etc/passwd/etc/group파일이다.

먼저, /etc/passwd파일을 보자.



 

/etc/passwd 파일을 보면 다음과 같다.

사용자 이름 : 암호 : 사용자ID : 사용자가 소속된 그룹 ID : 전체 이름 : 홈 디렉토리 : 기본 셸

맨 밑에있는 games를 예로 들어보자.

games사용자를 놓고 보면, 이름은 games, 암호는 x로 되어 있는데 이는 /etc/shadow파일에 비밀번호가 지정되어 있다는 의미이다. 사용자 ID12번이고, games가 속한 그룹의 ID500번이다. 전체 이름은 생략되었으며, fedora 사용자의 홈 디렉토리는 /usr/games이고, 로그인시 제공되는 셸은 /bin/bash이다.

 

/etc/group파일을 보자.



 

그룹명 : 비밀번호 : 그룹ID : 그룹에 속한 사용자명

마지막의 그룹에 속한 사용자명은 참조로 사용되기 때문에 그 부분에 아무것도 써 있지 않다고 해서 그 그룹에 소속된 사용자가 반드시 없다는 뜻은 아니다.

 

이번에는 useradd명령어를 사용하여 직접 사용자를 만들어보고 어떻게 사용자가 생성되고 정보는 어떤식으로 생성되는지 알아보자.



useradd 명령어로 add1을 만들고, tail 명령어를 사용해서 끝에서부터 10줄을 출력해보았다.

사용자 이름은 앞에서 지정한 add1로 되어있고, 암호는 /etc/shadow에 지정되어있다. add1ID501번으로 사용자 fedora 다음번호가 부여되었다. 그룹 ID501이며, 사용자 홈 디렉토리는 기본값인 /home/사용자이름으로 지정되었다. 셸도 기본값인 /bin/bash로 지정되었다.

이번에는 /etc/group파일을 보자.

add1 : x : 501 : 이라고 되어있다. 사용자 이름 = 그룹 이름이 되어서 관리하기가 힘들어진다. 그래서 그룹을 먼저 만든 후, 사용자를 그 그룹에 속하도록 생성하는 것이 좋다.

 

먼저, 그룹을 생성한 후, useradd 명령어의 옵션중 -g를 사용하여 사용자의 그룹까지 지정해준다.



 

user라는 그룹을 생성한 후, user1 user2를 생성할 때, 그룹을 user로 지정하였다.

LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - 쉘(Shell)  (0) 2016.02.09
리눅스 - 디렉토리 구조  (0) 2016.02.08
리눅스 - 마운트(Mount)  (0) 2016.02.07
리눅스 설치 - 리눅스 설치 공간 확보(파티션 분할)  (0) 2015.12.28
리눅스의 배포판  (0) 2015.12.28

<마운트란?>


물리적인 장치를 특정한 위치(디렉토리)에 연결시켜주는 과정이다윈도우에서 C:, D:, E:와 같은 장치들을 봤을 것이다리눅스에서도 똑같은 장치 개념인데, 다른점은 관리자가 직접 만들어줘야 한다. 마운트 하고 싶은 폴더에 장치를 연결해주는 것이다.

한마디로 장치를 사용할 수 있게 폴더에 연결해주는 작업이다. 연결하면 그 폴더는그 장치폴더로 바뀌어 버린다. 예를 들어 Window에서 C드라이브, D드라이브를 폴더라고 생각하면 된다.

 

마운트 명령으로 현재 마운트 되어 있는 장치들을 확인해 보자.



 

현재 알아볼 마운트는 CD/DVD장치이다. (현재 실습환경에서는 CD롬에 CD가 들어가있기 때문에 위와같이 나타나는 것이다.)

맨 밑에서 두번째줄을 보면 /dev/sr0 on /media/Fedora 11 i386 DVD type...이라고 되어있다.

/dev/sr0 장치는 CD/DVD라고 보면 된다. CD/DVD장치는 /media/Fedora 11 i386 DVD 디렉토리에 마운트 되어 있는 것을 말한다.

CD/DVD에 있는 파일 즉, CD에 있는 파일을 보기 위해서는 어떻게 해야할까?

/media/Fedora 11 i386 DVD 디렉토리에 가면 CD에 있는 파일들이 있을것이다. ? /media/Fedora 11 i386 DVD디렉토리를 마운트 했으니까!

/media/Fedora 11 i386 DVD에 있는 파일들... , CD에 있는 파일들이다.



 

 

 

, 이제 마운트를 해제한 후, 다시 마운트 하는 실습을 해보자.

1. 마운트를 해제한 후, mount명령으로 해제되었는지 확인하자.



다음 그림과 같이 마운트가 해제되었다.

 

마운트가 해제된 후, /media/Fedora 11 i386 DVD에 가보려고 했는데 없어졌다.



 

이번엔 새로 /media/Fedora 라는 디렉토리를 만들어 그곳에 마운트를 시켜본후, 확인해보자.


LIST

'OS > Linux' 카테고리의 다른 글

리눅스 - 디렉토리 구조  (0) 2016.02.08
리눅스 - 사용자와 그룹  (0) 2016.02.08
리눅스 설치 - 리눅스 설치 공간 확보(파티션 분할)  (0) 2015.12.28
리눅스의 배포판  (0) 2015.12.28
리눅스의 특징  (0) 2015.12.27

+ Recent posts