mount된 디렉토리를 umount 하고자 할 때, 만약 특정 사용자 & 프로세스가 해당 디렉토리를 사용하고 있으면

"device is busy" 메세지가 발생하며 umount 가 되지 않습니다.

이 경우 umount를 위해 해당 프로세스를 강제로 kill 하는 방법은 아래와 같습니다.

# fuser -ck 마운트디렉토리

ex) fuser -ck /backup

위 명령으로 프로세스를 kill 하고 umount를 재시도하면 정상적으로 mount가 해제 됩니다.

* 해당 디렉토리를 사용하는 사용자가 누구인지 확인하고 싶을 때
# fuser -cu /backup

출처 : http://faq.hostway.co.kr/Linux_ETC/4209


 

yum 패키지 관리자는 패키지 설치/삭제를 트랜잭션으로 관리하므로 예전 패키지 설치 상태로 되돌릴 수 있는 방법을 제공하고 있습니다.


yum 을 통해 패키지 설치, 변경, 삭제로 인해 내부 저장소가 변경되는 작업을 트랜잭션(transaction)이라고 하며 CentOS 6 에 내장된 yum 부터는 트랜잭션 내역을 확인하고 rollback 을 할 수 있습니다. 


트랜잭션 목록 보기

yum history 명령을 옵션없이 실행하거나 옵션에 list 를 주면 최근 트랜잭션 목록을 볼 수 있습니다.

# yum history list


ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
24 | lesstif <lesstif> | 2017-07-12 12:02 | Install | 5
23 | lesstif <lesstif> | 2017-06-28 11:38 | Install | 1
22 | lesstif <lesstif> | 2017-06-28 11:11 | Install | 15
21 | lesstif <lesstif> | 2017-06-28 11:11 | Erase | 6 EE
20 | lesstif <lesstif> | 2017-06-28 10:57 | Install | 1 EE
19 | lesstif <lesstif> | 2017-06-28 10:57 | Install | 1
18 | lesstif <lesstif> | 2017-06-19 09:30 | Install | 6
17 | lesstif <lesstif> | 2017-06-19 09:21 | I, O, U | 255 EE
16 | lesstif <lesstif> | 2017-06-19 09:18 | Install | 1
15 | lesstif <lesstif> | 2017-06-19 09:16 | I, U | 8
14 | root <root> | 2015-01-30 04:12 | Install | 3

yum history list 실행 결과

ID는 트랜잭션 번호를 의미하며 수차적이므로 총 24번의 트랜잭션이 있었음을 나타내며 Action 은 실행한 행동이며 Altered 는 트랜잭션에 의해 변경된 패키지의 갯수를 나타냅니다.


이력에 표시되는 모든 Action 항목은 아래 표에 있으며 여러 개의 Action 이 있었을 경우 I,U 같이 축약어로 표시됩니다.

Action
축약어
의미
Downgrade D 최소 한개의 패키지가 예전 버전으로 다운그레이드됨.
Erase E 최소 한개의 패키지가 삭제됨.
Install I 최소 한 개의 패키지가 설치됨.
Obsoleting O 최소 한개의 패키지가 obsolete 로 표시됨.
Reinstall R 최소 한개의패키지가 재설치됨.
Update U 최소 한개의 패키지가 새로운 버전으로 업데이트됨.
가능한 Action

Altered 필드는 변경된 패키지의 숫자와 변경 내역에 대한 기호가 표시되며 각 기호의 의미는 다음과 같습니다.

기호
의미
< 트랜잭션이 완료되기 전에 rpmdb 데이타베이스가 yum 이 아닌 외부에서 변경됨.
> 트랜잭션이 완료된 후에 rpmdb 데이타베이스가 yum 이 아닌 외부에서 변경됨.
* 트랜잭션을 종료하지 못함
# 트랜잭션이 성공적으로 종료되었지만 yum 이 0 아닌 종료 코드를 전달함.
E 트랜잭션이 성공적으로 종료되었지만 에러나 워닝이 표시됨.
P 트랜잭션이 성공적으로 종료되었지만 rpmdb 데이타베이스에 문제가 계속 존재함.
s

트랜잭션이 성공적으로 종료되었지만 --skip-broken 옵션을 사용하였으므로 어떤 패키지는 건너뜀.

Alteted 필드 의미

ID 가 24 번인 트랜잭션의 경우 Acton 이 Install 이고 Altered 항목이 5 이므로 5개의 패키지를 설치했다는 뜻입니다.

ID 가 21인 작업의 경우는 6개의 패키지를 삭제했다는 로그이며 17번인 트랜잭션은 I, O, U 이므로 설치와 업데이트를 했고 몇몇 패키지는 이제는 불필요(Obsolete)해졌다는 의미입니다.


자세한 정보 보기

해당 트랜잭션의 자세한 정보를 보고 싶으면  info 명령어 뒤에 트랜잭션 id 를 적어주면 되며  독자들도 사용하고 있는 리눅스 시스템의 트랜잭션 목록에서 상세 작업 이력을 확인해 보기 바랍니다.

아래는 22 번 트랜잭션의 상세 내용을 보는 예제입니다.

yum history info 22


Transaction ID : 22
Begin time : Wed Jun 28 11:11:52 2017
Begin rpmdb : 378:16ce599ad759e8435336997b266340324c5b0671
End time : 11:11:55 2017 (3 seconds)
End rpmdb : 393:3035f14323d91e76579575a07b6b2c04986f7800
User : lesstif <lesstif>
Return-Code : Success


Command Line : install php70w-cli php70w-common php70w-gd php70w-mbstring php70w-mysqlnd php70w-pdo php70w-fpm php70w-xml


Transaction performed with:
Installed rpm-4.11.3-21.el7.x86_64 @base
Installed yum-3.4.3-150.el7.centos.noarch @base


Packages Altered:
Dep-Install libX11-1.6.3-3.el7.x86_64 @base
Dep-Install libX11-common-1.6.3-3.el7.noarch @base
Dep-Install libXau-1.0.8-2.1.el7.x86_64 @base
Dep-Install libXpm-3.5.11-3.el7.x86_64 @base
Dep-Install libjpeg-turbo-1.2.90-5.el7.x86_64 @base
Dep-Install libpng-2:1.5.13-7.el7_2.x86_64 @base
Dep-Install libxcb-1.11-4.el7.x86_64 @base
Install php70w-cli-7.0.20-1.w7.x86_64 @webtatic

강조한 부분처럼 해당 트랜잭션으로 실행한 명령어 및 변경된 패키지의 자세한 정보를 알수 있습니다.


되돌리기(Undo)

"history undo ID" 명령어로 특정 트랜잭션을 되돌릴 수 있으며 되돌리기 작업은 수행한 트랜잭션을 이전 상태로 되돌리는 것이므로 작업한 내용과 반대의 작업을 수행하게 됩니다.


즉 트랜잭션이 패키지 설치라면 해당 트랜잭션에서 설치된 패키지는 삭제되고 트랜잭션이 패키지 삭제라면 삭제한 패키지는 설치됩니다.

되돌리기도 새로운 트랜잭션이므로 성공적으로 종료되었을 경우 별도의 트랜잭션 ID 를 갖게 되므로 전체 트랜잭션 ID 는 1 이 증가됩니다.

독자들도 수행한 트랜잭션중에 하나를 골라서 되돌리기 작업을 수행해 보기 바랍니다.


다음은 필자의 리눅스 시스템의 마지막 트랜잭션(ID: 24)을 되돌리는 예제입니다.

yum history undo 24


되살리기(Redo)

"yum history redo ID" 명령어로 특정 트랜잭션을 되살릴 수 있습니다.

위에서 24번 트랜잭션으로 5개가 설치되고 트랜잭션 되돌리기로 삭제되었습니다. 이제 24번 트랜잭션에서 설치한 패키지를 재설치하려면 "yum history redo 24" 명령어로 24번 트랜잭션을 되살릴 수 있습니다.

이 작업은 25번 트랜잭션을 되돌리는 "yum history undo 25" 번과 비슷한 결과를 가져오게 됩니다.

 

출처 : https://www.lesstif.com/pages/viewpage.action?pageId=43844113

'Works > CentOS' 카테고리의 다른 글

디스크가 HDD인지 SSD인지 확인하기  (0) 2018.10.24
강제 umount 방법 (umount : device is busy 발생시)  (0) 2018.10.22
yum 트랜잭션 및 롤백  (0) 2018.09.07
CentOS7 Locale설정  (0) 2018.05.29
SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01


 

CentOS 7 에서 로케일 변경하는 방법입니다.


현재 사용가능한 한글관련 로케일


# localectl list-locales | grep -i ko

ko_KR

ko_KR.euckr

ko_KR.utf8

kok_IN

kok_IN.utf8

korean

korean.euc

ru_RU.koi8r

ru_UA.koi8u

tg_TJ.koi8t

uk_UA.koi8u

utf8 로 변경


 # localectl set-locale LANG=ko_KR.utf8

수동으로 변경시는 /etc/locale.conf 파일을 만들어 아래 내용 추가


LANG=ko_KR.utf8

서버 부팅 후 로케일 설정 확인


# locale

LANG=ko_KR.utf8

LC_CTYPE="ko_KR.utf8"

LC_NUMERIC="ko_KR.utf8"

LC_TIME="ko_KR.utf8"

LC_COLLATE="ko_KR.utf8"

LC_MONETARY="ko_KR.utf8"

LC_MESSAGES="ko_KR.utf8"

LC_PAPER="ko_KR.utf8"

LC_NAME="ko_KR.utf8"

LC_ADDRESS="ko_KR.utf8"

LC_TELEPHONE="ko_KR.utf8"

LC_MEASUREMENT="ko_KR.utf8"

LC_IDENTIFICATION="ko_KR.utf8"

LC_ALL= 


# cat /etc/locale.conf



출처: http://itposting.tistory.com/62 [IT 관련 포스팅]

'Works > CentOS' 카테고리의 다른 글

강제 umount 방법 (umount : device is busy 발생시)  (0) 2018.10.22
yum 트랜잭션 및 롤백  (0) 2018.09.07
CentOS7 Locale설정  (0) 2018.05.29
SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01
크론테이블에 등록 : crontab -e  (0) 2017.09.22


* 설치 환경 : CentOS 6.x (64bit)

기본적으로 sftp는 로그를 남기지 않아 불편한 점이 종종 있는데 sftp 에 로그를 남기기 위해서는

아래와 같은 설정이 필요하다.


1. sshd_config 수정

vi /etc/ssh/sshd_config

Subsystem       sftp    /usr/libexec/openssh/sftp-server  를
Subsystem       sftp    /usr/libexec/openssh/sftp-server -f local2 -l INFO  로 변경


2. syslog.conf 수정 (CentOS 6.x 에서는 rsyslog.conf)

vi /etc/rsyslog.conf  파일에 아래 내용 추가

# sftp log
local2.*                        /var/log/sftp.log


3. logrotate.d 설정

vi /etc/logrotate.d/syslog 파일 내용 중

/var/log/spooler 하단에
/var/log/sftp.log
추가


4. 서비스 재시작

/etc/init.d/sshd restart
/etc/init.d/rsyslog restart


5. 확인

tail -f /var/log/sftp.log

'Works > CentOS' 카테고리의 다른 글

yum 트랜잭션 및 롤백  (0) 2018.09.07
CentOS7 Locale설정  (0) 2018.05.29
SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01
크론테이블에 등록 : crontab -e  (0) 2017.09.22
centos7 고정 ip 설정  (0) 2017.09.13
dig


dig (domain information groper) 는 DNS 네임서버에 쿼리를 날리기위한 유용한 툴이다.
DNS lookup 과 쿼리를 보낸 네임서버로부터 돌아오는 응답을 출력해준다.

대부분의 DNS 관리자들은 DNS장애 시 troubleshoot 를 위해 dig를 사용한다.
이유는 dig의 유연하고 편리하기 때문이다.

보통 dig는 명령어라인 인자들과 함께 사용한다.

dig 사용 시 name server 를 명시하지 않으면 /etc/resolv.conf 파일에 명시된
리스트로 쿼리를 보낸다.

사용법은 다음과 같다.

dig @server name type

[server]
네임서버의 아이피 또는 도메인을 명시한다.
IPv4는 dotted-decimal(.)을 사용하고 IPv6는 colon-delimited(:)을 사용한다.

[name]
도메인을 명시한다.

[type]
ANY, A, MX, SIG, 기타.. 를 명시한다.
명시하지 않을 경우 기본적으로 A레코드를 출력한다.

< 예제 >

// 도메인 조회
[root@assa root]# dig @168.126.63.1 sysadm.kr ANY

; <<>> DiG 9.2.1 <<>> @168.126.63.1 sysadm.kr ANY
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65437
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;domain.net. IN ANY

;; ANSWER SECTION:
domain.net. 172800 IN NS ns.domain.net.

;; AUTHORITY SECTION:
domain.net. 172800 IN NS ns.domain.net.

;; ADDITIONAL SECTION:
ns.domain.net. 172800 IN A 192.168.1.100

;; Query time: 3080 msec
;; SERVER: 168.126.63.1#53(168.126.63.1)
;; WHEN: Sat Mar 29 11:01:07 2003
;; MSG SIZE rcvd: 134

// Reverse lookup(역방향 조회)
[root@assa root]# dig @168.126.63.1 -x 192.168.10.1 ANY
; <<>> DiG 9.2.1 <<>> @168.126.63.1 -x 192.168.10.1 ANY
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61892
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;1.10.168.192.in-addr.arpa. IN ANY

;; AUTHORITY SECTION:
1.10.168.192.in-addr.arpa. 600 IN SOA ns.domain.net. root.ns.domain.net. 2003021922 28800 14400 3600000 86400 



. server : 확인하고자 하는 DNS 서버의 domain 이나 IP 를 넣어주면 됨
2. query type 에 올수 있는것
– a – 네트워크 주소를 의미
– any – 지정한 도메인의 모든 정보를 의미
– mx – 지정한 도메인의 메일서버 정보를 의미
– ns – 네임서버를 의미
– soa – soa 정보를 의미
– hihfo – HINFO 레코드에 대한 정보를 의미

3. query-class : 확인하고자 하는 도메인

4. DIG는 쿼리에 대한 결과를 ANSWER SECTION에, 해당 도메인의 인증을 갖는 네임서버 정보를 AUTHORITY SECTION에, 그리고, 글루레코드 등이 있을 경우 그에대한 정보를 ADDITIONAL SECTION에 출력하여 준다.

출처 : http://sasuke.tistory.com/162?srchid=BR1http%3A%2F%2Fsasuke.tistory.com%2F162

'Works > CentOS' 카테고리의 다른 글

CentOS7 Locale설정  (0) 2018.05.29
SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01
크론테이블에 등록 : crontab -e  (0) 2017.09.22
centos7 고정 ip 설정  (0) 2017.09.13
리눅스에서 tcpdump 명령어의 옵션 정리  (0) 2017.06.20


크론테이블에 등록 : crontab -e
■ cron

- 명령은 지정된 날짜와 시간에 일정 작업을 주기적으로 수행하기 위해 사용되며 각 사용자별로 /var/spool/cron/crontabs 디렉토리에 사용자 ID와 같은 이름의 crontab 화일을 만들어 cron job을 지정할 수 있다
- cron 명령은 시스템이 부팅되면서 /etc/rc2.d/S75cron 스크립트에 의해서 daemon 형태로 수행된다


■ 형식 : crontab -e

분  시  일  월  요일   실행할 명령

   분 : 0-59
   시 : 0-23
   일 : 1-31
   월 : 1-12
   요일 : 0-6( 0: 일요일)


■ 옵션

crontab -e : 작업할 내용 작성하기
crontab -l : 현재 설정되어 있는 작업내용 보기
crontab -r : 설정되어 있는 작업을 모두 삭제하기


■ 예제

ex1) 1일부터 15일 까지로 날짜를 지정하고 싶을 땐 다음과 같이 하이픈을 이용할 수 있다
0   1   1-15     *   *   [명령]
분, 시, 날, 달, 요일, 모두 적용할 수 있다

ex2) 1일과 7일 15일에 cron을 작동시킬 땐 콤마를 이용하면 된다
0   1  1,7,15    *   *   [명령]
분, 시, 날, 달, 요일, 모두 적용할 수 있다

ex3) 매 5일 마다 실행하고 싶을 땐 슬래쉬(/)를 이용한면 된다
0   1   /5   *   *   [명령]
분, 시, 날, 달, 요일, 모두 적용할 수 있다
/ 안해줘도 달이 *로 표현되어 있어서 매달 실행된다. 하지만 좋은 습관을 들이기 위해..


 

ex4) 매주 일요일 오전 3:15에 /var 디렉토리에 있는 core 화일을 지우는 작업
15 3 * * 0 find /var -name core 2>/dev/null |  xargs rm -f


ex5) 매월 1일 오후 6시에 시스템 down message 보내기
0 18 1 * * wall "System Will be down"


■ Access 제한

- /etc/cron.d/cron.allow 파일이나 /etc/cron.d/cron.deny 화일을 이용하여 시스템 관리자는 각 사용자별로 crontab 파일에 대한 Access 권한을 제한 할 수 있다
 * crontab을 access 할 수 있는 사용자

   - /etc/cron.d/cron.allow 화일이 존재하는 경우, 그 파일 안에 지정된 사용자
   - /etc/cron.d/cron.allow 화일이 없는 경우 : /etc/cron.d/cron.deny 파일 안에 지정되지 않은 사용자
       
 * crontab을 access 할 수 없는 사용자

   - /etc/cron.d/cron.allow 파일이 존재하는 경우 : 그 파일 않에 지정되지 않은 사용자
   - /etc/cron.d/cron.allow 파일이 없는 경우 : /etc/cron.d/cron.deny 파일에 지정된 사용자
   - /etc/cron.d/cron.allow와 /etc/cron.d/cron.deny 파일이 모두 없는 경우 : root를 제외한 모든 사용자
  
- OS가 설치되면 기본적으로 /etc/cron.d/cron.deny이 생성되고 그 안에 아래의 사용자들이 지정된다
daemon
bin
smtp
nuucp
listen
nobody
noaccess

/etc/cron.d/cron.allow와 /etc/cron.d/cron.deny 화일에 사용자를 지정할 때는 위와 같이 한줄에 한명씩 사용자를 지정한다.


0 4 1,10 * * 명령1

위 처럼 crontab을 편집하면 매월 1일과 10일 4시에 명령1을 실행한다는 의미이다. 또
0 4 1-10 * * 명령2

위처럼 crontab을 편집하면 매월 1일부터 10일동안 매일 명령2를 실행한다는 의미이다. 그리고

0 4 */5 * * 명령3

라고 편집하면 매 5일마다 실행한다는 것으로 1일, 6일, 11일 등과 같이 5일 간격으로 실행한다는 의미이다.
그리고 그 외에 root 권한으로 다른 사용자의 crontab 파일을 편집하기 위해서는 다음과 같이 명령하면 된다.

crontab -u user -e
[출처] Cron|작성자 지우개



출처: http://annehouse.tistory.com/390 [초록지붕의 앤]

'Works > CentOS' 카테고리의 다른 글

SFTP log 설정  (0) 2018.02.22
dig 개념 및 사용법  (0) 2017.11.01
크론테이블에 등록 : crontab -e  (0) 2017.09.22
centos7 고정 ip 설정  (0) 2017.09.13
리눅스에서 tcpdump 명령어의 옵션 정리  (0) 2017.06.20
유용한 find 명령어 응용모음.  (0) 2017.06.09


 

centos 7 고정 ip 


/etc/sysconfig/network-scripts/ifcfg-xxxxx 파일

############# dhcp-config ############

#TYPE=Ethernet

#BOOTPROTO=dhcp

#DEFROUTE=yes

#PEERDNS=yes

#PEERROUTES=yes

#IPV4_FAILURE_FATAL=no

#IPV6INIT=yes

#IPV6_AUTOCONF=yes

#IPV6_DEFROUTE=yes

#IPV6_PEERDNS=yes

#IPV6_PEERROUTES=yes

#IPV6_FAILURE_FATAL=no

#NAME=eno16777736

#UUID=d41562bc-ed43-4426-b395-e519468318a1

#DEVICE=eno16777736

#ONBOOT=yes


############### static-config #######

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

NAME=eno16777736

UUID=xxxxxxxxxxxxxxxxxxxxxxxxxx

DEVICE=eno16777736

ONBOOT=yes

IPADDR=192.168.233.xxx

NETMASK=255.255.255.0

GATEWAY=xxx.xxx.xxx.x

DNS1=168.126.63.1

DNS2=8.8.8.8

USERCTL=no

NM_CONTROLLED=yes




HWADDR=xx:xx:xx:xx:xx:xx : 맥주소 입력

TYPE= Ethernet : 이더넷 인터페이스의 종류

BOOTPROTO=static : ip할당 방식

static : 고정 아이피 할당

dhcp : 유동 아이피 할당

bootp : dhcp 이전에 사용하던 방식

none : 사용안함

DEFROUTE=yes : 디폴트라우트 사용 여부

PEERDNS=yes : dhcp 서버의 dns정보를 /etc/resolv.conf에 저장 여부

PEERROUTES=yes : dhcp 서버의 라우터 정보를 /etc/sysconfig/network에 저장 여부

IPV4_FAILURE_FATAL=yes : 설정이 잘 안됬을 때 IPv6 사용 여부(yes면 사용하지 않고 no면 사용)

IPV6INIT=yes : IPv6 사용 여부

NAME=enp0s3 : GUI 네트워크 설정 때 보이는 NIC 이름

ONBOOT=yes : 부팅시 자동 활성화 여부

BROADCAST= : 브로드캐스트 주소

IPADDR= : 아이피주소

NETMASK= : 넷마스크 주소

NETWORK= : 네트워크 주소

GATEWAY= : 게이트웨이 주소

DNS1= : DNS주소

DNS2= : DNS주소

USERCTL=no : 일반 사용자가 수정 할 수 있는지에 대한 여부

NM_CONTROLLED=yes : 네트워크 관리도구사용 여부



출처: http://flyyunha.tistory.com/entry/centos7-고정-ip-설정 [Get your Dream]

'Works > CentOS' 카테고리의 다른 글

dig 개념 및 사용법  (0) 2017.11.01
크론테이블에 등록 : crontab -e  (0) 2017.09.22
centos7 고정 ip 설정  (0) 2017.09.13
리눅스에서 tcpdump 명령어의 옵션 정리  (0) 2017.06.20
유용한 find 명령어 응용모음.  (0) 2017.06.09
useradd와 여러가지 설정들  (0) 2017.06.08


tcpdump 명령어 사용법



ㅁ 기본 옵션들


# tcpdump [ -AdDefIKlLnNOpqRStuUvxX ][ -B buffer_size ][ -c count ][ -C file_size ][ -G rotate_seconds ][ -F file ][ -i interface ][ -m module ][ -M secret ][ -r file ][ -s snaplen ][ -T type ][ -w file ][ -W filecount ][ -E spi@ipaddr algo:secret,... ][ -y datalinktype ][ -z postrotate-command ][ -Z user ]


ㅁ 각종 예제


# tcpdump -i eth0 => 인터페이스 eth0 을 보여줌

# tcpdump -w tcpdump.log => 결과를 파일로 저장, txt 가 아닌 bin 형식으로 저장됨

# tcpdump -r tcpdump.log => 저장한 파일을 읽음

# tcpdump -i eth0 -c 10 => 카운터 10개만 보여줌

# tcpdump -i eth0 tcp port 80 => tcp 80 포트로 통신하는 패킷 보여줌

# tcpdump -i eth0 tcp port 80 => tcp 80 포트로 통신하는 패킷 보여줌

# tcpdump -i eth0 src 192.168.0.1 => source ip 가 이것인 패킷 보여줌

# tcpdump -i eth0 dst 192.168.0.1 => dest ip 가 이것인 패킷 보여줌


* and 옵션으로 여러가지 조건의 조합 가능

# tcpdump -i eth0 src 192.168.0.1 and tcp port 80 => source ip 가 이것이면서 tcp port 80 인 패킷 보여줌


# tcpdump -i eth0 dst 192.168.0.1 => dest ip 가 이것인 패킷 보여줌

# tcpdump host 192.168.0.1 => host 를 지정하면, 이 ip 로 들어오거가 나가는 양방향 패킷 모두 보여줌

# tcpdump src 192.168.0.1 => host 중에서 src 가 이것인것 만 지정

# tcpdump dst 192.168.0.1 => host 중에서 dst 가 이것인것 만 지정

# tcpdump net 192.168.0.1/24 => CIDR 포맷으로 지정할 수 있다.

# tcpdump tcp => TCP 인것만

# tcpdump udp => UDP 인것만

# tcpdump port 3389 => 포트 양뱡항으로 이것인 것.

# tcpdump src port 3389 => src 포트가 이것인 것.

# tcpdump dst port 3389 => dst 포트가 이것인 것.


* combine : and ( && ) , or ( || ) , not ( ! ) 으로 여러가지를 조합해서 사용 가능

# tcpdump udp and src port 53 => UDP 이고 src 포트가 53 인 것

# tcpdump src x.x.x.x and not dst port 22 => src ip 가 x.x.x.x 이고 dst 포트가 22 가 아닌 것


* grouping : ( )

# tcpdump 'src x.x.x.x and ( dst port 3389 or 22 )' => src ip 가 x.x.x.x 이고 ( dst 포트가 3389 또는 22 ) 인 것  ==> 여기서는 ' ' 가 반드시 있어야 한다.

[출처] http://moyaria.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-tcpdump-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%9D%98-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC


1. UID 로 된 uid 를 다른 계정명과 그룹명으로 변경

find /home -uid UID -exec chown 계정명:그룹명 {} \;

ex) find /home/apple -uid 500 -exec chown apple:users {} \;

예제 해설) /home/apple 하위 경로에 있는 모든 파일 및 디렉토리에 대해서 uid 가 500 인 것을

uid : apple 과 gid : users 로 변경해라


2. 현재 경로의 모든 파일에 대해 내용검색을 하여 keyword 라는 패턴을 new_keyword로 치환

find ./ -exec perl -pi -e 's/keyword/new_keyword/g' {} \;

ex) find ./*.php -exec perl -pi -e 's/abc.com/abc.kr/g' {} \;

예제 해설) 현재 경로 (하위 포함) 의 모든 php 파일에 포함된 abc.com 이라는 패턴을 abc.kr 로 치환해라


# vi /etc/default/useradd (또는 useradd -D로 출력가능)

# useradd defaults file
# 기본적으로 생성되는 신규사용자가 기본적으로 속해지는 그룹, 이 그룹은 useradd -g로 지정하는 로그인그룹(또는 이니셜그룹)을 의미하는 것이 아니라, useradd -G로 지정되는 부차적인 그룹(2차 그룹)을 의미한다. 기본값인 100은 GID를 의미하며, 신규로 생성되는 사용자는 GID가 100인 users 그룹에 속하게 된다. (신규로 생성되는 사용자는 이 설정에 따라 무조건 users 그룹을 2차그룹으로 가지게 된다) 하지만 배포판에 따라 이 설정이 무시되는 경우도 있음(-g, -G 등으로 직접 명시해야 속하는 경우)
GROUP=100

# 기본적으로 생성할 신규사용자의 홈디렉토리 생성의 위치를 결정한다. 기본값인 /home은 /home 아래에 신규유저의 이름으로 신규유저의 홈 디렉토리를 생성토록 한다. useradd -d로 임의의 위치를 지정할 수 있다.
HOME=/home

# 패스워드의 유효기간이 만료 후 계정이 비활성화 되기 까지의 기간(number of days). 0은 패쓰워드가 만료되면 바로 계정이 비활성화 되어 사용할 수 없게 한다. -1은 이 기능을 사용하지 않음. useradd -f로 임의의 값을 넣을 수 있다.
INACTIVE=-1

# 계정의 사용기간을 지정한다. 이 날짜가 지나면 계정으로 로그인이 불가능 하다. 입력형식은 YYYY-MM-DD이며 기본값인  blank는 계정의 만료일을 정하지 않음을 의미한다. useradd -e로 임의의 값을 넣을 수 있다.
EXPIRE=

# 기본적으로 사용할 쉘을 지정함. 사용할 수 있는 쉘의 목록은 /etc/shells에서 확인 가능하다. useradd -s 로 원하는 쉘을 선택할 수 있다.
SHELL=/bin/bash

# 기본적으로 복사해 올 환경설정 파일의 위치를 지정한다. 새로운 사용자가 생성되면 /etc/skel 에 있는 환경설정 파일을 복사해온다.(.bash_profile, .bashrc 등) useradd -m -k 로 임의의 환경설정을 복사해 올 수 있다.
SKEL=/etc/skel

useradd 명령을 옵션 없이 실행하였을 경우에 이 파일의 내용이 모두 그대로 적용이 된다. 하지만 useradd의 각 옵션들을 사용하면 이 옵션들이 우선 적용되어 이 파일의 내용은 무시된다.

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

# vi /etc/login.defs

# 패쓰워드의 유효기간을 정의. 패쓰워드를 변경하지 않고 로그인 할 수 있는 최대기간
PASS_MAX_DAYS 99999

# 패쓰워드 변경 후 재 변경까지 필요한 최소 날 수. 이 기간이 지정되면 패쓰워드 변경 후에 일정기간 동안에는 패쓰워드를 변경하지 못함. (You must wait longer to change your password)
PASS_MIN_DAYS 0

# 최소한 패쓰워드의 문자 수
PASS_MIN_LEN  5

# 패쓰워드 유효기한 전에 변경 알림 메세지를 출력하는 날의 수
PASS_WARN_AGE 7

# UID의 시작값
UID_MIN       500

# UID의 종료값
UID_MAX     60000

# GID의 시작값
GID_MIN       500

# GID의 종료값
GID_MAX     60000

# 생성되는 사용자의 홈 디렉토리의 퍼미션을 결정하는 UMASK 값
UMASK    066

(오직 홈 디렉토리 퍼미션만을 결정하는 UMASK 값이며, 로그인 후 적용되는 UMASK는 .bashrc에서 결정)

참고)

데비안 패키지 (우분투 등)에서는  adduser로 생성되는 계정의 홈 디렉토리의 퍼미션은  /etc/adduser.conf 에서  DIR_MODE에서 지정한 퍼미션으로 설정됩니다. 예를 들어  DIR_MODE=0700 으로 하면 700 퍼미션으로 신규 사용자의 홈디렉토리가 생성이 되지요.
하지만 래드햇 계열에서는 adduser도 /etc/login.defs파일을 참조합니다.

즉 데비안 패키지에서 생성되는 홈 디렉토리의 퍼미션은
* useradd로 사용자를 생성할 경우 /etc/login.defs에서 UMASK 값 으로 사용자의 홈 디렉토리의 퍼미션이 결정됩니다.
* adduser로 사용자를 생성할 경우 /etc/adduser.conf에서 DIR_MODE=퍼미션 으로 사용자의 홈 디렉토리의 퍼미션이 결정됩니다.

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

# vi /etc/passwd
사용자명 : useradd [name] / usermod -l new_name [name]
password : pwconv --> /etc/shadow
UID : useradd -u / usermod -u
GID : useradd -g / usermod -g
comments : useradd -c / usermod -c 등으로 부가정보를 추가하면 여기에 기록됨
홈디렉토리 : /etc/default/useradd 의 HOME 또는 useradd -d / usermod -d
로그인 쉘 : /etc/default/useradd 의 SHELL 또는 useradd -s / usermod -s

ruset : x : 512 : 512 : : /home/ruset : /bin/bash

# vi /etc/shadow
사용자명 : useradd [name] / usermod -l new_name [name]
암호화된 password (by md5) : passwd [name]
변경일 수 count (from 1970.1.1) : passwd를 실행한 일을 1970년 1월 1일로 부터 몇 일이 경과 되었는지 나타냄.
PASS_MIN_DAYS : /etc/login.defs 에서 정의
PASS_MAX_DAYS : /etc/login.defs 에서 정의
PASS_WARN_AGE : /etc/login.defs 에서 정의
INACTIVE : /etc/default/useradd 의 INACTIVE 또는 useradd -f / usermod -f / chage -I
EXPIRE : /etc/default/useradd 의 EXPIRE 또는 useradd -e / usermod -e
Reserved : 예약공간

ruset : $1$liU69g8r$L3q1Rr3XcZ58E8RX4RHeS1 : 13616 : 0 : 99999 : 7 : : :

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

# useradd
-u : uid 지정
-g : 로그인 그룹(이니셜 그룹)의 gid 또는 그룹명을 지정 (1개의 그룹만 지정가능)
-G : 부가그룹 (2차그룹)의 GID 또는 그룹명을 지정 (다수의 그룹을 지정가능)
-e : 계정의 사용기한을 지정(이 날이 지나면 로그인 불가)
-f : 패스워드가 만료된 후에 계정이 비활성화되기까지의 기간을 설정한다. 0은 패스워드 만료 후에 바로 계정이 비활성화 된다. (-1은 이 기능을 사용치 않음)
-m -k :   -m 옵션은 신규유저의 홈 디렉토리가 존재하지 않는다면 사용자의 홈을 생성하고, -k 옵션으로 지정한 디렉토리내의 파일들을 신규유저의 홈 디렉토리로 복사한다. (만약  -k 옵션을 생략시 자동적으로 /etc/skel에 있는 파일을 복사한다) -k 옵션은 -m과 함께만 사용할 수 있다. (-k 옵션은 단독으로 사용이 불가능)
-d : 사용자의 홈 디렉토리를 지정함.
-s : 사용자의 로그인 쉘을 지정
-o : 이미 존재하는 UID와 GID를 갖게 함. (duplicate (non-unique) UID)
-p : 패스워드를 지정



출처: http://psman2.tistory.com/entry/useradd와-여러가지-설정들 [R.U Ready?]