블로그 이미지
송시혁

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

2018. 8. 27. 15:24 리눅스 마스터1급


<스왑 영역 생성>

1. mkswap /swap-file

2. /etc/fstab 등록 

 => /swap-file swap swap defaults 0 0


 

<스왑 파티션 생성 >

1. fdisk /dev/sdb , mkfs -t 82(swap) /dev/sdb2 로 파일시스템 만듬 

    

2. mkswap -c /dev/sdb2 

스왑 파티션 생성 


3. swapon /dev/sdb2 

=> 스왑영역 활성화  


4. /etc/fstab 등록 (재부팅시 적용할 때만 등록, 그거 아니면 필요 없음)

=> /dev/sdb2 swap swap defaults 0 0 


●  Disk quota 

=> 사용자 및 그룹의 디스크 사용량고 생성할 수 있는 파일의 개수(i-node의 수)를 제한할 수 있다.


●  quotacheck  

=> 디스크를 사용하고 있는 파일 시스템 체크하여 quota 기록파일(aquota.user, aquota.group, quota.user, quota.group)


옵션 

-a  사용자와 그룹에 대한 쿼터를 체크한다.

-m 읽기 전용 모드 등의 이유로 마운트를 하지 못할 때 사용 

-f 쿼터 파일 초기 생성시 인식하지 못하는 경우에강제로 인식시킬 때 사용 

-u 사용자 쿼터 파일을 체크할 때 사용하는 옵션이다.(기본 옵션)

-g 그룹 쿼터 파일을 체크할 때 사용하는 옵션이다.

-c 기존의 생성된 쿠터 관련 파일을 읽지 않고 새롭게 초기화할 때 사용한다.  



●  quotacheck -mf 

=> quotaoff를 하지 않아도 강제로 체크 


●  quotacheck -mf  -u -g

=> 사용자 , 그룹 쿼터 파일을 체크할 때 사용하는 옵션 


●  quotacheck -cf

=> 쿼터 파일을 초기화한다. 


●  equota

 => 쿼터 설정하는 명령어 

 

 -t Soft limit를 초과한 후부터 적용되는 시간제한(grace period)을 설정하는 옵션 

 -p 특정 사용자의 쿼터를 다른 사용자에게 동일한 설정으로 적용시 사용할때 옵션 


●  quataon/quataoff

=> 쿼터 설정을 켜고 끄는것 


옵션 

-u 사용자 쿼터 활성화 

-g 그룹 쿼터를 활성화 

-v 메시지를 자세히 출력한다. 


●  requata 

=> 파일 시스템 단위로 쿼터 설정 정보를 출력해주는 명령이다. 

옵션 

-a 쿼터가 설정되어 있는 모든 정보를 출력. 이 옵션을 사용하면 디렉터리명 지정이 필요 없다. 

-u 사용자 쿼터 정보 

-g 그룹 쿼터 정보 



●  quata 

=> 사용자 단위로 쿼터 설정 정보를 출력해주는 명령어 


-u 사용자 쿼터 정보

-g 그룹 쿼터 정보 


#quata 

Disk quatas fro user posein (uid 500) 

        Filesystem blocks quata     limit          grace     files     quota    limit    grace 

/dev/sda1   1204    100000  1200000                  167      0               0



●  setquata 

=> 쿼터를 설정하는 명령으로 vi 편집기를 이용하는 대신에 직접 명령행에서 설정 가능하다. 


형식 


●  setquota [option] block soft_limit block hard_limit i-node soft_limit  i-node hard_limit 파일시스템 

●  setquota -t blcok_grade i-node_grade 


옵션 

-t 유예 기간(Grace Time)을 설정할 때 사용한다. (단위는 초)


●  setquota -u 10000 11000 0 0 /home 

=> 사용자의 사용량 제한 soft 10MB, hard 11MB로 제한하고, I-node에 대한 제한은 설정하지 않는다. 

     

●  setquota -t 10000 28800

=> 블록의 유예기간은 10000초 I-node는 8시간으로 설정 


사용자 쿼터 설정하기 


●  /etc/fstab

=> usrquata 를 추가로 기입 해야 함  

 

●  mount -o remount /home 

=> /home 영역을 다시 마운트  

 

●  quatacheck -mf /home

=> 쿼터 파일 생성 및 쿼터 체크 


●  edquota songsi 

=> 사용자에 대한 쿼터 설정 


●  qutaon /home 

=> 쿼터 시작 


●  repquota /home 

=> 쿼터 설정 확인 


그룹 쿼터 설정 


●  /etc/fstab

=> grpquata를 추가 


●  mount -o remount /home 

=> /home 영역을 다시 마운트 


●  quatacheck -gm /home

=> 쿼터 파일 생성 및 쿼터 체크 .옵션 -gm으로 하다.


●  edquota -g test 

=> 그룹에 대한 쿼터 설정 


나머지는 동일 

●  cd - 

=>  이동하기 바로 직전의 디렉토리로 이동 


●  mkdir 

옵션 

-p  경로로 지정된 서브 디렉터리가 존재하지 않은 경우에 함께 생성한ㄷ. (-- paretns)

-m 디렉터리 생성과 동시에 퍼미션(permisson)을 설정한다.(--mode) 

-v  생성된 디렉터리를 메시지로 출력한다.(--verbose)


●  mkdir -p www/pds/photo 

=> 현재 디렉터리에 있는 www하위의 pds하위의 photo를 생성, 만약에 www,pds에 

     존재하지 않으면 같이 생성한다. 

 


●  rmdir -p www/pds/photo

=> 현재 디렉터리에 있는 www하위의 pds하위의 photo를 삭제, 만약에 pds에 

     빈 디렉터리가 되면 같이 삭제 된다. www도 빈 디렉터리면 삭제가 된다. 

 


●  ls 디렉터리에 정보, 파일들을 조회


옵션 

-F 파일의 형태에 따라 관련 정보를 출력 

     파일이름 뒤에 '*', 디렉터리 이름 뒤에 './', symbolic Link뒤에 '@'를 붙여서 표시 

-d 대상이 디렉터리인 경우에 디렉터리 안의 내용 대신에 해당 디렉터리에 대한 정보를 출력 

-t  출력되는 정보가 알파벳순이 아니고 최근 수정된 파일(또는 디렉토리)부터 시간순으로 출력 

-u 파일 및 디렉터리의 최종 수정된 시간대신 사용된 시간(최종접근 시간)으로 출력 된다. 

-i   i-Node 번호를 파일 또는 디렉터리명 앞에 출력한다. 

-r  파일 및 디렉터리 정보를 알파벳 역순으로 출력한다. (--reverse)

-R 존재하는 하위 디렉터리별로 관련 내용을 재귀적으로 전부 출력한다.(--recursive)

-S 파일 크기가 큰 것부터 출력한다.  

--color 파일의  종류에 따라색을 보여준다. 레드헷 계열은 --color=tty설정 

   이것은 표준 출력에서만 색을 사용하도록 지정 

-h 보통 -i 옵셕놔 같이 사용되면, 보기 쉽게 단위(k,ga)를 표시 (--human -readable)

-Z SElnux  관련된 보안문맥(security context)을 출력한다. 



●  cp 복사 명령어 


옵션 

-s 복사하는 대신에 심볼릭 링크(Symbolic link)를 만든다. 

-p 소유권, 그룹, 허가권 등 모든 정보를 복사한다. 

-d 심볼릭 링크 파일을 복사할 경우 그 원본 파일을 찾아 복사하지만, 이 옵션을 쓰면 

    원본과 심볼릭 모두 복사 

-a 모든 것을 복사, -dpR과 동일. 심볼릭 링크까지 복사가능하고 모든 정보와 하위 디렉터리 모두 복사 

-l  복사대신에 하드링크 파일 만든다. 

-u 복사되는 대상이 최신의 파일이라면 복사되지 않는다. (--update)


●  rm 삭제 명령어 


옵션 

-i 삭제시 질의 모드 .

-- 파일이름이 -가 붙어있는 파일을 삭제 


●  타임스탬프 

=>  리눅스에서 파일에 대한 시간 관련 정보를 타임스탬프라 부른다. 


●  Access Time 

=>  파일의 내용을 읽었을 때 바뀌는 시간. 


●  Modify Time 

=> 파일의 내용을 수정했을 때 바뀌는 시간.  ls -l명령어로 나타내는 시간 


●  Change Time 

=> 파일의 내용을 수정했을 때 기록되는 시간으로 절대 변경 불가능한 시간 


●  file 

=> 파일의 종류를 출력해 주는 명령으로 관련 정보는 /usr/share/magic이라는 파일을 참조한다.


옵션 

-b 정보 출력할 때 파일 이름을 출력하지 않는다. (--brief) 


●  find

=> 파일이나 디렉터리 찾을 때 사용하는 명령어 


옵션 

-name 주어진 이름의 파일나 디렉터리를 찾는다. 

-perm  지정한 퍼미션 값을 갖는 파일을 찾는다.


예) -perm 755  퍼미션값인 755로 설정된 파일(디렉터리)

      -perm -6000 setUid, setGid  동시에 갖는 파일(디렉터리)

  -perm +6000 setUid, setGid  둘 중 하나 이상을 갖는 파일(디렉터리)

 

-type 지정한 파일의 유형을 찾는다.

   d: 디렉터리 

   f:  일반 파일 

   l:  링크 파일 

   b: 블록 디바이스 

   c: 캐릭터 디바이스 

   p: 파이프 파일 

   s: 소켓 파일 


-inum n   node 번호가 n인 파일을 찾는다.    

-iname    대소문자를 구별하지 않고 이름으로 찾을 때 사용한다. 

-empty    파일의 크기가 0이거나 비어있는 디렉터리 찾는다. 

-newer    지정한 파일보다 뒤에 수정된 파일을 찾는다(-mtime)

-cnewer   지정한 파일보다 뒤에 변화된 파일을 찾는다.(-ctime)

-ctime    change time 기준으로 찾는다. 

-mtime   modify time 기준으로 찾는다. 

-atime    n일(24시간) 이전에 접근한 파일을 찾는다.  +n은 n일 이전에 액세스한 파일을 찾는다는 

              의미미고,  -n은 n일 내에 액세스한 파일을 찾는다는 뜻이다. 

  

●  find / -type -f -perm +6000 -ls 

=> 루트 디렉터리로부터 파일이며, 퍼미션이 4000 또는 2000인것을 찾는다. 


●  find / -nouser -o -nogroup 

=> -o는 또는의 의미 소유자나 소유그룹이 없는 것을 검색 


●  find . -name '*.txt' -type -f -exec rm {} \;

=> .txt로 끝나는 파일을 검색하고 삭제를 실행한다. 


●  find / -ctime -2 + -ctime 1 ls 

=> 이틀 전에서 하루 이후에 수정된 파일을 찾고 ls로 출력한다. 


cat 


-b 텍스트 파일 출력할 때 행 번호를 붙여 준다. (공백만 있는 줄 제외)

-n 텍스트 파일 출력할 때 행 번호를 붙여 준다. (공백만 있는 줄 포함) 

-E 각 라인의 맨 끝에 $표시(개행 문자)를 붙여출력 

-T 탭 문자를 ^|로 표시하여 출력 

-v 인쇄가 불가능한 문자를 식별할 수 있도록 출력한다. 

-A -vET 옵션을 통합한 옵션 

-s 인접한 여러 공백 줄을 하나의 공백 줄로 출력한다. 


●  ps 

=> 동작중인 프로세스의 상태를 출력 해준다.


옵션 

a 터미널과 연관된 프로세스를 출력하는 옵션 

u 프로세스의 소유자를 기준으로 출력한다. 

x 데몬 프로세스처럼 터미널에 종속되지 않는 프로세스를 출력한다.

l     프로세스 정보를 길게 보여주는 옵션으로 우선순위와 관련되 PRI와 NI값을 출력 

f    프로세스간의 상속관계를 트리 구조로 보여준다. 

p   특정 PID를 지정할 때 상용(BSD 계열)

-e 모든 프로세스 출력 

-a 세션 리더(일반적으로 로그인 쉘)을 제외하고 터미널에 종속되지 않은 모든 프로세스를 출력한다. 

-f  유닉스 스타일로 출력해 주는 옵션으로 UID, PID, PPID 등이 함께 표시된다. 

-C 지정한 프로세스만 보여준다. 

-o 값 = 출력 포맷을 지정하는 옵션으로 값으로는 pid,tty, time,cmd 등을 지정할 수 있다. 

-p 특정 PID를 지정할 때 사용 (Sysem V 계열)

-u 특정 사용자의프로세스 정보를 확인시 사용. 현재 사용자 기준 


STAT


R(running)     실행, 실행 될수 있는 상태 

S(Sleeping)   인터럽트에 의한 sleep상태로 특정 이벤트가 끝나기를 기다리는 상태 

D(Disk wait)   디스크 I/O에 의해  대기 상태, 

X                  죽어있는 상태 

L                   메모리 안에서 페이지가 잠금된 상태(보통 real-time과 일반적 I/O에 의해 발생)

l                   멀티 쓰레드 상태 

+                  포어그라운드 프로세스 그룹 

<                  인위적으로 우선순위 높아진상태(사용자 설정에 의한것이 아님)


●  pstree 

=> 프로세스 상태를 트리(Tree)로 출력해 주는 명령이다. 가장 왼쪽이 부모 프로세스이고, 

     오른쪽이 자식 프로세스에 해당한다.  

옵션 

-a 각 프로세스의 명령행 인자까지 보여준다. 

-h 현재 프로세스와 그것의 조상 프로세스를 하이라이트로 강조해서 보여준다. 

-n 프로세스 이름 대신에 PID값으로 정렬해서 보연준다. 

-p PID 값을 같이 보여준다. 




● top 

=> 동작중인 프로세스의 상태를 실시간 화면에 출력해 주는 명령으로 프로세스의 상태뿐만 

     아니라 CPU, 메모리, 부하 상태 등도 확인할 수 있다. 


옵션 

-d 갱신 시간을 설정한다.(초 단위)

-p 특정 PID 값을 갖는 프로세스를 모니터링할 때 사용한다. 


top 항목 


PR 우선순위 값  

NI   우선순위 nice vlaue (-20 ~ 19) 작을 수록 우선순위 높으 ㅁ

VIRT 가상 메모리의 총 사용량 

RES  프로세스가 사용하는 실제 메모리양(Resident size(kb))

SHR  프로세스가 사용하는 공유 메모리의 양  

S      현재 프로세스의 상태를 나타낸다



● kill -HUP 1010

=> 1010 PID의 프로세스를 재시작 한다. 


※ NI는 사용자는 증가만 가능하고 root만 감소시키는게 가능. 

 

● renice 

=> 실행중인 프로세스의 우선순위를 변경할 때 사용하는 명령으로 프로세스ID PID, 사용자 이름, 프로세스의 

     그룹 ID를 이용한다. 

 

● nohup 

=> 사용자가 로그아웃하거나 터미널 창이 닫혀도 실행중인 프로세스를 백그라운드 프로세스로 대체 

     

● pgrep 

=> 프로세스를 이름 기반으로 검색하는 명령으로 PID  값을 출력한다. 


● pkill 

=> 프로세스명을 사용해서 특정 프로세스에 시그널을 보내는 명령이다.        




















'리눅스 마스터1급' 카테고리의 다른 글

log, 커널 컴파일, 프린터 등...  (0) 2018.08.29
yum, tar 명령어 옵션  (0) 2018.08.28
리눅스 웹 (약간 추가예정)  (0) 2018.08.26
samba, NIS  (0) 2018.08.25
리눅스 iptables,xinetd,  (0) 2018.08.24
posted by 송시혁
2018. 8. 26. 20:35 리눅스 마스터1급

<웹 >


웹 클라이언트가 HTTP Method URL, 프로토콜 버넞, MIME등을 전송하고 

HTTP서버는 클라이언트의 요구에 데이터, 실제자료, 상태 코드등으로 응답한다.


주요 HTTP 요청 메소드(Method) 


GET       서버에서 자료를 가져오는 요청 

POST    서버에 정보를 저장하도록 하는 요청 

HEAD    GET가 유사하나 HTTP 헤더 정보만 가져옴 

PUT      서버에 자료를 올리 때 사용 

DELETE 서버의 자료를 삭제할 때 사용 



● NGINX

클라이언트에 요청에 응답하기 위해 비동기 이벤트 기반 구조 


아파치 HTTP서버는 프로세스 및 스레드 기반으로 동작하는 구조


● HTTP 응답 


● 1xx Inforamtional


100 continue 

101 Switching protocol 


● 2xx successful 


200 OK

201 Created

202 Accepted 

203 Non-Authoritative Information

204 No content 

205 reset content 

206 Partial Content 




● 3xx Redirection

300 Multiple Choices 

301 Moved Permanently 

302 Moved Temporarily

303 See other

304 Not Modified 

305 Use proxy 



● 4xx(Client Error)


400 Bad Request

401 Uauthorized 

402 Payment Required 

403 Forbidden 

404 Not Found 

405 Method Not Allowed 

406 Not Acceptable 




● 5xx(Server Error)


500 Internal Server Error 

501 Not Implemented 

502 Bad Gateway

503 Service unavailable

504 Gateway timeout 

505 HTTP Version not supported 



● LAMP(Linux Apache Mysql PHP)

=> mysql 먼저 설치, apache , php순으로 설치한다. 


<MPM 주요 모듈 >


● prefork 

=> 프로세스를 제어하는 부모 프로세스는 클라이언트의 요청이 들어온 경우를 대비해 대기하고 있다가 자식 프로세스의 생성 

    여부 등을 관리하는 방식 


● worker 

=> 초기에 시작하는 프로세스의 개수를 지정하고, 페이지 요청이 들어오면 스레드로 처리하는 방식

    지정되 스레드 수를 초과할 경우에 새로운 자식 프로세스를 생성하여 처리하는 방식 

● 해쉬 관련 명령어 

=> sha1sum, sha256sum, md5sum 


● --prefix

=> 패키지가 설치 디렉터리를 지정 


● --enable-mods-shared=all는 

=> 관련 모듈을 전부 동적 모듈로 설치하도록 지정하는 것 


● CentOs6은 cmake를 설치해야한다.

=>yum cmake install


--initialize root 사용자의 임시 패스워드 부여 없이 초기화 설정을 진행하려면 --initialize-insecure로 실행


● /usr/local/mysql/bin/mysqld_safe --user=root & 

=> mysql 데몬 실행 

     오류가 발생시, myslq-lib 관련 패키지를 제거 여부 확인 

cd /usr/local/mysql/bin/mysqld 

mysqld --initialize --user=root 명령부터 다시 실행 


● --with-apxs2 

=> PHP가 아파치데몬에 DSO 모듈로 로링되돌곡 하기 위해서 관련 실행 MySQL이 설치되어 있는 디렉터리 가리킴.

 

● PHP가 인식할수 있도록 다음과 같이 설정 


http.conf mime_module 영역에 아래 2줄을 추가 


AddType application/x-httpd-php .php .htm .html .inc .php5 

AddType application/x-httpd-php-source .phps 


● /usr/local/apache/bin/apachectl restart 

=> 아파치 데몬 재시작 


● http.conf

=> 아파치 웹 서버의 기본적인 설정을 담당하는 파일로 항목을 살펴보면 다음과 같다.


● ServerRoot "usr/local/apache"

=> 웹 서버가 설치된 디렉터리를 나타낸다.


● Listen 80 

=> 아파치 웹 서버의 포트를 설정한다. 아파치 1.3버전의 Port 지시자를 대체한다.


user daemon 

group daemon 

=> 실행된 httpd 데몬의 사용자 및 그룹 권한을 나타낸다.


● ServerAdmin songsi@song.org 

=> 서버에 묹네가 발생했을 경우 보낼 관리자의 이메일 주소를 적는다.


● ServerName www.songsi.org:80

=> 서버의 도메인을 적는다. 


● DocumentRoot "/usr/local/apache/htdocs"

=> 웹 문서가 위치하는 디렉터리를 나타낸다. 



● httpd 

=> apache 웹 서버 관련 명령어 


옵션 

-t  환경설정 파일인 httpd.conf의 문법적 오류를 검사한다.

-f  새로 설정한 conf 파일이 있을 경우에 그 설정 파일로 아파치 데몬을 구동할 때 사용한다. 

-S 설정되어 있는 가상 호스트를 출력한다. 

-l   컴파일된 모듈에 대한 목록을 출력한다. 



● /usr/local/apache/bin/httpd & 

=> 웹 데몬 구동 


● /usr/local/apache/bin/httpd -t

=> Syntax OK 


● /usr/local/apache/bin/apachectl 

=>  apachectl 이라는 데몬 실행 제어 스크립트를 이용하여 실행 및 제어를 할 수 있다. 


주요 cmd 


help        간단한 도움말을 출력 

start        아파치 데몬을 시작한다.

stiop       아파치 데몬을 중지시킨다. 

restart      아파치 데몬을 재시작한다.

configtest  httpd.con 파일의 문법적 오류를 검사한다.

gracefu     웹 서버에 연결된 접속을 끊지 않고, httpd.conf의 설정만을 다시 읽어 들인다. 

status, flullstatus 웹 서버의 상태를 간단히 또는 전체적으로 출력한다. mod_status라는 모듈이 설치되어 

                        있어야 하고, http.conf의 <Location /server-status > 영역이 설정되어 있어야 한다. 


● /etc/rc.d/rc.local

=> 부팅 시 자동 실행괴기 설정하는 파일 

● httpd.conf 

/usr/local/apache/conf/httpd.conf 


● ServerName 

=> 서버의 도메인 이름을 적는 부분. 도메인 없으면 IP주소 적어되 된다. 


● DocumentRoot 

=> 웹 문서인 HTML 문서가 위치하는 경로를 나타낸다. 


● DirectoryIndex 

=> 여러 웹 문서 중에 처음으로 인식하는 인덱스 문서를 지정하는 부분 . 기본값은 index.html 

예) DirectoryIndex index.html index.htm index.php index.php5

<apache 사용자 인증 >

● htpasswd 

=> apache 사용자 인증 파일을 생성하고 관리해 주는 명령어이다. 


● htpasswd -c /etc/password songsi 

songsi라는 웹 사용자를 생성하고 계정 파일은 /etc/password로 생성한다.


-c 사용자계저 파일을 생성할 때 사용하는 옵션으로 계정 생성 시 반드시 한 번은 사용해야 한다. 


● php 파일 작성 시 <?php ~?> 형식으로 작업해야 하지만, 

   <?~?>으로 바꿀 수 있다. 


/usr/local/apache/conf/php.ini 

=> short_open_tag=ON으로 바꾸어 준다. 


아파치 웹 서버를 재시작한다. 

/usr/local/apache/bin/apachectl start 



<Direcetory />

Options FollowSymLinks 

AllowOveridde None 

Order deny,allow 

Deny from all

</Directory>


Options

=> CGI, SSI(Server Side Includes), 디렉터리의 심볼릭 링크 사용 여부 등을 

     설정


AllowOveridde

=> 사용자 인증에 관련된 요소로 웹 클라이언트가 특정 디렉터리에 접근할 때 

    해당 디렉터리에 있는 유저 인증 파일인 .htaccess 파일을 읽게 되는데  none

으로 설정시 이를 무시


Order

=> 해당 디렉터리에 접근하는 호스트 인증을 담당한다. 


Options 항목 

 

NONE                 어떤 옵션도 사용 할수 없음 모든 접근을 거부 

ALL                    MutltiView 옵션을 제외한 모든 옵션을 부여(기본값)

Includes 서버측의 추가적인 정보를 제공 SSI(Server Side Includes)

indexes URL이 지정된 디렉터리에 index.html과 같은 지정된 파일이 

                        없을 경우 해당 디렉터리의 파일 목록을 보여주는 옵션    

FollowSymLinks   디렉터리 내에서 심볼릭 링크의 사용을 허가 

ExecCGI            CGI 스크립트를 실행할 수 있도록 허가 

includesNOEXEC  ssl은 허용하지만 #exec 명령, CGI 스크립트 #include 불허 

MutltiView           ALL 옵션이 설정되었을 때만 지정된 목록의 multiviesw를 허용하는거 

                        유사한 파일 이름을 찾아주는 기능을 실행. 예를 들어 index라고만 입력하더라도 

index.*를 찾아서 보여줌 


AllowOveridde 항목



NONE          AllowOveridde 사용하지 않음 

ALL             http.conf 파일의 AccessFileName 지시자로 설정한 파일을 사용하고, 

                  관련 지시자를 사용할 수 있음 

AuthConfig    AccessFileName 지시자에 명시한 파일에 대해서 사용자 인증 지시자 사용을 허락 

                  

Fileinfo         AccessFileName 지시자로 설정한 파일에 대해서 문서 유형을 제어하는 지시자 사용을 허락 

indexes        AccessFileName 지시자로 설정한 파일에 대해서 디렉터리 indexing을 제어하는 지시자 사용을 허락.

Limit    AccessFileName 지시자로 설정한 파일에 대해서 호스트 접근을 제어하는 지시자 사용을 허락 

Options       AccessFileName 지시자로 명시한 파일에 대해서 Options 그리고 XBitHack등과 같은 지시자 사용을 허락 




Order 항목 

해당디렉터리에 대해 IP 주소 및 도메인에 대한 필터링 순서를 설정한다. 



'리눅스 마스터1급' 카테고리의 다른 글

yum, tar 명령어 옵션  (0) 2018.08.28
swqp,ps, find, quata  (0) 2018.08.27
samba, NIS  (0) 2018.08.25
리눅스 iptables,xinetd,  (0) 2018.08.24
리눅스 명령어(centOs)권한, 파일 시스템  (0) 2018.08.21
posted by 송시혁
2018. 8. 25. 22:09 리눅스 마스터1급


<samba 서버 관리>


●  SMB(Server Message Block)

MS와 인넽은 SMB라는 프로토콜을 만들어 디스트나 프린터를 공유할 수 있도록 개발

리눅스와 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 공유 및 하드웨어를 

 공유할 수 있도록 해준다.

 

●   CIFS(Common Internet File System)

 => 유닉스와 윈도환경을 동시에 지원하는 시스템 



RPM 패키지 


samba

삼바 데몬, 서버 라이브러리, 실행 데몬 스크립트 등이 포함된 패키지 



samba-common 

smb.conf,smbpasswd, testparam등이 포함된 패키지.

서버와 클라이언트 모두 필요하다


samba-client

삼바 클라이언트 명령어가 포함된 패키지. smbclient, smbtree등 


samba-swat 

swat(Samba Web Administratjon)은 웹 기반으로 살바를 제어할 수 있는 

패키지로 smb.conf의 주요 설정을 원격에서 제어할 수 있다.

901번 포트를 사용하므로 http://localhost:901 형태로 접근해서 제어한다.


<삼바데몬 >


●   smbd

파일과 프린터 공유, 사용자의 권한 부여 및 확인 등 사용자 인증을 담당한다.


●   nmbd 

담당하는 데몬으로 클라이언트를 위해 NetBOS nameserver를 지원,

browsing 지원, 컴퓨터 이름과 ip주소 연결등이 역할을 수행한다.     



smb.conf 


[global]  삼바 서버의 전체적인 환경 설정를 담당하는 섹션 

[home]   각 사용자들이 자신의 홈 디렉터리로 접근할 때의 권한을 설정하는 섹션 

[printers] 프린터 관련 권한 세션 


●   workgroup = MYGROUP 

=> 윈도우 작업 그룹에 해당하는 항목으로 공유 그룹명 


●   server string = Samba server 

=> 서버에 대한 설명을 설정 


●   netbios name = MYSERVER

=> 윈도우에서 이름으로 접속할 때  관련 이름을 지정한다.


●   interfaces = lo eht0 192.168.1.0/24 192.168.2.0/24 

=> 네트워크 인터페이스별로 접근 제얼할 때 설정한다. 


●   host allow =127. 192.168.1. 192.168.14.

=> 삼바 서버에 접속을 허용할 호스트를 지정, EXCEPT라는 키워드와 와일드 문자 

     사용 가능. 네트워크/서브네 마스트 형태도 가능 

 

●   hosts allow 192.168.1.0 EXCEPT 192.168.1.220 192.168.1.144 

=> 192.168.1.220, 192.168.1.144  제외한 192.168.1.0 대역대의 ip주소를 허용 


●   log file = /var/log/samba/log.%m 

=> 삼바 서버에 좁속하는 호스트의 로그를 기록하는 파일을 지정한다.


●   max log size = 50 

=> 로그 파일의 최대 크기를 설정하는 부분으로 단위는 KB 0으로 설정시 크기의 제한 없음 


●   securtiy = user 

=> 삼버 서버 접속시 인증 모드를 설정하는 항목으로 주요 모드는 다음과 같다. 


uesr 삼바 서버에 접속할 때 사용자명과 패스워드를 입력해야 한다. 

share                 삼바 서버에 사용자 인증 없이 접근할 때 사용 

server                윈도우 NT 서버와 같이 다른 서버에 사용자명과 암호를 전달하여 인증할 때 사용 

domain 또는 ads  윈도우의 도메인 컨트롤러 (Domain Controller)에 전달하여 유효한 사용자 여부를 

                        확인할 때 사용한다. ads는 Activity Directory Server를 사용하는 경우에 지정한다. 


● passdb backend = tdbsam

securtiy = user 일때, 사용자의 패스워드를 설정하는 방식 


< share definitions의 주요 옵션 >


comment                    간단한 설명을 설정 

path                           공유 디렉터리의 경로를 설정   

read only                    공유 디렉터리를 읽기 전용으로 설정 

writalbe, write OK          공유 디렉터리를  쓰기를 가능하게 설정 

valid users                   공유 디렉터리를 이용할 수 있는 사용자를 지정 

wirte list                      공유 디렉터리에 접근 및 쓰기 권한을 행사할 수 있는 사용자를 지정한다. 

                                 그룹인 경우에는 @를 붙인다. 

public, guset ok           다른 사용자들이 이용할 수 있도록 설정한다.

browseable, browsable    공유 디렉터리의 리스트를 보여줄 때 설정한다. 

printable                         공유 디렉터리에 스풀 파일을 지정할 때 설정한다.   

create mask, create mode  파일을 설정할 때 허가권을 지정할 때 설정한다. 



● /etc/samba/smbuser 

=> 유닉스 계열 사용자 이름과 삼바 사용자간의 이륾을 매칭시키는 설정파일이다. 

    root는 administator 및 admin으로 매칭되고, nobody는 guest, pcguest, smbguest로 매칭된다.

●  smbclient 

=> 리눅스, 유닉스 클라이언트 명령어로 윈도 서버로 접근 할때 사용 

     \, / 모두 사용가능


주의점 

윈도우에서 NetBIOS 접근시 \\192.168.1.1 로 접속간으. 

리눅스에서는 smbclient 명령어 이용시 윈도우에 2배를 써야 한다. 

이것에 대한 설명은 다음과 같다.

\\\\192.168.12.22\\source

=> \는 호스명 앞에 4개(윈도우가 2개) 디렉터리 \\ 2개(윈도우1개) 


//192.168.12.22/source 

=> /를 사용하는 경우에 호스트명앞에는 //, 디렉터리앞에는 /개를 사용한다. 


※ 윈도우가 대소문자 구분하지 않으므로 리눅스도 대소문자 구분안함 


주요 옵션 

-L  접속하려는 삼바 서버의 공유 디렉터리 정보를 출력한다. 

-U 삼바 서버에 접속할 때 사용자명을 입력한다. 

-M 지정한 호스트명에 메시지를 전송할 때 사용한다. 명령을 입력하고 전송하려면 

     ctrl+d를 누른다. 


●  smbclient -L joon -U administator

=> joon이라는 호스트에 administator 계정으로 접근하여 공유된 목록된 확인한다. 


●  smbclient -L joon -U administator%1234 

=> joon이라는 호스트에 administarator 계정으로 접근하는데 패스워드는 1234이다. 


●  smbclient \\\\joon\\source -U administarator

=> joon이라는 호스트에 공유 디렉터리인 source에 administarator 계정으로 접근한다.


●  smbstatus 

삼바 서버에 사용하는 명령어로 클랑이언트와 연결된 상태를 출력한다.


●  testparam

=> 삼바의 환경 설정 파일인 smb.conf의 설정 여부를 확인한다.


●  testparam /etc/samba/smb.conf www 192.168.5.13 

=> IP주소가 192.168.5.13이고 호스트명이 www인 삼바 서버의 환경 설정 파일을 확인한다.


●  nmlookup [option]

=> WINS 서버에 질의할 때 사용하는 명령으로 DNS서버에 질의하는 nslookup 명령과 유사하다.


옵션 

-U 조회할 서버 이름을 지정한다.  

-R 조회할 이름을 지정한다. 


●  nmlookup -U samba.org -R IRIX#1B

=> samba.org라늕 서버에 IRIX 그룹의 1B라는 이름을 조회 


●  nmlblookup * 

=> 브로드캐스트 영역에 있는 모든 이름을 조회한다.


●  mount.cifs 

=> CIFS 기반의 마운트 명령으로 보통 윈도우에 공유된 디렉터리를 마운트할 때 사용한다. 

    mount -t cifs 명령과 동일하다.


●  mount.cifs //192.168.5.13/photo /mnt 

=> 192.168.5.13에 공유된 디렉터리인 photo를  /mnt로 마운트한다.




●  smbpasswd 

=> 삼바 사용자를 생성 및 삭제, 패스워드 변경, 활성 및 비활성화 등 관련 정보를 변경하는 명령어 


-a 삼바 사용자를 추가할 때 사용. 삼바 사용자는 리눅스 시스템에 존재하는 계정 

-x 삼바 사용자를 제거할 때 사용한다. 

-d 삼바 사용자를 일시적으로 비활성화할 때 사용한다. 

-e 삼바 사용자를 활성화할 때 사용한다. 

-n 패스워드 없이 로그인이 가능하도록 할 때 사용한다. smb.conf에 'null passwords=yes'

     추가로 설정해야 한다. 


pdbedit 

삼바 사용자의 데이터베이스 파일인 SAM database 를 관리해주는 명령어 


옵션 

-a 삼바 사용자를 추가할 때 사용한다. 삼바 사용자는 리눅스 시스템에 존재하는 계정 

-L 등록된 삼바 사용자의 간단한 목록을 출력한다. 

-v 등록된 삼바 사용자의 정보를 자세히 출력 


공유 정의 (share Definition)의 설정 예 

[www]

comment  = share directory 

path = /songsi 

public = yes 

write list = @songsi11


=> 

윈도우에서 접급할 때 폴더 이름은 www로 설정 

설명은 share directory 

모든 사용자가 이용 가능 

songsi11그룹에 속한 사용자만 파일 생성 및 삭제 가능 


p500 


<NIS(Network Information System)>

NIS는 하나의 서버에 등록된 사용자 계정, 암호, 그룹 정보 등을 공유하여 

다른 시스템에 제공하는 서비스 


yellow page라는 불렸으나 영국에서 등록된 상표여서 NIS로 변경 

그래서 yp로 명령어가 시작하는 계기가 됨. 


NIS의 보안을 강화, 확장성, 유연성을 높인 NIS+를 발표 

RPC(Remote Procedure Call)에서 데이터 암호화 및 인증, 운영 중에 관한 설정,

복제(replication) 등을 지원한다.


<LDAP(Lightweight Directory Access Protocol)의 개요> 

경량 디렉터리 접근 규약은 X.500 Directory Access Protocol, DAP 기반으로 

만들어진 디렉터리 데이터베이스에 접속하기 위한 규약 


IP 프로토콜 기반으로 사용자, 시스템, 네트워크, 서비스 정보 등의 디렉터리 정보를 공유할 수 있다.

디렉터리는 논리, 계급 등을 기준으로 조직화되어 있다. 특성이 비슷한 특성을 가진 객체들의 모임 


RDBMS에 비해서 검색 속도가 빨라서, 읽기, 위주의 서비스 검색 


속성(attribute)을 가진 객체(object)로 구성. 그 객체를 엔트리(entry)라고 부르면 그 엔트리(entry)는 DIT(Directory Information Tree)

라는 구조의 조직화 되고 고유 식별자인 DN(distribute Name), DN은 상대 식별자인 RDN(Relative Distinguished Name)으로 구성 

DN(distribute Name)은 파일 시스템의 절대 경로처럼 해당 엔트리의 이름에 상위 엔트리 이름을 붙여서 

식별하고, RDN(Relative Distinguished Name)으로 구성 


/home/posein/joon.txt가 DN이고 , 여기에서 joon.txt는 RDN이 된다. 

 


● LDAP 속성 관련 키워드 


c                       CountryName              국가이름 

st                      StateProvinceName      주(우리나라의 도)이름  

l                        LocalityName              보통 도시를 나타내지만, 특정 지역 단위에서도 사용 가능 

street                 StreetAddress              도로명 주소(지번)

o                      OganiczationName       조직(회사) 이름 

ou                     OganiczationUnitName  조직의 부서 이름 

cn                     CommonName             일반적으로 이름과 성의 조합   

sn                     SurName                    성을 나타냄 

givetName          givetName                   이름을 나타냄 

dc                     domaincomponet         도메인 네임의 요소를 나타냄 

mail                   mail                           E-mail 주소  

telephonenumber telephonenumber          전화번호 


● NIS는 RPC 데몬을 구동시켜야 한다.

/etc/rc.d/init.d/rpcbind start 

service rpcbind start 


● /etc/hosts 수정하기 

=> DNS 없이 빠르게 사용가능, 도메인이 없는 경우에 가상적으로 구성해서 동작 여부를 확인 


192.168.1.1 nist.test.co.kr 

192.168.1.2 nis.test1.co.kr


yum install ypserv 


● 주요 데몬 스크립트 

ypserv       NIS 서버를 운영하는 주 데몬 스크립트

yppasswdd NIS 클라이언트에서 패스워드 시에 적용되도록 해주는 데몬 스크립트 

ypxfrd        NIS 서버와 NIS 클라이언트 간의 맵핑 속도로 높여주는 데몬 스크립트 



● nisdomainname test.co.kr 

=> 일시적으로 test.co.kr 도메인명 설정 


● /etc/sysconfig/network 

NISDOMAIN=test.co.kr 

=> test.co.kr도메인을 영구적으로 설정 


● 계정 생성 


NIS 클라이언트에서 사용할 계정 하나를 생성 

useradd test 

passwd test 


● 데몬 스크립트를 구동 

servce ypserv start 

servce yppasswdd start 

servce ypxfrd start 


● 서버 작동 확인 

ps aux | grep yp 


● 관련 정보 갱신 

NIS 서버에서 사용자 추가 증 설정한 내용이 변경되면 해당 정보를 갱신시켜야 한다. 다음의 2가지 방법중 하나를 실행한다.


cd /var/yp ; make 

make -C /var/yp 


/var/yp 아래에 도메인 명으로 폴더가 생성되면서 관련 맵 파일들이 생성된다.


<NIS 클라이언트 구성>

yum install ypbind 

yum install yp-tools


도메인 지정은 위 서버와 동일 


● /etc/yp.conf 파일에 NIS 서버 및 도메인염을 지정한다. 


예) vi /etc/yp.conf 


server nis.test.co.kr 

ypserver nis.test.co.kr 

domain nis.test.co.kr 


● 관련 데몬 시작 

service ypbind start 


관련 명령어 

● ypwhich 

=> NIS 클라이언트에서 사용하는 명령어로 NIS 서버명과 관련 맵 파일을 보여준다.


옵션 

-m NIS 서버의 맵 파일을 출력한다. 


● ypcat 

=> NIS 서버의 데이터베이스라고 할 수 있는 맵 파일의 내용을 확인하는 명령 


● yptest 

=> 도메인명, NIS 도메인명, 맵 파일 목록, 사용자 계정 정보 등을 출력한다. 


● yppasswd 

=> NIS클라이언트에서 NIS서버에 등록된 사용자의 패스워드를 변경하는 명령어 


● ypchsh 

=> NIS서버에 등록된 사용자의 셸을 변경하는 명령어 


● ypchfn 

=> NIS 클라이언트에서 NIS 서버에 등록된 사용자의 정보를 변경하는 명령이다. 


● NIS를 이용한 인증 가능한 서비스 

=> telnet, samba, ssh 



posted by 송시혁