'OPS/LInux'에 해당되는 글 16건

  1. 2015.04.26 user management on debian
  2. 2015.04.26 grub
  3. 2015.04.26 apache on debian
  4. 2015.04.26 bind9
  5. 2015.04.26 dhcp
  6. 2015.04.26 fdisk
  7. 2015.04.26 init
  8. 2015.04.26 send mail
  9. 2015.04.26 raid
  10. 2015.04.26 quota

사용자계정


●유저 생성

데비안 에서는 adduser와 useradd가 같지 않다.

adduser는 여러 질의를 통해 유저를 생성하고, useradd는 명령어 한 줄에 여러 옵션들을 적용해 유저 생성

그리고 newusers라는 게 있는데 파일하나를 만들어 유저정보를 입력하고(형식은 /etc/passwd파일과 똑같이 해야 함) newusers <파일이름>을 치면 유저정보가 있는 파일에 있는 내용이 passwd파일에 그대로 올라간다.

ex)

- adduser 만들기 예제

# adduser sample

Adding user 'sample'...

Adding new group 'sample' (1004)

Adding new user 'sample" (1004) with grouop 'hey; ...

Creating home directory '/home/sample' ...

Copying files from 'etc/skel' ...

Enter new Unix password:

Retype new UNIX password:

.

.- useradd 만들기 예제

# useradd sample

#

참고로 useradd는 -m 옵션을 넣지 않으면 홈 디렉터리를 만들지 않는다.

useradd 옵션

-u : uid 지정

-g : 메인 그룹 지정(gid나 그룹이름이나 상관없음)

-m : 홈 디렉토리 생성 명령어

-d : 기본 홈디렉토리 경로로 하고 싶지 않을때 홈 디렉토리 경로 따로 설정

-s : 사용하고 싶은 쉘 선택

-G : 보조 그룹 지정

-e : 계정 사용 기간 설정(2009-11-01)

-o : 이미 존재하는 uid나 gid를 지정 하게 해 줄수 있는 옵션

옵션을 지정하지 않으면 /etc/default/useradd에 있는 옵션을 적용

- newusers 만들기 예제

# vim userfile// 유저정보파일을 먼저 만들어 놔야함

--------------------------------------------------------------------

sample1:123:501:501::/home/sample1:/bin/bash

sample2:123:502:502::/home/sample2:/bin/bash

--------------------------------------------------------------------

sample2:123:502:502::/home/sample2:/bin/bash 해석하면

-> ID=sample2 비번=123 uid=502 gid=502 홈 디렉토리=/home/sample2 쉘 bin/bash

# newusers userfile

# vim /etc/passwd

--------------------------------------------------------------------

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

.

.

.

sample1:x:501:501::/home/sample1:/bin/bash

sample2:x:502:502::/home/sample2:/bin/bash

--------------------------------------------------------------------

이제 sample1으로 로그인 해보면 로그인이 된다.

● /etc/passwd 파일

# vim /etc/passwd

--------------------------------------------------------------------

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

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

.

.

gold:x:1000:1000:gold,,,:/home/gold:/bin/bash

--------------------------------------------------------------------

사용자이름:패스워드:UID:메인GID:사용자 진짜 이름:홈 디렉토리:

● /etc/shadow 파일

# vim /etc/shadow

--------------------------------------------------------------------

root:$ad45aIDIIadj$:14534:0:99999:7:::

.

.

gold:$6123dfsas:14534:0:99999:7:::

--------------------------------------------------------------------

사용자이름:패스워드:마지막 패스워드변경일로부터 지난 날:몇 일이 지나야 바꿀 수 있는지:패스워드를 반드시 바꿔야 하는 날로부터 며칠이 지나 갔는지:패스워드가 만기 되었음을 몇일동안 건지:패스워드가 만기되어 계정 사용불가가 된지 며칠이나 지났는지:계정 사용불가가 된 것이 1970-1-1일부터 계산하여 며칠째 됫는지:차 후 확장을 위해 남겨둔 항목

● /etc/default/useradd 파일

- useradd 명령어를 주면 이 파일에서 설정된 옵션들이 적용해 생성한다.

# vim /etc/default/useradd

--------------------------------------------------------------------

SHELL=/bin/bash// 쉘 방식 선택

GROUP=100// 기본 소속 보조그룹(우분투9.04버전에선 무시)

HOME=/home// 홈 디렉토리 선택

INACTIVE=-1// 패스워드 종료일 이후 유효 기간 (-1 사용안함)

EXPIRE=// 계정 종료일

SKEL=/etc/skel// 이 폴더안에 있는 파일이 홈 디렉토리 안에 생성됨

CREATE_MAIL_SPOOL=yes// 메일 스풀 파일 만들건지 말건지

--------------------------------------------------------------------

※ 지시문 앞에 빈칸이 있으면 인식이 안 된다.

● /etc/adduser.conf

- adduser 명령어를 주면 이 파일에서 설정된 옵션들이 적용해 생성한다.

# vim /etc/adduser.conf

--------------------------------------------------------------------

DSHELL=/bin/bash// 쉘 방식 결정

DHOME=/home// 홈 디렉토리 설정

GROUPHOMES=no// 메인 GID안에 홈폴더를 만들건지(유저 아이디 sample 이고 메인 그룹이 stu라면 경로가 /home/stu/sample)

LETTERHOMES=no// 유저의 첫글자를 딴 폴더안에 홈폴더를 만들건지(유저 아이디 xuser 경로 /home/x/xuser)

SKEL=/etc/skel// 이 폴더안에 있는 파일이 홈 디렉토리 안에 생성됨

FIRST_SYSTEM_UID=// system uid의 첫 번째 uid 범위

LAST_SYSTEM_UID=// system uid의 마지막 uid 범위

FIRST_SYSTEM_GID=// system gid의 첫 번째 gid 범위

LAST_SYSTEM_GID=// system gid의 마지막 gid 범위

FIRST_UID=// adduser명령어로 만들어진 유저의 첫번째 UID범위

LAST_UID=// adduser명령어로 만들어진 유저의 마지막 UID범위

FIRST_GID=// 기본 소속메인 그룹의 첫 번째 GID범위

LAST_GID=// 기본 소속메인 그룹의 마지막 GID범위

USERGROUPS=yes// 유저 생성시 사용자 이름(UID)과 같은 그룹(GID)을 만 들어 메인 GID로 적용할건지(sample:x:1000:1000)

USERS_GID=1000// 위 값이 no일시 모든 사용자의 메인 GID를 설정

DIR_MODE=0755// 홈 디렉토리 퍼미션 설정

SETGID_HOME=

QUOTAUSER=""

SKEL_IGNORE_REGEX=

'OPS > LInux' 카테고리의 다른 글

grub  (0) 2015.04.26
apache on debian  (0) 2015.04.26
bind9  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:15

GRUB

리눅스에서 사용하는 부트로더중 하나이다. OS의 커널을 로드 하고 커널파라메터를 커널에 넘겨주는 역할을 한다.

# vim /boot/grub/menu.lst

--------------------------------------------------------------------

# menu.lst - See: grub(8) ...

.

.

default0

timeout5

color cyan/blue white/blue

.

.

titleDebian GNU/Linux, kernel 2.6.26-2-686

root(hd0,0)

kernel/boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet

initrd/boot/initrd.img-2.6.26-2-686

titleDebian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)

root(hd0,0)

kernel/boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro single

initrd/boot/initrd.img-2.6.26-2-686

titleWindows NT/2000/XP

root(hd0,2)

savedefault

makeactive

chainloader+1

--------------------------------------------------------------------

default0

-> timeout이 끝낫을때 몇 번째 title로 부팅할지

timeout5

-> 몇 초 뒤에 기본 title로 부팅할지

hiddenmenu

-> 부팅시 GRUB 메뉴를 보여주지않음 (데비안에는 기본옵션으로 없음 추가해줘야함)

color cyan/blue white/blue

-> color 글자색/배경색 선택된글자색/선택된배경색

글자 색과 배경색에 모두 사용 가능한 색깔은 black, blue, green, cyan, red, magenta, brown, light-gray 이고, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white는 글자 색에만 사용

hid

titleDebian GNU/Linux, kernel 2.6.26-2-686

-> 부팅시 GRUB 메뉴에서 표시될 이름

root(hd0,0)

-> 부트파티션이 있는 파티션 번호 (hd0,0)은 sda1이랑 같음

kernel/boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet

-> 커널 이미지 경로 root파티션 장치명(경로) 커널파라미터

initrd/boot/initrc.img-2.6.26-2-686

-> initrc 이미지(리눅스 부팅 과정에서 루트 파티션을 사용하기 전 준비 작업 으로서 실행되어야 할 프로그램을 압출해서 담아 놓은 초기화 루트파일) 경로

root(hd0,2)

-> 윈도우가 깔려있는 파티션

rootnoverify(hd0,2)

-> rootnoverify는 root와 비슷하지만 해당 파티션을 마운트하지 않는다. NTFS 파티션처럼 GRUB이 인식할 수 없는 파티션을 루트 장치로 지정할 때 사용(기본으로 없는 옵션)

makeactive

-> GRUB의 루트 디바이스를 부팅 가능한 파티션으로 지정

chainloader+1

-> makeactive 명령으로 부팅 가능하도록 지정된 파티션의 첫 번째 섹터부터 읽어들이기 시작해 부팅을 시작하도록 하라는 뜻

· 커널 파라미터 종류

quite : 커널 메시지를 화면상에 출력되지 않게 하는 옵션

vga : 화면 해상도 설정

ro : read only로 마운트

single : single유저 모드로 부팅

grub비밀번호

방법1.

# grub

grub> md5crypt

Password: <비밀번호입력>

Encrypted: $nafqew/fd33lsdfaksd,/afsd.

컨트롤 + C로 빠저나옴

# vim /boot/grub/menu.lst

.

.

password --md5 $nafqew/fd33lsdfaksd,/afsd.

-> timeout 밑부분쯤에 password입력하고 나온 문자를 password --md5 다음에 적어줌

방법2.

# grub-md5-crypt

Password: <비밀번호입력>

Retype password: <확인차재입력>

$nafqew/fd33lsdfaksd,/afsd.

# vim /boot/grub/menu.lst

.

.

password --md5 $nafqew/fd33lsdfaksd,/afsd.

-> timeout 밑 부분쯤에 password입력하고 나온 문자를 password --md5 다음에 적어줌

방법3.

# grub-md5-crypt > grubpass

<비밀번호입력>후엔터// 출력을 grubpass파일로 해놔서 모니터 상에서 안 보인다.

<비밀번호재입력> 후엔터

# cat grubpass// 파일에 재대로 기록 되었는지 확인

Password:

Retype password:

$nafqew/fd33lsdfaksd,/afsd.

# vim /boot/grub/menu.lst

파일이 열리면 아무것도 건들지말고 컨트롤 +w n을 눌러준다. 그러면 창이하나 더생기는데 :e grubpass를 입력해서 새창에 grubpass파일을 불러온다 그러면 윗 창에 생기는 암호가 생기는데 yy로 복사한뒤 컨트롤 + w w로 grub파일로 이동한 뒤 p를 눌러 옴겨놓고

timeout 밑쯤에

password --md5 $nafqew/fd33lsdfaksd,/afsd. 를 추가해준다.

'OPS > LInux' 카테고리의 다른 글

user management on debian  (0) 2015.04.26
apache on debian  (0) 2015.04.26
bind9  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:12

Apache


- 아파치 파일구조

· conf.d/아파치 전역에서 사용되는 잡다한 설정들

· apache2.conf기존 httpd.conf의 내용 및 sites-enabled, mods-enabled 파일들을 include하도록 하는 부분이 들어있다.

· httpd.conf아파치 1.x 버전 대와의 호환성 때문에 남아있다.

· sites-available/virtual host 설정을 보관한다.

· sites-enabled/sites-available로 symbolic link를 걸어 실제 사용하는 사이트들만 활성화한다. (여기에 링크가 존재해야만 아파치가 인식한다)

· mods-available/ 확장 모듈들 불러오기(*.load) 및 관련 설정(*.conf)들이 들어있다.

· mods-enabled/ sites-enabled와 마찬가지로 여기에 symbolic link가 걸려있어야 실제로 모듈이 로딩된다.

· ports.conf웹서버의 포트를 설정한다.

- 아파치 설정파일

# vim /etc/apache2/apache2.conf

--------------------------------------------------------------------

### Section 1: Global Environment// 아파치 전체적인 영향을 미치는 설정 부분

#

ServerRoot "/etc/apache2"// 아파치 루트 디렉토리 설정파일 로그파일 등이 존재

하는 곳 경로 마지막에 /를 붙혀서는 안됨

PidFile ${APACHE_PID_FILE}// 아파치 프로세서가 시작될 때 자신의 프로세서번호 (PID)를 기록하는 파일

Timeout 300// 클라이언트와 서버와 연결 후 둘 사이에 요청 이나

메시지가 발생 하지 않을 때 접속을 끊을 시간설정

KeepAlive On// 아파치 특정 프로세서가 특정 사용자의 지속적인 요청 을 계속 해서 처리 할 것인가 설정

MaxKeepAliveRequests 100// 한 프로세서가 이 옵션에 적힌 요청의 횟수만큼 지속 적인 요청을 처리(0으로 설정해두면 무한)

KeepAliveTimeout 15// 특정 클라이언트와 특정 프로세서가 처리 중 일 때 프로세서가 클라이언트의 다음 요청을 기다리는 시간

<IfModule mpm_prefork_module>

StartServers5// 기본 자식프로세스 개수(시작 시 띄울 프로세스 개수)

MinSpareServers5// 프로세스가 옵션보다 작으면 옵션 만큼 될 때 까지 프 로세스 생성

MaxSpareServers10// 프로세스가 옵션보다 많으면 옵션 만큼 될 때 까지 프 로세스 삭제

MaxClients150// 서버 접근 가능한 클라이언트 최대 개수

MaxRequestsPerChild0// 자식 프로세스가 처리 가능한 요청 개수 이 값 만큼 요청 받으면 자식 프로세스 죽음

</IfModule>

<IfModule mpm_worker_module>

StartServers2// 처음에 실행될 프로세스의 개수

Maxclients150// 동시 연결 가능한 클라이언트의 최대 개수

MinSpareThreads25// 새로운 클라이언트를 바로 처리하기 위해 대기하고 있 는 최소한의 스레드 수

MaxSpareThreads75// 새로운 클라이언트를 바로 처리하기 위해 대기하고 있 는 최대한의 스레드 수

ThreadsPerChild25// 하나의 자식프로세서가 계속 가질 수 있는 스레드 수

MaxRequestsPerchild0// 자식프로세서가 서비스할 수 있는 최대 요청 개수

</IfModule>

User apache// 요청을 대답하기 위하여 서버에 의해 사용되는 사용자 아이디를 지정

Group apache// 서버가 요청을 대답하는 그룹을 지정

AccessFileName .htaccess//

<Files ~ "^\.ht">// ht로 시작하는 모든 파일을 접근을 금지 시킴

Order allow,deny

Deny from all

</Files>

DefaultType text/plain// 파일 확장자를 통해 MIME형식을 알 수 없을 때 기본 적으로 쓸 MIME타입 지정

HostnameLookups Off// 클라이언트의 IP,이름을 기록할건지 off 경우 IP 저장 on 의 경우 이름으로 저장

ErrorLog /var/log/apache2/error.log

LogLevel warn// 로그파일의 저장 형식지정 그 종류로는 warn, debug, info, notice, crit, alert

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat “%v:%p...” vhost_combined// CustomLog에서 사용할 형식에 대한 지정

LogFormat "%h %l..." combined

LogFormat "%h %l..." common

LogFormat "%{Re...." referer

LogFormat "%{Use.." agent

CustomLog /var/log.. vhost_combined// 로그파일의 위치와 형식 앞의 /var....가 파일 위치고 한 칸 띄우고 vhost_com...가 형식임

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

--------------------------------------------------------------------

# vim /etc/apache2/conf.d/charset

--------------------------------------------------------------------

AddDefaultCharset UTF-8// 웹서버 로케일 설정

--------------------------------------------------------------------

# vim /etc/apache2/conf.d/security

--------------------------------------------------------------------

ServerTokens Full// 아파치의 HTTP로서 응답할 헤드를 설정 종류로는

Prod : Product Only의 약어로 웹서버의 종류만 출력

Min : 웹서버의 종류와 버전을 출력

OS : 웹서버의 종류와 버전, 운영체제의 종류를 출력

Full : 웹서버의 종류,버전,운영체제,설치된 모듈 출력

ServerSignature On// On설정시 웹서버의 에러문서에서 추가적 정보를 출력

TraceEnable On// Trace메소드(client가 송신한 리퀘스트를 그대로 반환 하는 것)의 온・오프를 설정하는 옵션

--------------------------------------------------------------------

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

<VirtualHost *:80>

ServerAdmin webmaster@localhost// 웹서버 관리자 e-mail 주소

DocumentRoot /var/www// 웹페이지 파일 들이 존재할 디렉토리

<Directory />

Options FollowsymLinks

AllowOverride None

</Directory>

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/// 가상 디렉토리를 설정 가상도메인이 skill.com 이라면 skill.com/doc/cgi-bin/lin 을 입력하면 /usr/lib/cgi-bin/lin 스크립트를 실행

.

.

ErrorLog /var/log/apache2/error.log// 웹 에러 로그 파일 위치

LogLevel warn// 로그 레벨 설정

CustomLog /var/log/apache2/access.log combined// 웹 로그 파일 위치

Alias /doc/ "/usr/share/doc/"// 가상 디렉토리를 설정 가상도메인이 skill.com 이라면 skill.com/doc을 /usr/share/doc 으로 연결되게 하는 옵션 skill.com/doc/sea.jpg를 입력하면 /usr/share/doc/sea.jpg를 실행

</VirtualHost>

--------------------------------------------------------------------

- 아파치 가상호스트 실습

※ 전제 : 서버 IP는 192.168.0.1이고 이 서버에서 skill.com, www.skill.com order.skill.com의 DNS가 설정되어 있으며 192.168.0.1로 매핑되어 있음, 그리고 서버에는 /web, /www, /order 디렉토리가 생성되어 있고 각 폴더의 웹문서가 작성되어 있음

· skill.com, www.skill.com, order.skill.com 웹 사이트 만들기 실습

# vim /etc/apache2/apache2.conf

--------------------------------------------------------------------

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule mpm_prefo가_module>

StartServers5

MinSpareServers5

MaxSpareServers10

MaxClients150

MaxRequestsPerChild0

</IfModule>

<IfModule mpm_worker_module>

StartsServers2

MaxClients150

MinSpareThreads25

MaxSpareThreads75

ThreadsPerChild25

MaxRequestsPerChild0

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

AccessFileName .htaccess

<Files ~"^\.ht">

Order allow,deny

Deny from all

</Files>

DefaultType text/plain

HostnameLookups Off

ErrorLog /var/log/apache2/error.log

LogLevel warn

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat “%v:%p...” vhost_combined

LogFormat "%h %l..." combined

LogFormat "%h %l..." common

LogFormat "%{Re...." referer

LogFormat "%{Use.." agent

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

DocumentRoot /web// 웹 파일들이 위치한 디렉토리 설정

DirectoryIndex index.html// 웹에 보여줄 웹 파일이름

ServerName skill.com// 기본 서버 네임 설정

NameVirtualHost 192.168.0.1:80// 네임기반 가상호스트 운영

--------------------------------------------------------------------

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

※ 이 파일의 기본값 세팅 되어 있는 것 모두 삭제

<VirtualHost 192.168.0.1:80>

ServerName skill.com

</VirtualHost>

<VirtualHost 192.168.0.1:80>// 192.168.0.1:80에 대해 가상 호스트 설정 시작

ServerAdmin root@skill.com// 관리자 메일 주소

ServerName www.skill.com// 서버 이름

DocumentRoot /www// 웹 파일들이 위치한 디렉토리 설정

DirectoryIndex www.html// 웹에 보여줄 웹 파일이름

Errorlog log/wwwe_log// 에러 로그 파일 위치

Customlog log/wwwc_log common// 커스텀로그 파일 위치

</VirtualHost>// 가상호스트 설정 끝

<Virtualhost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName order.skill.com

Documentroot /order

ServerAlias ad.skill.com// order.skill.com을 ad.skill.com으로도 접속하게 설정

DirectoryIndex order.html

ErrorLog ordere_log

CustomLog orderc_log common

</VirtualHost>

--------------------------------------------------------------------

# vim /etc/apache2/ports.conf

--------------------------------------------------------------------

NameVirtualHost *:80// 이 행 삭제

--------------------------------------------------------------------

# /etc/init.d/apache2 restart

- 아파치 한글 설정

※보통은 기본으로 한글설

정이 자동으로 되나, 만약 안 되는 경우

한글로 만든 웹 파일을 DocumentRoot로 지정된 디렉토리에 옴겨 주고, 웹파일 이름을 DirectoryIndex에 적어준다.

# Vim /etc/apache2/conf.d/charset

--------------------------------------------------------------------

AddDefaultCharset EUC-KR// 이렇게 바꿔줌

--------------------------------------------------------------------

# /etc/init.d/apache2 restart

- 리다이렉트 설정

· ad.skill.com/v2.html을 www.skill.com으로 리다이렉트 할 때

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

.

.

<Virtualhost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName ad.skill.com

Redirect /v2.html http://www.skill.com

</Virtualhost>

--------------------------------------------------------------------

· ad.skill.com을 www.skill.com으로 리다이렉트 할 때

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

.

.

<Virtualhost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName ad.skill.com

Redirect / http://www.skill.com

</Virtualhost>

--------------------------------------------------------------------

- php 연동

php 설치를 함

# ln -s /etc/apache2/mods-available/php5.* /etc/apache2/mods-enabled/

-> php모듈 적재

# vim /etc/apache2/apache2.conf

--------------------------------------------------------------------

.

.

DocumentRoot /web// 웹 문서가 위치할 디렉터리 설정

DirectoryIndex index.php// php로 작성한 웹 문서 적어줌

--------------------------------------------------------------------

# vim /web/index.php

--------------------------------------------------------------------

<?// php언어로 문서를 작성

echo "phptest";

phpinfo();

?>

--------------------------------------------------------------------

- 인증을 통한 접속

·.htaccess 파일을 사용한 사용자 인증

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>// 해당도메인으로 접속될때 /www 디렉토리로 접속하는 것이기 때문에 /www에 대한 권한을 제한

AllowOverride Authconfig// .htaccess파일을 사용할건지 말건지

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

--------------------------------------------------------------------

# vim /www/.htaccess

--------------------------------------------------------------------

AuthName "access deny login// 인증창에 뜰 메시지

AuthType Basic// 인증 방법

AuthUserFile /www/.htpasswd// 인증을 허가할 유저가 담겨있는 파일

AuthGroupFile /dev/null// 사용자인증이니 사용하지 않음, 보기 같이 설정해야함

<Limit GET POST>

require valid-user// 파일에 지정된 사용자들만 접근 허용

#require user kim// 지정된 유저만 접근허용(kim만 접근가능)

</Limit>

--------------------------------------------------------------------

# htpasswd -c /www/.htpasswdlee// .htpasswd파일을 생성하며 lee사용자를 인증 허가에 등록시킴

# htpasswd /www/.htpasswd kim// 파일은 생성하지 않고 사용자만 추가

# /etc/init.d/apache2 restart

·.htaccess 파일을 사용한 그룹 인증

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>// 해당도메인으로 접속될때 /www 디렉토리로 접속하는 것이기 때문에 /www에 대한 권한을 제한

AllowOverride Authconfig// .htaccess파일을 사용할건지 말건지

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

--------------------------------------------------------------------

# vim /www/.htaccess

--------------------------------------------------------------------

AuthName "access deny login// 인증창에 뜰 메시지

AuthType Basic// 인증 방법

AuthUserFile /www/.htpasswd// 유저 목록파일

AuthGroupFile /www/.htgroup// 그룹 정보가 담겨 있는 파일

<Limit GET POST>

require group school// 지정된 그룹만 접근 허용

</Limit>

--------------------------------------------------------------------

# vim /www/.htgroup

--------------------------------------------------------------------

<그룹이름>: <사용자> <사용자> 형식으로 적어줌

school: lee kim// 여기 명시된 사용자는 .htpasswd파일에 있어야 함

--------------------------------------------------------------------

# htpasswd -c /www/.htpasswd lee

# htpasswd /www/.htpasswd kim

# /etc/init.d/apache2 restart

·.htaccess 파일을 사용하지 않은 사용자 인증

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>

AllowOverride none// .htaccess파일을 사용할건지 말건지

AuthType basic

AuthName 'login access failed'

AuthUserFile /www/.htpasswd

AuthGroupFile /dev/null

require valid-user

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

--------------------------------------------------------------------

# htpasswd -c /www/.htpasswd lee

# htpasswd /www/.htpasswd kim

# /etc/init.d/apache2 restart

·.htaccess 파일을 사용하지 않은 그룹 인증

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

<Directory /www>

AllowOverride none// .htaccess파일을 사용할건지 말건지

AuthType basic

AuthName 'login access failed'

AuthUserFile /www/.htpasswd

AuthGroupFile /www/.htgroup

require group absol

</Directory>

DirectoryIndex www.html

Errorlog /log/wwwe_log

Customlog /log/wwwc_log common

</VirtualHost>

--------------------------------------------------------------------

# vim /www/.htgroup

--------------------------------------------------------------------

absol: sin gun// 여기 나열된 사용자는 .htpasswd에 등록 되어 있어야함.

--------------------------------------------------------------------

# htpasswd -c /www/.htpasswd sin

# htpasswd /www/.htpasswd gun

# /etc/init.d/apache2 restart

- 아파치 모니터링

# vim /etc/apache2/sites-available/default

--------------------------------------------------------------------

<VirtualHost 192.168.0.1:80>

ServerAdmin root@skill.com

ServerName www.skill.com

DocumentRoot /www

DirectoryIndex www.html

ErrorLog /log/wwwe_log

CustomLog /log/wwwc_log common

<Location /sk-mo>// www.skill.com/sk-mo로 접속하면 모니터링이 보이게 설정

SetHandler server-status

Order deny,allow

Allow from all

</Location>

--------------------------------------------------------------------

'OPS > LInux' 카테고리의 다른 글

user management on debian  (0) 2015.04.26
grub  (0) 2015.04.26
bind9  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:11

DNS(bind)


※ 데비안 5.03기반의 자료

- conf파일 설정

# vim /etc/bind/named.conf

--------------------------------------------------------------------

include "/etc/bind/named.conf.options";// 여기 있는 파일의 내용을 현재 파일에 추가

...

zone "자신이 하고 싶은 도메인" {

type 타입설정;

file “파일이름 혹은 파일경로”;

allow-update { 영역전송해줄 IP; };

masters { 마스터IP주소; };

};

include "/etc/bind/named.conf.local";// 여기 있는 파일의 내용을 현재 파일에 추가

--------------------------------------------------------------------

zone 지시문에 적을 수 있는 것은 정방향과 역방향이 있다. 정방향은 도메인을 IP로 매핑하기위해 사용하며 skill.com 이런 식 으로 도메인을 적는다. 역방향은 IP를 도메인으로 매핑하기위해 사용하며 192.168.0.0/24은 0.168.192.in-addr.arpa 이렇게 적어 준다. 또 172.16.0.0/16이라면 16.172.in-addr.arpa로 적어 준다. 그러니 네트워크 주소에서 호스트부분을 지워주고 적는다. 그러나 예외가 있는데 네트워크 주소에서 0이 없는 경우는 3옥테트를 적어준다. 예를 들어보면 192.168.10.128/25는 10.168.192.in-addr.arpa로 적어준다. 여기 적힌 도메인을 존파일에서는 origin이라 부름

type 지시문 부분에 쓸 수 있는 옵션으로는 master와 slave가 있다. master는 자신이 직접 존파일을 만들어서 자신이 관리하며 호스트 추가 등 존파일 설정을 마음대로 할 수 있다. slave는 미리 존파일이 설정되어있는 master서버로부터 master 서버의 존파일을 받아와 서비스만 한다.

file 지시문은 zone파일의 위치를 지정한다. 만약 그냥 파일이름만 지정한다면 directory 옵션에서 지정되어 있는 경로에 파일이 있어야 한다. named.conf 파일이나 include되어있는 파일에 directory 옵션이 있을 것 이다. 만약 경로로 적어준다면 /etc/bind/db.skill.com 이런 식으로 적어준다.

allow-update 지시문은 slave서버에게 자신의 영역전송을 허락 해 줄때 적는다. 딱 하나의 서버에게만 허락해 줄 수도 있고(허락해줄 서버IP), 모든 서버에게 허락해준다면 any를 적는다. allow-update랑 같은 옵션으로 allow-transfer이 있다. 만약 slave서버에게 영역전송 허락을 안 해 준다면 지시문을 적을 필요 없다. 영역전송을 하기 싫지만 지시문을 적고 싶다면 옵션은 none을 적는다.

masters 지시문은 자신의 타입이 slave일 때 영역 전송을 받을 master서버의 IP 주소를 적는다. 만약 master인 경우는 적을 필요가 없음.

· zone파일 설정

- 정방향

※ 편의상 skill.com의 존파일이라고 생각하고 적음

# cp /etc/bind/db.local /var/cache/bind/db.skill.com// 샘플파일을 설정파일에 복사

-> 존파일에서 file “파일이름 혹은 파일경로”; 이행의 적혀있는 경로에 만들어 줘야 함.

# vim /var/cache/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAskill.com. root.192.168.0.1. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

;

@INNS192.168.0.1

@INA192.168.0.1

wwwINA192.168.0.1

INMX10skill.com.

downINCNAMEwww

--------------------------------------------------------------------

$TTL 604800

-> 다른 서버에서 자신의 정보를 가져 갓을 시 그것이 얼마나 머물 건지(초 단위)

@INSOAskill.com. root.192.168.0.1. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

-> @은 orgin을 뜻함 conf파일에서 정해준 기본 도메인을 뜻한다. 그러니 conf파일에서 zone "skill.com" { 이렇게 적어줬다면 orgin은 skill.com이 됨. 이 것을 만약 @대신 도메인으로 적어준다면 skill.com. 이라고 적어 줘야함 맨 뒤에 . 을 찍지 않으면 뒤에 도메인이 한번 더 붙음(skill.com.->skill.com skill.com->skill.com.skill.com)

SOA는 해당 도메인에 대해 여기서 설정한 네임서버가 모든 정보를 가지고 있음을 알려 주는 레코드 해당 도메인에 대한 네임 서비스의 모든 권한이 여기 있다는 것을 의미 뒤에 192.168.0.1.은 네임서버를 뜻하고 그다음 오는 것은 관리자 메일 주소를 뜻함

2 ; Serial 은 존파일의 버전을 뜻함 파일을 수정했다면 값을 하나 올림(꼭 할필요는 없지만 편의상) 보통 날짜로 표시함(2009112511)

604800 ; Refresh 은 보조네임서버가 이 주기 마다 주네임서버의 파일을 업데이트 받아옴 (단위는 초)

86400 ; Retry 은 보조네임서버가 1차로 접근이 안 되면 계속 주기 적으로 접근하는데 그 주기를 설정 (단위 초)

2419200 ; Expire 은 보조네임서버가 1차로 접근이 안 되면 Retry단위로 계속 주네임서버에 접근 한다고 했는데 계속 Retry 단위로 접근을 하다가 Expire시간 동안 연결이 안 되면 주네임서버 에서 도메인정보가 삭제 되었 거나 등등 도메인이 없다고 판단하여 더 이상 주네임서버에 접근을 하지 않음

604800) ; Negative Cache TTL 은 다른 서버에서 자신의 정보를 가져 갓을 시 그것이 얼마나 머물 건지(초 단위) 그러니 특정 도메인의 정보가 변경되었을 경우, 이 시간동안은 변경된 정보가 적용되지 않을 수 있음

@INNS192.168.0.1

-> @(skill.com)의 네임서버를 설정, 또 IN 앞에 아무것도 안 적으면 뒤에 .이 안 붙었으니 자동으로 skill.com을 뜻하는 것이 됨

@INA192.168.0.1

-> @(skill.com)을 매핑해줄 아이피 설정, IN앞에 아무것도 안 적으면 뒤에 .이 안 붙었으니 자동으로 skill.com을 뜻하는 것이 됨

wwwINA192.168.0.1

-> www.skill.com을 매핑해줄 아이피 설정 www 뒤에 .이 안 붙어 있으니 자동으로 skill.com으로 붙음(www = www.skill.com.)

INMX10skill.com.

-> skill.com(아무것도 안 썻으니 자동으로 붙음)의 메일들을 skill.com 서버로 보냄 그러니 webmaster@skill.com의 메일을 skill.com서버로 전달 그리고 10은 메일서버의 우선권임 숫자가 낮은 서버를 사용

downINCNAMEwww

-> down.skill.com(down뒤에 점이 없으므로)을 www.skill.com(www뒤에 점이 없으므로)로 매핑 그러니 원본은 있어야하고 별칭은 없어도 된다. 저렇게 되면 www.skill.com의 정보를 down.skill.com이 그대로 받아감 www.skill.com이 192.168.0.1이라면 down.skill.com도 192.168.0.1이고 www.skill.com이 192.168.0.10으로 바뀌면 down.skill.com도 192.168.0.10이 되는 것이다.

※ 존파일에서는 어느 위치든 점 찍는것을 유의

- 역방향1

※ 편의상 0.168.192.in-addr.arpa의 존파일이라 생각 하고 적음

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.0.168.192

--------------------------------------------------------------------

$TTL 604800

@INSOAskill.com.root.skill.com (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

;

@INNSskill.com.

1INPRTdebian.skill.com.

--------------------------------------------------------------------

1INPRTdebian.skill.com.

-> 192.168.0.1을 debian.skill.com으로 매핑

- 역방향2

※ 편의상 16.172.in-addr.arpa의 존파일이라 생각 하고 적음

# cp /etc/bind/db.127 /var/cache/bind/db.16.172

# vim /var/cache/bind/db.16.172

--------------------------------------------------------------------

$TTL 604800

@INSOAskill.com.root.skill.com (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800)

; Negative Cache TTL

;

@INNS192.168.0.1

1.10INPTRdebian.skill.com.

--------------------------------------------------------------------

1.10INPTRdebian.skill.com.

-> 172.16.10.1 을 debian.skill.com으로 매핑

- 정방향 마스터 실습

# vim /etc/bind/named.conf// conf파일 설정

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

include "/etc/bind/named.conf.options";

.

.

zone "skill.com" {

type master;

file "/etc/bind/db.skill.com";

};

include "/etc/bind/named.conf.local";

--------------------------------------------------------------------

# cp /etc/bind/db.local /etc/bind/db.skill.com

# vim /etc/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

@INA192.168.0.1

wwwINA192.168.0.1

ns1INA192.168.0.1

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

# nslookup

> skill.com

Server:192.168.0.1

Address:192.168.0.1#53

Name:skill.com

Address: 192.168.0.1// 자신이 설정한 도메인에 설정한 IP가 나오면 성공

- 역방향 마스터 실습

# vim /etc/bind/named.conf

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

include "/etc/bind/named.conf.options";

.

zone "0.168.192.in-addr.arpa" {

typemaster;

file"db.0.168.192";

};

include "/etc/bind/named.conf.

--------------------------------------------------------------------

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.0.168.192

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com. root.skill.com. (

1; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

1INPTRskill.com.

1INPTRwww.skill.com.

1INPTRns1.skill.com.

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

# nslookup

> 192.168.0.1

Server:192.168.0.1

Address:192.168.0.1#53

1.0.168.192.in-addr.arpaname = skill.com.

-> 자신이 설정해준 값이 나오면 성공

※ 주의 할 점은 역방향은 zone파일에서 origin이 0.168.192.in-addr.arpa이다.

- 영역전송을 위한 정방향, 역방향 마스터 실습

※전제 마스터IP:192.168.0.1, 슬레이브IP:192.168.0.10

· 마스터 서버 설정

# vim /etc/bind/named.conf

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

.

zone "skill.com" {

type master;

file "db.skill.com";

allow-update { 192.168.0.10; };

};

zone "0.168.192.in-addr.arpa" {

type master;

file "db.0.168.192";

allow-update { 192.168.0.10; };

};

.

.

--------------------------------------------------------------------

# cp /etc/bind/db.local /var/cache/bind/db.skill.com

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

@INA192.168.0.1

ns1INA192.168.0.1

--------------------------------------------------------------------

# vim /var/cache/bind/db.0.168.192

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com. root.skill.com. (

1; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

1INPTRskill.com.

1INPTRwww.skill.com.

1INPTRns1.skill.com.

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

· 슬레이브 서버 설정

# vim /etc/bind/named.conf

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

zone "skill.com" {

type slave;

file "db.skill.com-sv";

masters { 192.168.0.1; };

}

zone "0.168.192.in-addr.arpa" {

type slave;

file "db.0.168.192-sv";

masters { 192.168.0.1; };

};

.

.

--------------------------------------------------------------------

# /etc/inid.d/bind9 restart

# ls /var/cache/bind

db.0.168.192-sv db.skill.com-sv// 적어준 파일이 자동으로 받아오나 확인

# nslookup

> server 192.168.0.10// 아이피를 슬레이브 아이피로 설정

Default server: 192.168.0.10

Address: 192.168.0.10#53

> skill.com

Server:192.168.0.10

Address:192.168.0.10#53

Name:skill.com// 설정해준대로 받아오나 확인

Address:192.168.0.1

> 192.168.0.1

Server:192.168.0.10

Address:192.168.0.10#53

1.0.168.192.in-addr.arpaname = www.skill.com.// 설정해준대로 받아오나 확인

1.0.168.192.in-addr.arpaname = skill.com.

1.0.168.192.in-addr.arpaname = ns1.skill.com.

- 라운드 로빈 구성

· 라운드 로빈 이란

라운드 로빈은 엑세스의 분산을 위해 사용한다. DNS서버에서 skill.com 도메인을 두 개의 IP로 매핑 하여 첫 번째 IP에 엑세스했다 두 번째 IP에 엑세스했다 이런 식으로 분산을 위해 사용한다.

그러니 www.skill.com으로 매핑 되는 웹서버A가 있는데 사용자 폭주로 서버가 다운이 자주 된다. 이 경우 웹서버를 하나 더 늘려 웹서버B를 만든다. 그리고 DNS 서버에서 www.skill.com에 호스트를 웹서버A에도 매핑하고 웹서버B에도 매핑하면 사용자가 A를 갔다 B를 갔다 하니 한 서버에서 처리하는 일이 반으로 감소한다.

· 라운드 로빈 실습

# vim /etc/bind/named.conf

--------------------------------------------------------------------

zone "skill.com" {

type master;

file "db.skill.com";

};

--------------------------------------------------------------------

# cp /etc/bind/db.local /var/cache/bind/db.skill.com

# vim /var/cache/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800; Negative Cache TTL

;

INNSns1.skill.com.

INA192.168.0.1

wwwINA192.168.0.1// 서버A

wwwINA192.168.0.2// 서버B

ns1INA192.168.0.1

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

# nslookup

> server 192.168.0.1

Default server: 192.168.0.1

Address: 192.168.0.1#53

> www.skill.com

Server:192.168.0.1

Address:192.168.0.1#53

Name:www.skill.com

Address: 192.168.0.1// 설정해준 값 나오면 성공(한 도메인에 두 개의 아이피)

Name:www.skill.com

Address: 192.168.0.2// 설정해준 값 나오면 성공(한 도메인에 두 개의 아이피)

- 존파일 기본 경로 변경

# vim /etc/bind/named.conf/options

--------------------------------------------------------------------

.

.

directory "/var/cache/bind";// 이 부분을 변경 하고픈 경로로 설정

notify yes// zone 업데이트시 2차 dns에 알림

.

--------------------------------------------------------------------

directory 지시문 변경 후 필요한 존파일들은 변경한 경로로 이동해줌

'OPS > LInux' 카테고리의 다른 글

grub  (0) 2015.04.26
apache on debian  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
init  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:08

DHCP


- 기본설정

# vim /etc/dhcp3/dhcpd.conf

--------------------------------------------------------------------

※ 처음 설치하면 샘플로 설정 되 있는 것이 있는데 주석 처리나 지워줌

subnet 192.168.0.0 netmask 255.255.255.0 {// 할당할 네트워크를 적어줌

range 192.168.0.10 192.168.0.30;// 할당할 IP주소 영역(10~30)

option routers 192.168.0.1;// 게이트워에 주소

option domain-name-servers 192.168.0.1;// dns서버 주소

option domain-name "debian dhcp";// 할당한 영역이름

default-lease-time 600;// 기본 임대 시간(초단위)

max-lease-time 600;// 최대 임대 시간(초단위)

}

host client {// 강제 할당할 때 사용함 client는 할당 받는 컴퓨터이름임

hardware ethernet 00:01:39:01:16:20;// 할당 받는 컴퓨터의 맥어드레스

fixed-address 192.168.0.50;// 할당 해줄 IP

# domain-name-servers 192.168.0.1;// 따로 네임서버 설정해주는 것도 가능

}

--------------------------------------------------------------------

# /etc/init.d/dhcp3-server restart

'OPS > LInux' 카테고리의 다른 글

apache on debian  (0) 2015.04.26
bind9  (0) 2015.04.26
fdisk  (0) 2015.04.26
init  (0) 2015.04.26
send mail  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:07

fdisk


fdisk는 파티션을 나눠 주는 프로그램

명령어 형식 ‘fdisk <하고픈 디스크>’

# fdisk /dev/sdb// sdb를 나눔

The number of cylinders for this disk is set to 30401.

.

.

Command (m for help):// 이런식으로 커맨드가 바뀜

--------------------------------------------------------------------

- 2G 파티션 만들기 실습

# fdisk /dev/sdb

Command (m for help): n// 파티션 만들기

Command action

eextended

pprimary partition (1-4)

p// p를 입력(주파티션)

Partiton number (1-4):1// 1번 주파티션을 씀

First cylinder (1-30401, default 1):// 그냥 엔터를 치거나 1을입력한뒤 엔터

Last cylinder or +...K (1-30401, default 30401): +2040M//+2040M(2G)를 입력

Command (m for help): p

.

.

/dev/sdb112502008093+83Linux

Command (m for help):

--------------------------------------------------------------------

- 파티션 id swap으로변경

Command (m for help): p

.

.

Device BootStartEndBlocksIdSystem

/dev/sdb11125100403183Linux

-> 파티션 id가 Linux인것을 확인

Command (m for help): t// 파티션 id 변경

Selected partition 1// 파티션이 하나라면 몇 번째 파티션을 쓰겟냐는 문구가 안나오고 여러개라면 몇 번째 아이디를 선택하라 나옴

Hex code (type L to list codes): 82// 변경할 id를 적어줌 l을 누르면 목록이 나옴 거기서 보고 선택해서 입력하면됨

스왑은 82이므로 82를 입력

Command (m for help): p// p를 눌러보면 swap으로 바뀐 걸 볼수있음

.

.

/dev/sdb11125100403182Linux swap / Solaris

Command (m for help):

--------------------------------------------------------------------

- 파티션 삭제

Command (m for help): d// 파티션 삭제

Partition number (1-4): 1// 삭제할 파티션 번호를 입력. 만약 파티션이 하나밖에 없다면 Selected partition 1메세지가 뜨며 바로삭제

Command (m for help):

--------------------------------------------------------------------

fdisk 옵션으로는

a 부트 가능한 플래그로 변경

b bsd 디스크 레이블을 편집

c 도스 호환 플래그로 변경

d 파티션 삭제

l 알려진 파티션 형태의 목록

m 이 메뉴를 출력

n 새로운 파티션 추가

o 새로운 도스 파티션 테이블을 생성

p 파티션 테이블을 출력

q 변경을 저장하지 않고 종료

s 새로운 Sun 디스크 레이블을 생성

t 파티션의 시스템 id를 변경

u 표시/엔트리 단위를 변경

v 파티션 테이블을 점검

w 디스크에 테이블을 기록하고 빠져나감

● mkfs

Fdisk를 한 후 mkfs를 이용해 포맷을 해야 파티션을 이용할 수 있다

포맷은 mkfs -t <포맷형식> <장치> 이렇게 한다.

보통 리눅스에서 ext3형식을 많이 쓰니 하나 해본다면

# mkfs -t ext3 /dev/sdb1// sdb1을 ext3형식으로 포맷

'OPS > LInux' 카테고리의 다른 글

bind9  (0) 2015.04.26
dhcp  (0) 2015.04.26
init  (0) 2015.04.26
send mail  (0) 2015.04.26
raid  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:07

init


init은 리눅스 부팅 커널 다음 넘어오는 차례로 로그인 프롬포트 나오기 전까지 시스템 점검, 프로세스 관리 등의 역할을 한다. 모든 프로세서의 조상인 1번 PID를 갖고 있다.

inittab파일의 형식 id:runlevels:action:command

콜론으로 구분

첫째 항목(id)은 식별자로 어떤 단어든 상관없음 단 다른 것과 겹치면 안 되고 최대 4자리 그리고 tty를 지정하는 것은 맨 끝에 tty숫자가 와야 함. 예) dd1:..... tty1

둘째 항목(runlevels)은 그 줄의 명령이 실행될 실행레벨

셋째 항목(action)은 init이 그 항목을 어떻게 처리할지(예를 들어 1번만 실행, 종료될 때마다 다시 실행 등)

넷째 항목(command)는 init이 이 항목에 대해 실행할 명령

action 옵션

-respawn:프로세서 종료 시 항상 다시 시작

-wait:지정된 run-level이 되면 실행하고, init은 이 프로세서가 종료되기를 기다림

-once:지정된 run-level이 되면 한번만 명령어를 실행

-boot:시스템 부팅 때 그 프로세서를 실행 이때 run-level값은 무시

-bootwait:시스템 부팅 때 그 프로세스가 실행 되고, init은 이 프로세스가 종료되기를 기다 림 그리고 runlevel 값이 무시됨

-initdefault:시스템의 기본 run-level을 지정

-sysinit:시스템 부팅시 프로세서 제일 먼저 실행

-powerwait:전원에 문제가 발생시 프로세서 실행, 프로세서 작업 종료되기를 기다림

-powerfail:전원에 문제가 발생시 프로세서 실행, 작업 종료를 기다리지 않음

-ctrlaltdel: ctrl+alt+del키 입력시 실행

-kbrequest:특정한 키를 입력 받을 때 실행

실행레벨은 0:시스템 정지(halt), 1:싱글 유저모드, 2~5:여러 가지 다중 사용자 모드, 6:시스템 재부팅(reboot)

inittab 파일 분석

--------------------------------------------------------------------

id:2:initdefault:

-> 데비안을 실행레벨 2로 시작하고 /etc/rc.2d 에 있는 스크립트 실행

si::sysinit:/etc/init.d/rcS

-> 어떤 실행레벨이든 부팅 때 1회 실행 기본적인 초기화를 수행한다.

~~:S:wait:/sbin/sulogin

-> 싱글 모드로 들어갈시 root 비밀번호를 물어보게 함

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

l2:2:wait:/etc/init.d/rc 2

l3:3:wait:/etc/init.d/rc 3

l4:4:wait:/etc/init.d/rc 4

l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

-> 각 레벨별 실행 명령 /etc/init.d/rc 스크립트는 실행레벨이 바뀔 때 매다 알맞은 스크립트를 실행

z6:6:respawn:/sbin/sulogin

->

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

-> 컨트럴+알트+del키 입력 시 시스템 재부팅되게 함

pf::powerwait:/etc/init.d/powerfail start

pn::powerfailnow:/etc/init.d/powerfail now

po::powerokwait:/etc/init.d/powerfail stop

-> 무정전 전원공급 장치상태를 모니터링할 수 있는 bpowerd 패키지를 설치 했을 시 사용

1:2345:respawn:/sbin/getty 38400 tty1

2:23:respawn:/sbin/getty 38400 tty2

3:23:respawn:/sbin/getty 38400 tty3

4:23:respawn:/sbin/getty 38400 tty4

5:23:respawn:/sbin/getty 38400 tty5

6:23:respawn:/sbin/getty 38400 tty6

-> 실행레벨별로 getty 프로그램 실행시키고 tty뭘쓸건지

예) 5:23:respawn:/sbin/getty 38400 tty5 // tty5는 2번 3번 레벨만 가능

--------------------------------------------------------------------

파일은

/etc/inittab: init이 해야할 일을 기록한 파일

/etc/init.d/rc: 각 실행 레벨 실행 스크립트

/etc/init.d/rcS: init에서 처음으로 실행하는 스크립트

디렉토리는

/etc/init.d: 부팅시 쓰이는 모든 스크립트들의 집합소 이 경로에는 원본 스크립트가 있고 스크립트를 쓸려면 각 레벨에 링크를 걸어준다.

/etc/rcS.d: rcS 스크립트에 의해 실행되어질 명령 목록이 담긴 디렉토리

/etc/rc0.d: 0번 실행레벨에서 실행되어질 명령 목록이 담긴 디렉토리

/etc/rc1.d: 1번 실행레벨에서 실행되어질 명령 목록이 담긴 디렉토리

.

.

/etc/rc6.d: 6번 실행 레벨에서 실행되어질 명령 목록이 담긴 디렉토리

디렉토리안에 S로 시작하는 것은 start로 스크립트를 시작하고 K로 시작하는 것은 stop으로 스크립트를 중지한다. 그 뒤 숫자는 스크립트 실행 순서를 의미한다. 그러니 S89cron이 있다면 89번째cron 시작 스크립트라는 뜻이다.

실제로 K로시작하는 파일은 rc0과 rc1,rc6에만 존재하고 나머지 실행 레벨에서는 S파일 만이 존재한다. 그리고 이 디렉토리들에 있는 스크립트를 실행 시켜주는 파일은 /etc/init.d/rc이다.

부팅시 스크립트 실행하는 방법

1. init.d 안에있는 파일을 rcn.d로 링크 걸어준다.

지울때는 링크를 지워준다.

2. update-rc.d <스크립트이름> defaults 써준다.

지울때는 update-rc.d -f <스크립트이름> remove

'OPS > LInux' 카테고리의 다른 글

dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
send mail  (0) 2015.04.26
raid  (0) 2015.04.26
quota  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:05

sendmail

-용어

MTA : 사용자로부터 MUA를 통해 전달받은 메시지를 다른 메일서버로 전달 해주는 프로그램(sendmail,exim,qmail)

MUA : 사용자가 메일을 보내기 위하여 사용하는 프로그램(Outlook)

SMTP : 다른 서버로 메일을 보내거나 받을 때 이용하는 프로토콜

POP3 : SMTP에 의해 메일서버에 도착한 메일을 클라이언트가 받을 때 사용하는 프로토콜

MDA : MTA가 수신한 메시지를 사용자의 우편함에 쓰기 위한 프로그램

MRA : 리모트 서버에 있는 우편함으로부터 사용자의 MUA로 메시지를 가져오는 프로그램

a@naver.comb@naver.com에게 보낼때는 로컬임

-----------------------------------

같은 도메인은 MUA-MTA-MDA 순?

다른 도메인은 MUA-MTA-MDA-MTA-MDA-MUA이 순

--------------------------------------------------

sendmail에 사용되는 명령 일부

C:클래스 설정

F:클래스를 적은파일을 설정

D

O:옵션지정

S:룰셋(규칙) 정의

vim /etc/main/sendmail.cf

--------------------------------------------------------------------

Cwlocalhost// Cw뒤에 사용할 도메인을 적음(여러개도 가능)

Fw/etc/mail/local-host-names// 파일을 만들어 도메인을 적음

O ForwardPath=$z/.forward.$w:$z/.forward

-> 사용자(A) 디렉토리에 .forward파일을 만들고 그 파일에 메일주소(B)를 적어놓으면 사용자(A)에게 오는 메일은 모두 파일에 적어놓은 메일주소(B)로 전달됨

Kaccess hash -T<TMPF> /etc/mail/access

-> 특정한 것만 메일릴레이에서 제외시키거나 허용 할 수 있는 파일을 명시

O AliasFile=/etc/mail/aliases// 메일 alias를 지정해놓은 파일 설정

O SevenBitInput=False// 7비트 설정여부, 8비트를 쓸 경우 False로 설정

O EightBitMode=pass8// 7bit를 False로 설정 후 pass8로 설정시 8비트로 작동

O LogLevel=9// 로그레벨 설정, 0-15 level까지 있음

O MaxMessageSize=0// 메일 용량 제한(단위Byte), 주석 시 용량 제한 없음

O QueueDirectory=/var/spool/mqueue// 큐(임시저장)의 경로

O SmtpGreetingMessage=$j Sendmail...// SMTP 접속 시 뜰 문구

O DaemonPortOptions=Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1

-> Relay기능을 수행하는 서버가 로컬만 가능한지 모두 가능한지를 설정하는 부분

Addr=127.0.0.1이 있으면 외부에서 접근이 안 되므로 삭제해줌, 주석시 /etc/access를 참고

O ConnectionRateThrottle=15// 엑세스 가능한 횟수

O ConnectionRateWindowSize=10m// clientIP가 10m동안 위 횟수만큼만 접속 가능

(ConnectionRate* 옵션은 access파일에 쓰이는 옵션)

--------------------------------------------------------------------

# vim /etc/mail/local-host-names

-> local-host-names 파일은 sendmail.cf 파일에 Cw지시문처럼 메일서버에 이용할 도메인을 지정해주는 파일임.

--------------------------------------------------------------------

localhost

localhost

--------------------------------------------------------------------

# vim /etc/mail/aliases

--------------------------------------------------------------------

mailer-daemon: postmaster

news: root// news에게 메일을 보내면 메일은 root에게 감

webmaster: root

noc: root

ja: root, power// ja에게 메일을 보내면 root와 power에게 감

--------------------------------------------------------------------

# newaliases// 새로고침같은 역할

# vim /etc/mail/access

--------------------------------------------------------------------

...

Connect:localhsotRELAY// 릴레이 옵션 설정

GreetPause:localhost0

ClientConn:localhost0// 동시에 세션이 맺어질 수 있는 수 설정

ClientRate:localhost0// 분당 접속 가능한 횟수 설정(시간은 sendmail.cf에서 O ConnectionRateWindowSize=10m 지시로 설정)

...

--------------------------------------------------------------------

# makemap hash /etc/mail/access < /etc/mail/access

-> 일반파일로는 sendmail에서 해석이 불가능 하므로 access파일을 DB형태로 바꿔줌

Connect:localhsot에 쓰이는 옵션 목록

OK : 다른 룰이 거부하는 경우에도 메일의 모든것을 허용함.

RELAY : 지정된 호스트의 메일 중계를 허용함, 지정된 메일의 수신/발신을 허용

REJECT : 지정된 호스트의 메일 수신/발신을 거부함, 발신자에게 거부 통보를 함

DISCARD : 메일을 수신 후 폐기해버림, 발신자에게 폐기통보를 하지 않음

501 <error> : 지정된 메일 주소나 도메인에 대해 발신자의 주소가 전체 또는 부분적 으 로 일치할 경우 메일 거부 <error>에는 포함할 메시지 적음

502 <error> : 발신메일주소에 host가 없을 경우 메일을 받지 않음

550 <error> : 특정 도메인에 관련된 메일을 거부 <error>부분에는 포함할 메시지 적음

571 <error> : 특정 도메인 또는 메일 주소에 대해 경고 메시지를 보내고 메일을 거부 <error>에는 포함할 메시지 적음

-실습

# apt-get install sendmail

# apt-get install dovecot-common

# apt-get install dovecot-pop3d

# vim /etc/mail/sendmail.mc

--------------------------------------------------------------------

...

DAEMON_OPTIONS('............ Addr=127.0.0.1')// Addr=127.0.0.1을 지워줌

DAEMON_OPTIONS('............ Addr=127.0.0.1')// 한행 더 지워줌

--------------------------------------------------------------------

# m4 /etc/mail/sendmail.mc

# vim /etc/sendmail/access

--------------------------------------------------------------------

...

Connect:192.168.0RELAY// 192.168.0으로 시작 하는 모든 IP를 허용

--------------------------------------------------------------------

# makemap hash /etc/mail/access < /etc/mail/access

# vim /etc/mail/local-host-names

--------------------------------------------------------------------

skill.com// 사용하고자 하는 메일의 도메인을 적어줌

--------------------------------------------------------------------

# vim /etc/dovecot/dovecot.conf

--------------------------------------------------------------------

protocols = pop3

listen = *

disable_plaintext_auth = no

mail_location = mbox:~/mail:INBOX=/var/mail/%u

--------------------------------------------------------------------

# /etc/init.d/sendmail restart

# /etc/init.d/dovecot restart

'OPS > LInux' 카테고리의 다른 글

fdisk  (0) 2015.04.26
init  (0) 2015.04.26
raid  (0) 2015.04.26
quota  (0) 2015.04.26
LVM  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:03

RAID


레이드는 하드웨어 레이드와 소프트웨어 레이드 2가지로 나뉘는데 하드웨어 레이드는 OS이전에 처리되고 소프트웨어 레이드는 OS단계에서 처리 된다. 소프트웨어 레이드가 하드웨어 레이드보다 안정성과 성능이 떨어지지만 구축비용이 적게 든다.

레이드는 복수개의 하드를 이용해서 데이터를 저장하는 방식이다. 데이터를 백업하거나 용량증가, 속도증가를 위해 많이 쓰이며 여러 종류의 레이드방식이 있다.

레이드는 크게 3개를 쓰는데 RAID-0, RAID-1, RAID-5이다.

레이드0(스트라이핑)은 2개 이상의 하드로 구성되는데 자료를 분산해서 저장하기 때문에 속도가 빠르다. 예를 들면 데이터1,2,3,4가 있으면 데이터 1,3은 하드0번에 데이터 2,4는 하드1번에 저장시키고, 자료를 가져 올 때 동시에 데이터를 두 하드에서 가저오기 때문에 좀 더 빠르게 데이터 통신 속도를 이용 할 수 있다. 데이터 속도는 빠르지만 둘 중 아무 하드가 망가지면 데이터 복구 불능이다.

용량은 1G+1G=2G 형식이다.

레이드1(미러링)은 2개 이상의 하드로 구성되는데 하드0번은 주 장치로 쓰고 하드1번은 하드0번의 백업 장치로 쓰인다. 하드0번이 저장된 데이터를 하드1번이 모두 백업 받는다. 이로 인해 하드하나가 망가저도 백업 데이터가 있기 때문에 데이터 손실을 예방 할 수 있다.

용량은 1G+1G=1G 형식이다.

레이드5(스트라이핑 패리티)는 3개 이상의 하드로 구성되는데 레이드0의 속도를 살리며 페리티비트(데이터 에러 수정)를 추가해 레이드0의 데이터 손실의 약점을 보안한 것이다.

하드0 하드1 하드2가 있으면 하드0에는 하드1과 하드2의 패리티 정보를 넣고 하드1에는 하드0과 하드1의 패리티정보를 넣고 하드3에는 하드0과 하드2의 패리티 정보를 넣어 데이터를 복구하는 방식이다.

용량은 1G+1G+1G=2G형식이다.

레이드 구성 명령어 형식은

mdadm --create <만들 레이드 장치명> --level=<레이드레벨> --raid-devices=<레이드할 때 쓸 장치 개수> <레이드시 쓸 장치명>

or

mdadm -C <만들 레이드 장치명 -l <레이드레벨> -n <레이드 할 때 쓸 장치 개수> <레이드시 쓸 장치명>

--------------------------------------------------------------------

레이드 0구성

먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sdb1, sdc1을 이용하고(다른것을해도 무방) 용량은 512M두개를 이용해 1G용량인 레이드0을 구성한다.

# fdisk /dev/sdb

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1):1

Last cylinder of +size or +sizeM or +sizeK (1-30401, default 30401): +512M

Command (m for help): t

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +512M

Command (m for help): t

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

Continue creating array? y// 위 정보로 레이드를 하려면 y

# mdadm --detail --scan// 레이드 잘구성되었는지 확인

ARRAY /dev/md0 level=raid0 num-devices=2...// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md0// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid0// 마운트해줄 폴더 생성

# mount /dev/md0 /raid0// 사용을 위해 마운트

# mount | grep md0// 확인

/dev/md0 on /raid0 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md0// 용량 확인

/dev/md0 1.1G 19M 950M 2% /raid0// 생각대로 되었는지 확인

--------------------------------------------------------------------

레이드 1구성

먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sdb2, sdc2를 이용하고(다른것 을 해도 무방) 용량은 512M두개를 이용해 512M용량인 레이드1을 구성한다.

# fdisk /dev/sdb

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 2

First cylinder (64-30401, default 64): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 2// 파티션형식은 2번을 변경해줄것 이므로 2를 누름

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 2

First cylinder (64-30401, default 64):// 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 2// sdc2의 파티션 형식을 변경할 것 이므로 2를 누름

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb2 /dev/sdc2

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

continue Creating array? y// 위 정보로 레이드를 하려면 y

# mdadm -D --scan | grep md2// 레이드 잘구성되었는지 확인

ARRAY /dev/md2 level=raid1 num-devices=2...// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md2// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid1// 마운트해줄 폴더 생성

# mount /dev/md2 /raid1// 사용을 위해 마운트

# mount | grep md2// 확인

/dev/md2 on /raid1 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md2// 용량 확인

/dev/md2 502M 11M 466M 3% /raid1// 생각대로 되었는지 확인

--------------------------------------------------------------------

레이드 5구성

먼저 파티션3개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sda3, sdb3, sdc3을 이용하고(다른것 을 해도 무방) 용량은 512M세개를 이용해 1G용량인 레이드5을 구성한다.

# fdisk /dev/sda

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 3

First cylinder (6323-30401, default 6323): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (6323-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdb

Command m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4)3

First cylinder (127-30401, defaul 127):// 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 3

First cylinder (127-30401, default 127): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm -C /dev/md1 -l 5 -n 3 /dev/sda3 /dev/sdb3 /dev/sdc3

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

Continue creating array? y // 위 정보로 레이드 구성하려면 y

# mdadm -D --scan | grep md1

ARRAY /dev/md1 level=raid5 num-devices=3// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md1// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid5// 마운트해줄 폴더 생성

# mount /dev/md1 /raid5// 사용을 위해 마운트

# mount | grep md1// 확인

/dev/md1 on /raid5 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md1// 용량 확인

/dev/md1 1.1G 19M 950M 2% /raid5// 생각대로 되었는지 확인

--------------------------------------------------------------------

같은 명령어

mdadm --detail = mdadm -D

mdadm --create = mdadm -C

mdadm --level = mdadm -l

mdadm --raid-devices = mdadm -n

레이드를 정지하고 싶을때

mdadm -S <장치명>

# mdadm -S /dev/md0// md0 정지

'OPS > LInux' 카테고리의 다른 글

init  (0) 2015.04.26
send mail  (0) 2015.04.26
quota  (0) 2015.04.26
LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:02

quota


사용자 쿼터

# vim /etc/fstab// 쿼터 할 파일 시스템을 fstab(자동마운트)에 등록

--------------------------------------------------------------------

/dev/sdb5/kimext3defaults,usrquota0 2

.

.

.

--------------------------------------------------------------------

사용자 쿼터는 usrquota 옵션을 추가

# mount -o remount /kim// usrquota 적용되게 리마운트 해줌

# mount | grep kim// mount 명령어로 재대로 되 엇나 확인

/dev/sdb5 on /kim type ext3 (rw,usrquota)// usrquota있으면 성공

# touch /kim/aquota.user// 쿼터 정보파일인 aquota.user을 생성

# chmod 600 /kim/aquota.user// 보안을 위해 퍼미션 600으로 변경

# quotacheck -am// 쿼터를 체크해서 aquota.user에 파일저장

# quotaon /kim// kim 디렉토리의 쿼터를 시작

# edquota -u kim// kim 유저의 쿼터설정 -u는 사용자를 뜻하는 옵션

--------------------------------------------------------------------Disk quotas for user kim (uid 500):// uid500의 kim이라는 사용자 쿼터

Filesystemblockssofthardinodessofthard

/dev/sdb5 0 0 0 0 0 0

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

쿼터 설정은 blocks와 inodes로 나누어 지고 soft와 hard는 각 blocks와 inodes의 옵션

blocks는 용량을 뜻하고 사용하고 있는 용량을 나타내줌 blocks의 soft는 사용자가 사용할 수 있는 용량을 설정 할 수 있고 유예기간동안은 blocks의 hard까지는 더 사용할 수 있음 blocks의 hard는 사용자가 사용할 수 있는 절대적인 용량을 설정

inodes는 파일의 개수를 뜻 뜻하고 사용 중인 파일의 개수를 나타내줌 inodes의 soft는 사용자가 사용할 수 있는 파일의 개수를 설정 할 수 있고 유예기간 동안은 hard의 값 내에서는 더 사용할 수 있음 inodes의 hard는 사용가능한 절대적인 파일 개수를 설정

쿼터의 용량단위는 KB(킬로바이트)

# edquota -t// 쿼터 유예기간 설정하기

--------------------------------------------------------------------

Gracd period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

FilesystemBlock grace periodInode grace period

/kim7days7days

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

Block grace period는 Block(용량)의 유예기간 설정 Inode grace period는 Inode(파일수)의 유예기간 설정 soft값을 더 쓴 상태에서 유예기간이 지나면 계정은 사용중지

옵션:sec(초), min(분), hour(시), day(일), month(달)

#repquota -a// 쿼터 상태 확인

---------------------------------------------

*** Report for user quotas on device /dev/hda5

Block grace time: 7days; Inode grace time: 7days

Block limitsFile limits

Userused soft hard grace used soft hard grace

--------------------------------------------------------------------

root -- 341120 0 40 0

kim -- 240 0 60 0

---------------------------------------------

첫 번째 줄 /dev/hda5는 쿼터 한 파티션을 뜻 하고 두 번째 줄 7days는 유예기간을 뜻 함

그리고 네 번째 줄은 used는 사용 중인 공간/파일 수 soft는 설정해준 soft값 hard는 설정해준 hard값 grace는 남은 유예기간(soft값이 초과되면 그 때 부터 표시)

# quota -u kim// 특정 사용자의 쿼터를 보고 싶을 때

※ repquota -a 나 quota kim을 했는데 kim의 쿼터상태가 안보일 때는 kim이 용량을 안 써서 그렇다 쿼터 된 디렉토리에 kim으로 파일을 쓰고 repquota등을 처 보면 나온다.

그룹 쿼터

# vim /etc/fstab// 쿼터 할 파일 시스템을 fstab(자동마운트)에 등록

--------------------------------------------------------------------

/dev/sdc5/grext3defaults,grpquota0 2

--------------------------------------------------------------------

그룹 쿼터는 grpquota 옵션을 추가

# mount -o remount /gr// grpquota 적용되게 리마운트 해줌

# mount | grep gr// mount 명령어로 재대로 되 엇나 확인

/dev/sdbc on /gr type ext3 (rw,grpquota)// grpquota있으면 성공

# touch /gr/aquota.group// 쿼터 정보파일인 aquota.group을 생성

# chmod 600 /kim/aquota.group// 보안을 위해 퍼미션 600으로 변경

# quotacheck -avug// 쿼터를 체크해서 aquota.group에 파일저장

# quotaon /gr// gr 디렉토리의 쿼터를 시작

# edquota -g king// king 그룹의 쿼터설정 -g는 그룹을 뜻하는 옵션

--------------------------------------------------------------------Disk quotas for group king (uid 1005):// uid1005의 king이라는 그룹 쿼터

Filesystemblockssofthardinodessofthard

/dev/sdb5 0 0 0 0 0 0

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

쿼터의 용량단위는 KB(킬로바이트)

쿼터를 확인하려면

quota -g king// 특정 그룹의 쿼터를 보고 싶을때

Disk quotas for group king (gid 1005):

Filesystemblocksquotalimitgracefiles quota limit grace

/dev/sdc5 8 10241024 2 0 0

※ 쿼터가 적용되는 것은 ls -l 명령을 내렷을 때 그룹 이름으로 따짐 그러니 메인그룹으로 쿼터를 따진다는 뜻 lee란 이용자가 lee가 메인그룹이고 king이 보조그룹이었는데 그냥 파일을 만들시 파일 소유권은 lee:lee로 되는데 이럴시 이 파일은 쿼터에 적용 안 됨

'OPS > LInux' 카테고리의 다른 글

send mail  (0) 2015.04.26
raid  (0) 2015.04.26
LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
NFS  (0) 2015.04.26
Posted by 배주혁
이전버튼 1 2 이전버튼