웹마스터 팁

리눅스 시스템관리 고급 명령어

2002.11.16 14:53

정인배

시스템 관련 고급 명령어 들은 시스템의 상세 정보를 알려주기 때문에 보안 문제를 일으킬 수 있습니다. 따라서 적절한 퍼미션으로 바꾸어 주는 것이 좋습니다. 그리고 여기에 나타낸것 이외에 다양한 옵션이 있습니다.
(자세한 옵션의 한글 설명은 한글문서 프로젝트 사이트 http://kldp.org 에서 찾으면 됩니다. )
또, 보는것 보다 직접 한번씩 실행해 보면 쉽게 사용 할 수 있고 의미도 명확히 알 수 있습니다. (백견이불여일행 ^^)

(( 프로세스 확인 관련 ))

#ps -aux | more
현재 프로세스를 보여주는 명령어 입니다.
옵션  -a : 터미널에서 다른 사용자가 실행하고 있는 프로세스를 보여 줍니다.
      -u : 사용자이름,실행시간등 상세정보를 보여줍니다.
      -x : 접속해 있는 터미널 뿐만아니라 모든 프로세스를 나타 냅니다.

프로세스를 죽이는 명령어는 #kill PID 입니다. PID는 #ps 에서 나타나는 PID, 프로세스 번호 입니다.

#top
CPU 의 프로세서의 현황을 보여 줍니다. 날짜,프로세스 (갯수, CPU사용률, 메모리 사용률등)
옵션 키
space bar 화면 리프레쉬
q         top 명령종료
k         process Kill. PID 필요

(( 접속한 사용자, 사용자 정보 검색 관련 ))

#finger
지금 현재 로긴한사람들의 id 와 정보를 보여준다.
#finger id
사용자 (id) dml 상세 정보를 보여준다.

#who
터미널에 접속한 시간과 id 를 보여준다

#w
터미널에 접속한 시간, id, cpu 사용등 상세 정보를 보여준다.



(( 시스템 정보 ))
#uname -a
옵션  -a : 현재사용하고 있는 시스템에대한 모든 정보를 보여준다.

(( 파일 검색 관련 ))
#find
파일을 찾는 강력한 명령어 입니다. 단 하드 전체를 실시간 검색 하므로 검색 시간이 오래 걸립니다.

ex) php의 설정 파일이 어디 있는가 찾을 경우
#find / -name php.ini    ; 이름(name)이 php.ini인 파일을 / (루트) 부터 찾습니다.

ex) 해킹 관련 검색
#find / -nouser    ;사용자와 그룹이 없는 파일은 통상 있을수 없습니다. 이런 파일은 해커가 해킹시에
#find / -nogroup  ; 만들어논 파일들일 경우가 있습니다.

#find / -perm -4000  ; set uid 파일을 찾습니다.
; 퍼미션중에 s 가오는 파일을 set uid 파일 이라고 합니다. (이 s 의 퍼미션이 4000 입니다. )이 파일은 실행하는 사람과는 관계없이 원소유자의 권한으로 동작 합니다. 즉 root 가 소유자 이면 root의 권한으로 동작 합니다. 대표적인것이 /usr/bin/passwd 라는 명령어 인데 root 의 권한으로 암호를 변경하게 합니다.  따라서 이상한 파일에 set uid 가 걸려 있으면 해킹이 아닌가 의심해 보아야 합니다.

#find / -perm -1000
또 해커는 sticky bit 를 이용해서 파일을 쉽게 지울수 없도록 장난을 쳐 놓기도 합니다. 이것은 ls -l 로 볼때 T(x, 즉 실행권한이 없을경우) 또는 t(실행권한이 있을경우) 두가지로 나타납니다. 대표적인 것이 임시 디렉토리인 /tmp 입니다. 이 스티키 비트의 퍼미션이 1000 입니다. 따라서 이상한 파일에 스티키 비트가 있으면 의심해 보아야 합니다.

#locate
find가 HDD전체를 찾는데 비하여 locate는 데이터베이스에서 찾으며( /var/lib/locatedb ), 이 DB 는 (보통) cron 데몬에의하 하루 한번씩 갱신 됩니다. 따라서 HDD전체를 뒤지는 find보다 검색 속도가 빠르나 최신 정보가 아닐수도 있습니다.

#file
리눅스에는 윈도우처럼 확장자가 필수가 아니기때문에 확장자가 없는경우 어떤 파일인지 애매할 경우가 많습니다.  
ex) #file httpd.conf

#tree
디렉토리 목록을 tree (나무)형태로 출력 합니다.

(( 로그 검색 관련 ))

#last
최근에 접속한 사용자의 이름, 접속시간, 접속 IP 등을 /var/log/wtemp 파일에서 검색해서 보여준다.
( **. /var/log/wtemp 는 시스템로그 파일로 text 형태가 아니라서 vi 등으로는 내용을 제대로 알수 없다.)

#head -n 20 /var/log/messges
#tail  -n 20 /var/log/httpd/mywebsite-error.log
#tail  -f /var/log/messages
옵션  -n 라인수
      -f 파일에 추가된내용만 보여 줍니다. ( 로그 검색시 유용. 계속 뒤에 바뀌는 내용을 보여줌 )
head ,tail 은 해당 파일의 앞(head), 뒤(tail) 의 10줄만 출력해 주는 명령입니다. messages 같은 시스템로그 또는 웹로그 파일은 큰 사이즈의 파일을 뒷부분만 볼때 사용하면 유용 합니다.

#dmesg
시스템이 부팅할때 보여주는 메세지를 확인 할때 사용 합니다. 시스템 부팅시 하드웨어를 인식하는 과정이 들어있으므로 메인보드의 호환성유무, 듀얼CPU , Scsi 장비 , LAN 카드 등의 인식 문제를 확인 할 수 있습니다.

#history
사용자가 지금까지 입력했던 명령어들을 차례대로 보여줍니다. (위 화살표를 이용해서 전 명령어를  볼수도 있지만) history는 명령어 앞에 나타난 숫자를 !(숫자) 를 이용해서 바로 재실행 할 수 있어서 편리 합니다.  

<< 명령어 예약 >>
#at
일정 시간이 지난후에 명령어를 실행 시깁니다. 따라서 자리를 비우고 30분후에 시스템을 다운 시킨다든지 하는 등 명령어에 타이머를 달수 있습니다.
옵션  -l        at queue 를 보여 줍니다.
      -d 번호  queue 에서 삭제 합니다.  즉 예약 명령 취소

ex)  10:20 분에 시스템을 정지 하는 것을 예약하고 싶은 경우
#at 10:20           ; 10:20 분을 줍니다.
at>halt             ; 프롬프트가 at>로 바뀌면, halt 명령을 예약합니다. .
ctrl-D              ; ctrl+D 로 빠져나옵니다. ( ctrl-C, ctrl-Z 로 빠져나오면 예약이 안 됩니다.  )
#
관련 명령 : #atq 큐에 예약된 작업을 보여 줍니다. ( at -l 옵션과 동일 )

제목 글쓴이 날짜
cron과 rsync 그리고 replication 을 이용한 데이터 백업 [3] 최종우 2002.12.03
cron을 이용한 자동 백업 받기 최종우 2002.12.02
리눅스 보안 : 기초적인 방화벽 : portsentry 설치하기 [2] 정인배 2002.11.29
[FreeBSD] qmail+mysql+vpopmail+qmailadmin 설치 [1] DeX™ 2002.11.26
[FreeBSD] bind를 몰아낼 djbdns 설치하기 [5] DeX™ 2002.11.26
Apache + PHP + Mysql확실한 연동 및 리눅스 재설치 정보 [2] file 최종우 2002.11.26
리눅스 mysql 사용자 계정주기/삭제하기 [4] 정인배 2002.11.22
리눅스 서버를 구축해 보자! #2 [5] 꼬토 2002.11.22
리눅스 서버를 구축해 보자! #1 [11] 꼬토 2002.11.21
리눅스(레드헷8.0 배포판 기준) 처음 설치하시는 분들을 위한 apm 초간단 팁 [8] 김종환 2002.11.17
리눅스 시스템관리 고급 명령어 정인배 2002.11.16
ab 를 이용한 간편한 아파치 성능 측정 [2] 정인배 2002.11.15
윈xp pro 를 net 서버로 바꾸기 [7] file 정회철 2002.11.13
[Lindox] 설치 강좌 쓸때 유용한 명령어 [4] NeSTY♨™ 2002.11.05
[기초] 퍼미션 값에 대해서 [4] NeST™y 2002.11.05
[Lindox] 실수로 기본 명령어삭제시 강제 복구하기 NeSTY♨™ 2002.11.05
[Lindox] 가상콘솔 줄여서 메모리 절약하기.. NeSTY♨™ 2002.11.05
[기초]커널 2.4.x, quota 셋팅법 NeST™y 2002.11.05
사용자 자동 등록 쉘스크립트 [1] 편리 2002.11.05
OpenBSD3.2 설치가이드 - 완결 [3] pravda 2002.11.02