번 내용은 집에서 회사 내의 VMware OS로 접근하는 방식입니다.

대부분 신입분들께서 IT로 종사하다보면 모르는 것들도 있고 리눅스를 사용해야 할 때가 많습니다.


그렇지만, 집 PC는 별로 좋지 않거나 한 곳에 놔두고 테스트 용으로 쓸 때 매우 유용합니다.

응용하면 더 다양하게 응용도 가능하죠.



 · 실험 정보 


 · Vmware 버전 : 12

 · 집 PC 플랫폼 : Windows 7

 · 회사 PC 플랫폼 : Windows 7

 · 가상 OS 플랫폼 : Centos 6.5 64bit

 · 방화벽 사용 유무 : O














위에는 현재 상황입니다.

방화벽 같은 경우 셋팅 방법은 설명하지 않겠습니다.


# 외부 접근 설정


먼저 모든 방화벽이 내려있는 상황에서 설정 방법을 알려드리도록 하겠습니다.




이 목적은 어디까지나 VMware의 OS를 접근할 때 쓰는 방법이므로 VMware 설정을 먼저 해야 하는 부분입니다.

Virtual Network Editor 창을 열어 VMnet0이 현재 회사 PC에 장착된 랜카드를 포인터 하도록 설정합니다.




다음은 VMware 내에 설치된 OS(이하 Centos) 부분을 설정해야 합니다.

오른쪽을 클릭하시면 Settings 라고 보입니다. 클릭해주세요.





현재 Network AdapterNAT으로 설정이 되어 있는데 Custom으로 변경 후 VMent0을 해주세요.

이렇게 설정을 하시면 Centos는 회사 PC의 랜카드를 같이 공유하여 사용하게 됩니다.





회사 공유기에서 DHCP로 아이피 할당 할 경우 그대로 받으셔도 되고, 남는 IP가 있다면 수동으로 설정해주세요.

물론 DNS도 같이 해줘야 합니다.





보시는 거와 같이 Centos가 외부로 나갈 수 있는 상황이 되었습니다.

반대로 외부에서 Centos로 접근을 하도록 하겠습니다.





집 PC로 SSH를 통하여 접근이 가능한 것을 확인 할 수 있습니다.



# 외부에서 접근이 안될 경우


이 부분은 여러 가지 의심해봐야 할 항목들이 있습니다.


1. 회사 방화벽이 설정이 되어있는 경우

2. 회사 PC 방화벽이 설정이 되어있는 경우

3. Centos 방화벽이 설정이 되어있는 경


회사 방화벽은 말그대로 공유기의 방화벽과 동일합니다.

혹은 그 외적으로 존재하는 것도 있을테구요.

하지만 회사 공유기 방화벽 설정 부분은 스킵하도록하고 두번째인 회사 PC 방화벽을 설정하도록 하겠습니다.



# 회사 PC 방화벽 설정



시작 -> 제어판 -> Windows 방화벽을 클릭.

위와 같이 존재할 경우 회사 PC 방화벽은 모두 해제된 상태입니다.



위와 같이 되어 있을 경우 두 가지로 나뉩니다.


1. 간단하게 방화벽을 해지한다.

2. 보안상 문제로 방화벽은 설정을 해야한다.


1번 같은 경우는 Windows 방화벽 설정 또는 해지를 누르신다음 해지하시면 됩니다.

하지만 2번 같은 경우는 다릅니다.

먼저 고급 설정을 눌러주세요.




Windows 방화벽을 조금 더 고급지게(?) 관리 할 수 있습니다.

인바운드 규칙, 아웃바인드 규칙 이런식으로 두개가 존재하는데요.


외부에서 Centos로 접근하는 것이기 때문에 인바운드 규칙에서 오른쪽 클릭하여 새 규칙을 눌러주세요.





현재 사용자의 환경에 맞게끔 선택하시면 됩니다.

저 같은 경우는 외부에서 SSH 프로토콜을 이용하여 Centos로 접근하는게 목적이므로 포트를 선택했습니다.




SSH 포트번호인 22번을 입력하시면 TCP로 설정합니다.

포트번호는 다 다르며 TCP, UDP 로 통신하는게 다양하기 때문에 사전에 알아두세요.




외부에서 연결하기 때문에 연결 허용을 선택해주세요.




저 같은 경우는 모두 선택합니다.

방화벽 따위 신경을 쓰지 않으니깐요.

사용자 분께서는 환경에 맞게끔 설정해주세요.




마지막으로 이 규칙의 이름과 설명을 넣어주세요.

이 부분은 나중에 자신이 다시 봐도 알 수 있게끔 설정해야 합니다.





사진 죄송합니다.

인바운드 규칙 목록에 보시면 제가 추가한 규칙이 들어가 있습니다.


이렇게 설정하시면 회사 PC 방화벽은 모두 끝난 겁니다.



# 그래도 외부 접근이 되지 않는다면 ?


위에서 모두 언급 드렸습니다.

이제 남은 항목은 아래와 같습니다.


1. 회사 방화벽이 설정되어 있는 경우

2. Centos 방화벽이 설정되어 있는 경우


회사 방화벽은 공유기가 높은 확률일수도 있습니다.

공유기는 모든 브랜드마다 설정 방법이 다르기 때문에 서술하지 않습니다.

간단하게 공유기 포트포워딩이라고 검색하셔도 꽤 많은 정보들이 나옵니다.


Centos 방화벽 역시, 사용자가 Centos가 아닌 Windows를 깔수도 있고 다른 플랫폼을 설치할 수 있는 변수가 있습니다.

그렇기 때문에 서술하지 않습니다.


하지만, 요청하시면 해당 문제에 대한 포스팅으로 답변 드리도록 하겠습니다.

저작자 표시 비영리 변경 금지
신고

'IT > Network' 카테고리의 다른 글

회사 VMware를 외부에서 접근  (0) 2015.11.13
더미 허브와 스위치 허브에 대해서  (2) 2014.04.08



대학생일 때 과제 제출로 메일을 많이 썼지만, 그래도 Outlook을 설정할 만큼 써본 적은 없는 듯 합니다.

하지만 회사에 입사 후 메일로 처리하는 일들이 많이 발생하고, 네이버나 구글 등 많은 메일을 써봤지만,

편집 기능이 아주 불편하더군요.


그래서 Outlook으로 넘어온 후, 고객에게 메일을 보낼 때마다 맨 하단에 명함 첨부하기도 귀찮기도해서

명함 설정 방법을 찾고 포스팅 해봅니다.


※ 이 포스팅은 MS Outlook 2013 버전으로 작성된 것 입니다.


먼저 Outlook을 켜시고 왼쪽 최상단에 위치한 "파일"을 클릭하시면 위와 같이 계정 정보가 나옵니다.

여기서 옵션을 클릭해주세요.





Outlook 옵션 창이 뜨는데 여기서 "메일"을 클릭하시고 "서명"을 눌러주세요.





이제 제 명함을 만들어야하는데요.

"새로 만들기"를 눌러주세요.




명함을 넣을 이름을 넣어주시면 됩니다.

그냥 구분하는거에요. 

"이 명함의 이름은 이거다." 이런식으로요





아래 서명 편집에 명함을 작성해주세요.

명함을 스캔 떠서 사진으로 있을 경우 서명 편집 오른쪽에 보시면 사진 첨부도 가능합니다.





이제 메일을 보낼 때마다 최하단에 명함이 자동적으로 들어갑니다.


간단하죠 ?


도움이 되셨다면 아래 "공감" 버튼을 꾹 눌러주세요 !

저작자 표시 비영리 변경 금지
신고

■ 개요


NFS(Network File System)는 Linux 간에 많이 사용되는 네트워크 파일 공유 시스템이다.

하지만, Windows와 Linux 같은 경우 NFS 파일 시스템 공유를 것을 많이 볼 수 없다.

왜냐하면 NFS를 사용하지 않고 Sabma를 많이 이용하기 때문이다.


그렇다면 Samba와 NFS 차이는 무엇일까 ?

NFS 같은 경우 다른 머신에 있는 파티션을 마치 자신의 로컬 영역인 것처럼 네트워크를 이용하는 기술이다.

하지만, 로컬 영역인것 처럼 사용하기 위해 접근할 때 딱히 보안상으로 크게 좋지는 않다.

실제로 공유하는 머신인 Linux에서도 별 다른 설정이 없다.


반면 Samba는 인증 방식을 통해 접근이 가능하다.

실제 설정하는 부분에서도 여러가지 설정을 할 수 있다.


두 가지 서비스마다 각 다른 차이점이 있겠지만, 보안을 크게 신경쓰지 않는다면 NFS를 추천해주고 싶다.



■ 설치 전 환경


Linux : Centos 5.4

Windows : Windows 7 Enterprise K


여기서 Linux 부분에서는 OS 버전이 크게 필요없다.

그저 NFS 설치만 되어있으면 된다.



■ Linux에서의 마운트 공유 설정


[root@localhost home]# ls

linux  lost+found

[root@localhost home]# vi /etc/exports

/home        *(rw,async,no_root_squash,no_all_squash,no_subtree_check)

[root@localhost home]# service nfs restart


아주 간단하다. /etc/export에 /home 공유를 해주고 모든 머신이 접근이 가능하도록 *을 넣어줬다.

특정 머신에 설정을 원할 경우 특정 머신의 IP를 입력해주면 된다.

해당 범위 내 광역으로 넣어줄 경우 예로 192.168.1.* 이런식으로 넣어줘도 된다.



■ Windows에서 마운트


윈도우 cmd 열고 mount 입력하면 없는 명령어라고 나온다.

경우는 mount 기능이 disable 되어있기 때문에 enable 시켜준다.

 

제어판 - 프로그램 추가/제거 - Windows 기능 사용/사용 안함 클릭



선택 확인




초록색 박스 mount 기능이 disable .

아래 빨간 박스 mount 기능이 enable .





리눅스 NFS 다르게 Windows에서는 네트워크 드라이브로 인식이 되어 마운트가 되는 하다.

원하는 드라이브의 경로를 설정 마운트해주면 된다.

그림에서는 H:\ 마운트를 했다.

해지할 때에는 umount 명령어를 써주면 된다.





드라이브에 진입




linux에서 존재했던 linux 파일이 존재하는 것을 확인할 있다.




추가적으로 윈도우에서 자동 마운트가 되도록 설정을 하고 싶지만, 찾아봐도 보이지 않는다...

아마 최초 마운트를 하면서 자동 마운트가 되는 듯 하다. Windows 재부팅을 해서 확인하고 싶었지만, 

돌리고 있는 작업들이 있어서 재부팅하지 못했다.

만약 된다면.. 댓글 좀.. 

저작자 표시 비영리 변경 금지
신고

에러 : configure: error: Can't find or link to the hdf5 library. Use --disable-netcdf-4, or see config.log for errors.


해결 방법

Netcdf Configure 시 위와 같은 에러가 발생한다.

이 경우 hdf5 라이브러리를 찾지 못하는 경우다.


export CPPFLAGS=-I[HDF5 Include 경로]

export LDFLAGS=-L[HDF5 Lib 경로]


위와 같이 설정해주면 된다.

아직도 이해가 잘 안된다면 hdf5 경로가 있다고 치자.

/usr/local/hdf5/include와  /usr/local/hdf5/lib 있다고 가정 할 경우


export CPPFLAGS=-I/usr/local/hdf5/include

export LDFLAGS=-L/usr/local/hdf5/lib


이렇게 하면 된다.

저작자 표시 비영리 변경 금지
신고



오늘부터 새로운 게시판이 생성되었습니다.

그것은 바로 Error Log 라는 게시판이죠.

리눅스를 사용하시다보면 많은 에러가 발생하고 이에 대한 내용을 검색해도 구글에 잘 나오지 않습니다.

이러한 문제 많은 분들이 검색을 더 해야하고, 원하는 결과를 얻지 못한 경우가 많죠.

다른 분들께서도 이러한 에러가 발생하면 피드백이나 해결 방안을 마련했으면 합니다 !



[root@seob /]# nslookup naver.com

;; connection timed out; no servers could be reached


마스터 노드에서 NAT 기능을 설정한 후 슬레이브 노드에서 이러한 에러가 발생할 때가 있습니다.

분명히 정확하게 슬레이브에서 셋팅을 다 했지만, 이러한 에러가 발생할 경우


마스터 노드와 슬레이브 노드의 firewall(방화벽) 기능을 꺼주세요.


서로 간의 방화벽 때문에 NAT 기능이 제대로 되지 않는 것인데 방화벽을 모두 끌 경우 이러한 에러가 발생하지 않습니다.    

저작자 표시 비영리 변경 금지
신고




녕하세요. 오랫만에 리눅스 관련하여 글 작성합니다.

요즘은 Web 관련 공부를 하고 있어서 PHP 모듈 중 하나인 Zend Optimizer 라는 모듈에 대해 포스팅합니다.


Zend Potimizer라는 것은 php 파일을 컴파일 및 인코딩하여 php 응용 프로그램 실행을 향상시키는 툴 입니다.


또한 Web 종사자분들이면 대부분이 아시겠지만, PHP 5.3 이하 버전에서는 Zend Optimizer 라는 것을 썼었고

그 후에는 Zend Guard Loader로 명칭이 변경되었습니다.

아래 내용을 참고해주세요.



### 버전별 Zend Guard Loader & Zend Optimizer


Zend Optimizer (Runtime for PHP 5.2 and earlier) - 64 bit : 3.3.9

Zend Guard Loader (Runtime for PHP 5.3) - 64 bit - 5.5.0

Zend Guard Loader (Runtime for PHP 5.4) - 64 bit - 6.0.0

Zend Guard Loader (PHP 5.6 Runtime) - 64 bit - 7.0.0


다운로드 http://www.zend.com/en/products/guard/downloads

or 3.3.9 직접 다운로드 : 

ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz




위와 같이 자신의 php 버전을 확인하고 꼭 설치하시길 바랍니다.



### Zend Optimizer 버전 확인


[root@seob ~]# php -v

PHP 5.2.17 with Suhosin-Patch 0.9.7 (cli) (built: Jan 10 2011 15:17:13) 

Copyright (c) 1997-2009 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies


현재 제 서버에 셋팅된 php은 5.2.17 입니다.

OS는 Centos 5.11 64bit 입니다.

따로 컴파일 없이 yum으로 설치한 php 입니다.

yum으로 5.2.17 버전을 만들기 위해서는 repo를 다운 받아야합니다.



### PHP 5.2.17 버전으로 업그레이드


[root@seob yum.repos.d]# pwd

/etc/yum.repos.d

[root@seob yum.repos.d]# cat iworx-unsupported.repo 

[iworx-unsupported]

name=IWorx Unsupported

baseurl=http://updates.interworx.com/iworx/RPMS/unsupported/php5/cos5x/$basearch/

gpgcheck=0


yum에 iworx repo를 추가 한 후 yum install php 를 입력해주시면 php 5.2.17로 설치가 됩니다.



### Zend Optimizer 설치 및 적용


[root@seob local]# tar zxvf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

[root@seob local]# mv ZendOptimizer-3.3.9-linux-glibc23-x86_64 ZendOptimizer

[root@seob local]# cd ZendOptimizer/data/5_2_x_comp/

[root@seob 5_2_x_comp]# pwd

/usr/local/ZendOptimizer/data/5_2_x_comp

[root@seob 5_2_x_comp]# vi /etc/php.ini

 

하단에 아래와 같이 추가

[Zend]

zend_extension=/usr/local/ZendOptimizer/data/5_2_x_comp/ZendOptimizer.so

 

[root@seob 5_2_x_comp]# service httpd restart

Stopping httpd:                                            [FAILED]

Starting httpd:                                            [  OK  ]

[root@seob log]# php -v

PHP 5.2.17 with Suhosin-Patch 0.9.7 (cli) (built: Jan 10 2011 15:17:13)

Copyright (c) 1997-2009 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies

 

아래와 같이 추가가 되어야 정상적으로 Zend Optimizer 적용



생각보다 매우 간단합니다.

처음에는 zend optimizer를 설치하여 -with-php 등 옵션을 주거나 혹은 php에서 그러한 옵션을 줘서 컴파일하는 줄 알았는데 

압축 후 파일만 로드 시키면 되는 것입니다.

Zend Optimizer 뿐만 아니라 Zend Gruard Loader도 비슷한 형식입니다.


Web 관리자거나 Web을 배우는 분들에게 좋은 유용한 팁이라고 생각됩니다.

설명이 어렵거나 이해가 잘 안되는 부분이 있다면 피드백 남겨주세요.

저작자 표시 비영리 변경 금지
신고





눅스를 사용하시다보면, 부팅 시 Error Check를 하게 되는데 이 부분에서 제대로 넘어가지 않을 경우 OS로 정상적인 부팅이 안되는

경우가 있습니다.


이 경우에 / 포인터가 아닌 다른 파티션 일 경우 CLI 모드에서 곧바로 패스워드를 입력 후 파일시스템 체크를 하면 되지만,

/ 포인터 일 경우 Rescue로 부팅하여 해결해야하는 번거로움이 따릅니다.


 Rescue로 부팅을 해야하나면, 파일시스템 체크를 하기 위해서 해당 파티션을 Umount 시켜야합니다.

하지만, Rescue이 아닌 일반적으로 부팅하면 / 포인터가 마운트가 되어있고 Umount가 불가능 합니다.


Rescue 부팅은 System Rescue CD라는 것을 찾아 직접 CD로 굽고 부팅을 하거나 혹은 OS의 CD를 넣고 설치 화면 직전에

Rescue 모드로 부팅이 가능합니다.




# 파일시스템 체크 방법 [ Block size를 이용한 파일시스템 ]


상황 설명.

- 현재 / 포인터가 제대로 Error Check가 되지 않아 부팅이 되지 않는 문제. 그리고 하드디스크는 1개 장착으로 /dev/sda로 보이고 있음


1. Rescue 모드 부팅

- System Rescue 혹은 OS CD로 부팅


2. / 포인터 확인

[root@seob ~]# fdisk -l


Disk /dev/sda: 299.4 GB, 299439751168 bytes

255 heads, 63 sectors/track, 36404 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1       23643   189912366   83  Linux

/dev/sda2           23644       36391   102398310   83  Linux

/dev/sda3           36392       36404      104422+  82  Linux swap / Solaris


WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

현재 디스크는 한개만 장착이 되어있고 / 포인터는 Boot의 * 표시로 가리키고 있습니다.

그렇기 때문에 /dev/sda1을 파일시스템 체크 해야 합니다.



3. Block size 확인

[root@seob ~] dumpe2fs /dev/sda1 | grep "^Block size"

dumpe2fs 1.39 (29-May-2006)

Block size:               4096

위에 보이는 것처럼 4096이 Block size가 됩니다.


4. 파일시스템 복구

[root@seob ~] fsck.ext3 -B 4096 -v -f /dev/sda1


현재 여러가지 옵션이 들어가 있습니다.

이 명령어를 해석하면 파일시스템이 ext3인 /dev/sda1의 블럭 사이즈를 잡고 상세하고 강제적으로 복구

이런 내용입니다.


파일시스템은 ext2나 ext4일 경우 fsck.ext2 fsck.ext4나 e2fsck -j ext2, e2fsck -j ext4 이런식으로 응용해서 사용이 가능합니다.

-v 옵션은 복구 과정을 상세히 출력이라는 내용이며 -f 은 문제가 발생해도 강제적으로 검사하라는 것 입니다.

-B는 Block size입니다. -b 옵션은 Super block입니다. 꼭 두 옵션을 헷깔리지 않으시면 됩니다.


5. 마무리

모든 파일시스템 체크가 완료 뒤 재부팅을 해주시면 정상적으로 올라오는 것이 보이실 것입니다.




간단하지만 헷깔리는 분들도 계실꺼라 생각하여 작성했습니다.

이해가 잘 안되는 부분이 있다면 댓글 부탁드립니다.

저작자 표시 비영리 변경 금지
신고



녕하세요.


일반 사용자가 sudo를 사용할 때 권한이 없어 사용하지 못합니다.


우분투에서는 사용이 가능했던걸로 기억했지만.. 센토스에서는 되지 않네요.


이 명령어를 제대로 활용하기 위해서는 아래와 같이 따라하시면 됩니다.



Ⅰ. 설정 방법


[root@seob ~]# tail /etc/passwd

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

pulse:x:497:494:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin

nx:x:496:500::/var/NX/nx:/etc/NX/nxserver



현재는 아무런 사용자가 추가되어있지 않는 상태입니다. 그렇기 때문에 사용자를 추가해줍니다.



[root@seob ~]# useradd seob

[root@seob ~]# passwd seob

Changing password for user seob.

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.



seob이라는 계정이 생성되었습니다.

su 명령어로 seob로 전환 후 sudo 명령어를 사용해보겠습니다.



[root@seob ~]# su - seob

[seob@seob ~]$ sudo -s


We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:


    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.


[sudo] password for seob: 

seob is not in the sudoers file.  This incident will be reported.



su로 seob 계정으로 전환 후 sudo -s 라는 명령어로 root로 전환하려고 했지만 실패했습니다.

seob에 대한 sudoers 파일이 기록되어 있지 않기 때문입니다.

즉, 쉽게 말해 sudo 권한이 없는 것이죠.

이 문제를 해결하기 위해서는 다음과 같이 똑같이 해주세요.



■ 수정 전

[root@seob ~]# vi /etc/sudoers


 88 ## Next comes the main part: which users can run what software on 

 89 ## which machines (the sudoers file can be shared between multiple

 90 ## systems).

 91 ## Syntax:

 92 ##

 93 ##      user    MACHINE=COMMANDS

 94 ##

 95 ## The COMMANDS section may have other options added to it.

 96 ##

 97 ## Allow root to run any commands anywhere 

 98 root    ALL=(ALL)       ALL

 99 

100 ## Allows members of the 'sys' group to run networking, software, 

101 ## service management apps and more.

102 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

103 

104 ## Allows people in group wheel to run all commands

105 # %wheel        ALL=(ALL)       ALL

106 

107 ## Same thing without a password

108 # %wheel        ALL=(ALL)       NOPASSWD: ALL

109 

110 ## Allows members of the users group to mount and unmount the 

111 ## cdrom as root

112 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

113 

114 ## Allows members of the users group to shutdown this system

115 # %users  localhost=/sbin/shutdown -h now

116 

117 ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

118 #includedir /etc/sudoers.d



현재 98번 줄에 root만 추가가 되어있습니다.

그 아래에 seob 계정에 대한 내용을 추가해주세요.



■ 수정 후

[root@seob ~]# vi /etc/sudoers


 88 ## Next comes the main part: which users can run what software on 

 89 ## which machines (the sudoers file can be shared between multiple

 90 ## systems).

 91 ## Syntax:

 92 ##

 93 ##      user    MACHINE=COMMANDS

 94 ##

 95 ## The COMMANDS section may have other options added to it.

 96 ##

 97 ## Allow root to run any commands anywhere 

 98 root    ALL=(ALL)       ALL

 99 seob    ALL=(ALL)       ALL

100 

101 ## Allows members of the 'sys' group to run networking, software, 

102 ## service management apps and more.

103 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

104 

105 ## Allows people in group wheel to run all commands

106 # %wheel        ALL=(ALL)       ALL

107 

108 ## Same thing without a password

109 # %wheel        ALL=(ALL)       NOPASSWD: ALL

110 

111 ## Allows members of the users group to mount and unmount the 

112 ## cdrom as root

113 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

114 

115 ## Allows members of the users group to shutdown this system

116 # %users  localhost=/sbin/shutdown -h now

117 

118 ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)



위와 같이 수정후 wq!로 저장하여 나와주세요.

그리고 다시 su 명령어로 seob으로 전환합니다.



[root@seob ~]# su - seob

[seob@seob ~]$ sudo -s

[sudo] password for seob: 

[root@seob seob]#



이제는 sudo 명령어가 잘 먹힙니다.





Ⅱ. sudo에 대해서


sudo 명령어는 무엇일까요 ?


sudo 명령어는 일반 사용자가 sudo 명령어로 통해서 일시적으로 root의 권한을 획득하여 해당 명령어를 처리합니다.


그럼 굳이 root로 사용하면 될 것을 왜 sudo 명령어를 사용할까요 ?


그 이유는 일반 유저가 root의 패스워드를 알 필요가 없기 때문이죠. 하지만, root의 권한이 필요할 때에는 이러한 방식으로 사용하는 것이 보안쪽으로도 안전합니다.


저작자 표시 비영리 변경 금지
신고





눅스상에서의 history.


많이들 이용하시나요 ?



end user가 사용하다가 갑자기 잘못 되었을 때.


해킹을 당했을 때.


등 많이 쓰입니다.



하지만.. 


일반적인 history은 기록은 시간을 볼 수가 없습니다.


그러기 때문에 history로 분석할 때 매우 힘들었죠.


하지만.. 이제 쉽게 해보도록 하겠습니다.



[root@seob ~]# history | tail

  992  ls

  993  cd $WINE

  994  ls

  995  ln -s wine64 wine

  996  ls

  997  cd /

  998  ls

  999  su -

 1000  history 

 1001  history | tail


기존의 history 입니다.


그냥 순번대로 명령어만 보입니다.



시간 기록을 하기 위해


아래와 같이 해주세요.


[root@seob ~]# tail /etc/profile

            . "$i"

        else

            . "$i" >/dev/null 2>&1

        fi

    fi

done


unset i

unset -f pathmunge

HISTTIMEFORMAT="%Y-%m-%d [%H:%M:%S]# "


/etc/profile = 모든 사용자


~/.bash_profile = 해당 사용자



저는 모든 사용자가 사용할 수 있게끔 수정했습니다.


맨 아래 빨간 글씨로 되어있는걸 그대로 적어서 넣어주시면 됩니다.



그리고 난 뒤


logout 혹은 su - 혹은 source /etc/profile 로 적용해주세요.



[root@seob ~]# history | tail

  991  2014-07-30 [13:08:18]# cd wine-1.7.23/

  992  2014-07-30 [13:08:18]# ls

  993  2014-07-30 [13:08:18]# cd $WINE

  994  2014-07-30 [13:08:18]# ls

  995  2014-07-30 [13:08:18]# ln -s wine64 wine

  996  2014-07-30 [13:08:18]# ls

  997  2014-07-30 [13:08:18]# cd /

  998  2014-07-30 [13:08:18]# ls

  999  2014-07-30 [13:08:18]# su -

 1000  2014-07-30 [13:08:22]# history | tail


이렇게 보시면 년-월-일 [시/분/초]로 확인하실 수 있습니다.


이제 쉽게 history를 사용합시다.


저작자 표시 비영리 변경 금지
신고




번에는 crond 데몬에 대해 배워보겠습니다.


심화가 아닌 기초적인 설명만 하겠습니다.



crond 데몬은 아주 유용하게 쓰입니다.


어떻게 쓰이냐에 따라 천지차별이죠.



저 같은 경우는 시간을 동기화 시키는데에 쓰이고


가끔 백업에 사용되기도 합니다.






이번에 제가 설명드리고하자는건 백업에 대한 설명으로 드리겠습니다.




■ Crond 데몬 활용하기


업하기 위한 폴더와 파일을 생성하도록 하겠습니다.


기본적인 폴더에서 백업을 하려고 했는데 용량이 여의치 않아서 간단한 폴더를 생성하겠습니다.



[root@seob /]# mkdir seob  

[root@seob /]# cd seob

[root@seob seob]# touch min.txt

[root@seob seob]# echo "Hello. Min" >> min.txt 

[root@seob seob]# cat min.txt 

Hello. Min


위 명령어에 대한 설명


/ 폴더 아래에 seob 이라는 폴더를 생성후 min.txt 라는 일반 파일을 생성했습니다.


그리고 그 파일안에 Hello. Min 이라는 문구를 넣었습니다.



그리고 난 뒤 crond 데몬을 활용하여 매시간 1분에 백업을 하도록 설정하겠습니다.



[root@seob home]# cat /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/


# For details see man 4 crontabs


# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed


기본적인 crontab에 대한 내용입니다.


여기에 언제, 누가, 어떠한 명령으로, 무엇을 실행하는지 작성하시면 됩니다.


기본적으로 주석되어 설명이 되어있기 때문에 설명은 생략하겠습니다.



우리는 매시간 1분마다 백업을 하기 위하니깐 다음과 같이 작성해줍니다.


[root@seob home]# cat /etc/crontab 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/


# For details see man 4 crontabs


# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

01 * * * * root run-parts /etc/cron.hourly


매시간 1분마다 /etc/cron.hourly 폴더 안에 있는 스크립트를 root 권한으로 실행하라


라는 표기입니다.




※ 알고가기


/etc/cron.*에는 여러가지가 있습니다.


cron.daily/   cron.hourly/  cron.monthly/ cron.weekly/


이렇게 네가지로 구분되며


cron.daily = 하루


cron.hourly = 시간


cron.weekly = 주


cron.monthly = 달


이렇게 구분이 됩니다.


시간에 따른 스크립트를 안에 넣어주시면 됩니다.



그리고 난 뒤 백업을 할 스크립트를 작성해주셔야합니다.


[root@seob /]# cat /etc/cron.hourly/backup.sh 

#!/bin/bash


time="$(date)"   ##### time 이라는 변수를 생성하고 date 명령어를 time 변수에 삽입


tar zcvf /home/backup-"$time".tar.gz /seob

##### /seob 이라는 폴더를 tar.gz으로 압축을 묶고 /home 폴더 아래에 backup-"현재 시간".tar.gz으로 압축


[root@seob /]# chmod 755 /etc/cron.hourly/backup.sh ##### backup.sh 파일의 권한을 755로 변경


crond이 실행되면 cron.hourly에 있는 스크립트가 실행되기 때문에


/etc/cron.hourly에 backup.sh 이라는 스크립트를 만들어 줍니다.


여기서 중요한 것은 스크립트의 권한은 755 혹은 777 로 주세요.


안전성을 고려하신다면 755로 주세요.



이렇게까지 모두 완료되었으면 crond 데몬을 실행합니다.


[root@seob /]# service crond start

Starting crond:                                            [  OK  ]

[root@seob /]# chkconfig crond on



그리고 매시간 1분에 home 폴더로 이동해봅니다.


[root@seob home]# ls

backup-Wed Jul 30 11:01:00 KST 2014.tar.gz


저희가 만든대로 생성이 되었습니다.


문제는.. 띄어쓰기 때문에 압축해제가 되지 않네요.


이름을 aaa.tar.gz로 변경하고 압축을 풀겠습니다.


[root@seob home]# mv backup-Wed\ Jul\ 30\ 11\:01\:00\ KST\ 2014.tar.gz aaa.tar.gz

[root@seob home]# tar zxvf aaa.tar.gz 

seob/

seob/min.txt

[root@seob home]# ls

aaa.tar.gz  seob

[root@seob home]# cd seob

[root@seob seob]# cat min.txt 

Hello. Min


백업이 정상적으로 되었습니다.


min.txt 파일에 있던 내용도 그대로 잘 출력 되네요.











제는 시간에서의 띄어쓰기인데.....


[root@seob /]# cat /etc/cron.hourly/backup.sh 

#!/bin/bash


time="$(date)"   ##### time 이라는 변수를 생성하고 date 명령어를 time 변수에 삽입


tar zcvf /home/backup-"$time".tar.gz /seob

##### /seob 이라는 폴더를 tar.gz으로 압축을 묶고 /home 폴더 아래에 backup-"현재 시간".tar.gz으로 압축


이 부분에서 


time="$(date)" 부분을 time="$(date +%y%m%d)"로 변경해주세요.


그럼 이렇게 저장이 됩니다.


[root@seob home]# ls

backup-140730.tar.gz

[root@seob home]# tar zxvf backup-140730.tar.gz 

seob/

seob/min.txt


띄어쓰기가 없으니 압축도 잘 풀어지네요.



이상으로 기초 crontab 활용에 대해 설명을 마치겠습니다.


저작자 표시 비영리 변경 금지
신고
1 2 3 4 5 ... 6


티스토리 툴바