WeakNet Linux Version 2.0 Final 소개

Posted at 2009/07/02 11:52 // in ETC // by 엔신
WeakNet Labs에서 제작된 Live CD 형태의 Ubuntu 8.04 기반의 라이브 리눅스입니다. 일반적으로 pen test 함에 있어서 많은 유저들이 Backtrack을 사용하고 있는 실정입니다.(국내 상황). 그러나, 꼭 Backtrack만 써야할 이유는 없겠지요?

WNLV 2.0은 무료로 다운로드 받을 수 있으며, 25$를 기부하면 WNLA v2가 설치된 4GB 플래시 드라이브를 받을 수 있습니다.(이 부분은 국내에도 적용이 가능할지는 모르겠습니다. 배송비...ㅎㄷㄷ) 또한 기부금은 아프리카 우간다의 아이들에게 음식뿐만 아니라 컴퓨터 장비를 제공하는데 사용됩니다.

http://weaknetlabs.com/linux/ 에 접속하여 보면 주문되어진 USB 드라이브 개수가 나오고, 그 금액을 통해 몇명의 아이들을 도울 수 있는지 나옵니다.

아래는 스크린샷입니다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


사용된 프로그램들은 Perl, Perl Tk, PHP/MySQL 만들어진 코드입니다.
주요 특징은 아래와 같습니다.

[ >> ] 1337tool - dashboard to all WNL coded tools.
- WHP v4.1 - Web Hacking Portal, a web interface with mostly PHP to a few security tools.
- Catchme-NG v3.0 Web - A MAC address sniffer used in conjunction with a csv output file from a wireless sniffing utility.
- WardriveSQL - Wardrive utility coded with Perl and PHP to display results using MySQL server right from the Live Disk.
- Perlwd - Unix MD5 Password cracking utility - Perl proof-of-concept.
- Tartarus - HTTP authentication cracking utility written by ataxicwolf
- NetGh0st (ngh0st) - Network Administrator Shell.
- Perly Blue Box - Perl TK written Blue Box application for seizing and utilizing ProjectMF enabled Asterisk machines.
- MailSpoof LIVE! - Email spoofing utility which utilizes the SMTP server configured OOTB with the live disk.
- BruWRT F0RSSE - WRT54g password brute forcing utility.
- pM0n - Perl coded system administrator utility.
- RFInder - Proof of concept Google Dork finder for "Remote File Inclusion" vulnerabilities.
- YouTube-Thief! - Proof-of-concept YouTube Video saving utility, for backing up lost uploaded videos.
- USHlogger - SSH keystroke logger, that can be used as a virus to spread across inter-connected machines.

[ >> ] Security Other Security Tools

- Metasploit Suite - Exploitation Tool suite with command line options, shell, and Web interface
- Fast|Track Web Suite - Web Interface for Metasploit and fasttrack.py
- Nessus - Security Auditing tool
- Nikto - Web server security auditing tool written in Perl
- Wifizoo - Wireless Cookie Sniffer (for unencrypted packets)
- Aircrack-ng - Wireless penetration testing suite
- SSLDump - Packet decrypting using a web certificate as a "key"
- TCPDump - Packet sniffer
- Dsniff - Man in the Middle security attack suite
- Ettercap-GTK - Packet manipulation / Network security Tool
- Wireshark - Packet analyzation tool
- AirPWN - Packet Manipulation on unencrypted networks
- John the Ripper - MD5 Password cracker
- Sleuth Kit - Forensics
- Autopsy - Forensics
- Foremost - Forensics
- Scalpel - Forensics
- NMAP - Network Port Mapping Utility
- and much more.

default 관리 암호는 아래와 같습니다.

Login = assistant (always the same)
Sudo passwd = weaknet
Su password = weaknet2
Services Passwd's = weaknet (e.g. MySQL)

다운로드하기 위해서는 http://weaknetlabs.com/linux/ 에 접속하셔서 하단으로 가시면 됩니다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/07/02 11:52 2009/07/02 11:52

ubuntu 9.04에 IE6으로 AxtiveX 이용하기

Posted at 2009/05/22 01:04 // in Linux // by 엔신
사용자 삽입 이미지
[설치하고 사용한 화면]

wine 1.0.1 + cabextract 1.2-3 + ies4linux-2.99.0.1

http://gom79.com/gom/information/3395 를 참조하여 설치하였다.

VirtualBox의 윈도우XP에서 익스플로러를 사용하였으나, VirtualBox의 NAT 네트워크는 다운로드는 괜찮게 나오지만, 업로드가 3kbps가 나와서 어쩔 수 없이 wine과 ies4linux를 설치하게 되었다. 또 다른 이유는 간단하게 IE만 사용하여야 하는 상황인데 VirtualBox를 사용하니 안그래도 여름이라 날이 더워지고 있는데 노트북이 열을 많이 받아서 트북이 자극을 자제시켜 주고 싶었다.
NAT 네트워크 사용시 Upload 속도 저하 문제가 어서 빨리 해결되었으면 좋겠다.

/home/사용자계정/에 다운로드 받아서 압축을 풀었다.
sudo apt-get install wine cabextract
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux
GUI 창이 뜨고 확인만 눌러서 설치하면 된다고 하는데, 파이썬 관련 오류가 나오길래
README 파일을 참조하여 CUI 모드로 설치를 하였더니 정상 설치가 되었다.
./ies4linux --no-gui
그랬더니 /home/사용자계정/bin/ie6이라는 심볼릭링크가 생성이 되었다.
원경로는 /home/사용자계정/.ies4linux/bin/ie6이었다.
/home/사용자계정/.ies4linux/ie6/drive_c
경로로 들어가면 windows와 programe files 디렉토리가 존재하여 ActiveX 설치나 프로그램 설치시 설치 가능하도록 되어져 있었다.

문제점
1. 인터넷 접속시 플래시를 설치할 수 있는 창이 나오게 된다. 정상적으로 설치가 잘 되지만 플래시가 계속 깜빡깜빡거려서 눈이 아프다.
2. ActiveX 설치를 시도하는 사이트의 경우 ie6linux 프로그램이 10초정도 다운되어진다. 그러나, 다운되었다고 창 막 누르고 그러지 말고, 다른 작업 10초정도 해주고 창을 돌아보면 설치 화면이 떠져 있으니 침착하게 설치하면 된다.
3. 일부분 한글 폰트가 깨진다.(이 부분은 폰트 관련 설정을 좀 더 해보면 해결될지도 모르지만 그정도로 ie6 쓸일 없음)

문제점이 있기는 하지만, 내가 필요한 작업(ActiveX이용)이 되므로 사용할 것이다.

이올린에 북마크하기
2009/05/22 01:04 2009/05/22 01:04

파일내 문자열 검색

Posted at 2008/03/15 10:20 // in Linux // by 엔신
파일명의 확장자 txt를 포함하는 파일들을 현재 디렉토리에서 찾아서 내용중에서 "홍길동"이 있는 파일의 내용은 모두 보여준다.
find . -name "*.txt" | xargs grep 홍길동

파일명의 확장자 txt를 포함하는 파일들을 현재 디렉토리에서 찾아서 내용중에서 "홍길동"이 있는 파일의 이름을 보여준다.
find . -name "*.txt" | xargs grep -l 홍길동

리눅스 파일에 특정 문자열 치환 하기
find ./ -name "*.jsp" -exec perl -pi -e 's/기존문자열/바꿀문자열/g' {} \;

http://www.ihave.kr/bbs/view.php?id=board&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=14
이올린에 북마크하기
2008/03/15 10:20 2008/03/15 10:20

리눅스 시간동기화 rdate

Posted at 2008/02/28 09:58 // in Linux // by 엔신

스크립트 내용
본 스크립트는 시스템의 시간을 맞추는 스크립트 입니다.
rdate 명령어를 이용해 시간을 맞춥니다.

#!/bin/sh
export PATH=/bin:/usr/bin:/sbin:/usr/sbin

rdate -p -s time.nuri.net > /dev/null 2> /dev/null
if [ "$?" -ne 0 ] then
 rdate -p -s time.bora.net > /dev/null
fi
clock -a

/////////////////////////////////////////////////////////////////////////

리눅스 시스템 시간동기화 하기 ( rdate, ntp )

시간동기화에 대해서 가끔 중요성을 상실할때가 너무많다.
심하게 둔한 관리자는 몇주, 몇달후 날짜가 안맞다는 고객의 제보로 수정 경우도...
저같은 경우는 시스템 설치직후 이 작업부터 시행합니다 ^^;

1. rdate 를 이용한 동기화
    - 레드햇계열 및 여타 배포판에서도 별도의 설치과정필요없이 사용할수있다.
 
    쉘스크립파일을 하나 작성한다.
    ex) time-sync.cron ---------------------------
    #!/bin/bash
    /usr/bin/rdate -s time.bora.net && /sbin/clock -w
    --------------------------------------------- 
    저장후 실행권한 부여
    #chmod 755 time-sync.cron
    작성한 파일을  /etc/cron.daily 로 복사 ( 일일 새벽 4시에 동기화 스크립트를 수행함 )

2. ntp 를 이용한 동기화
   - rdate 를 이용한 방법보다 소수점 몇몇점이하까지 상세히 동기화해준다고해서 애용중;
    #rpm -qa | grep ntp 명령으로 "ntp-버젼" 이 출력되지않으면
    http://rpmfind.net 에서 "ntp" 로 검색해서 배포판에 해당하는 패키지를 설치한다
   ex1)
   OS : Fedora Core 3
   #wget ftp://rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/ntp-4.2.0.a.20040617-4.i386.rpm
   #rpm -Uvh ntp-4.2.0.a.20040617-4.i386.rpm
   ex2)
   #rpm -Uvh ftp://rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/ntp-4.2.0.a.20040617-4.i386.rpm

 - 동기화
  #ntpdate -b -s time.kriss.re.kr
  // -s : 결과를 화면이 아닌 syslog 로 보냄

   * 다음과 같은 오류가 발생한 경우
 [root@truefeel root]# ntpdate -b time.kriss.re.kr
 17 Mar 21:03:25 ntpdate[8244]: no server suitable for synchronization found

  
 -> NTP 프로토콜은 UDP port 123 을 사용하는데, 이 포트가 방화벽 등으로
    막혀있는 경우에는
    #ntpdate -u time.kriss.re.kr
    처럼 -u 를 옵션을 사용해서 다른 포트 사용하거나
          IPTABLE 을 사용중이면 OUTBOUNT UDP 123 포트를 열어준다

  - cron.daily 에 등록 ( 쉘스크립트 파일 작성 )
      ex) time-sync.ntp ---------------------------
      #!/bin/bash
      /usr/sbin/ntpdate -b -s time.kriss.re.kr && /sbin/clock -w
      ---------------------------------------------

      저장후 실행권한 부여
      #chmod 755 time-sync.ntp
      작성한 파일을  /etc/cron.daily 로 복사 ( 일일 새벽 4시에 동기화 스크립트를 수행함 )

 출처 리눅스 시스템 시간동기화 하기 ( rdate, ntp )|작성자 짱동이

www.kriss.re.kr
한국표준과학연구소이니까 표준이라고 봐야 할까나

이올린에 북마크하기
2008/02/28 09:58 2008/02/28 09:58

yum이란?

Posted at 2008/02/24 22:42 // in Linux // by 엔신
Yum: Yellowdog Updater, Modified
Yum은 설치시 간편함뿐만 아니라, 추후 관리하기도 용의하다는 점.
컴파일은 최후의 보루로 생각하자.(오늘의 컴파일 삽질을 잊지 않으리)

Yum은 rpm기반의 시스템을 위한 자동 업데이터이자 패키지 설치/삭제도구입니다. Yum은 자동적으로 의존성을 처리해주며 rpm 패키지들을 안전하게 설치, 삭제 및 업데이트하기 위해 반드시 해야할 일들을 스스로 해결합니다. 또한 Yum은 이미 설치되었거나 혹은 저장소에 설치가능한 패키지에 관한 정보를 효율적이고 쉽게 검색해옵니다. Yum은 rpm이나 다른 도구들처럼 일일이 수동으로 업데이트할 필요가 없으므로 수 많은 시스템들을 더욱 관리하기 쉽게 해줍니다. 한 조직 전체를 통괄하는 규모를 단지 한 두 명만으로 중앙집중적인 패키지 관리를 할 수 있도록, 패키지 그룹, 다수의 저장소, 대체 저장소 및 그 이상을 Yum이 관리해줍니다. 꼭 기억해 두세요! 이 HOWTO는 Yum의 초기 pre-release 개발 동안은 전적으로 유동적인 상태에 있습니다. 많은 섹션들이 비어있으며, 어떤 것들은 틀리기도하며, 모두가 과도기적 구성 상태에 있습니다. 그럼에도 불구하고, 저는 이 문서의 어떤 스냅샷이든 거기에 기반한 어느 누구로부터의 의견도 소중히 합니다.

* 사용법

Yum은 콘솔기반의 업데이트 프로그램으로, GUI환경에서라면 '한텀'이나 'Konsole'등을 먼저 실행시킨 후, 작업해야 한다.

# yum


1. 업데이트 목록 확인.

현재 업데이트 서버에 올라와 있는 패키지의 목록은 check-update 옵션으로 확인할 수 있다.

# yum check-update

단, check-update의 경우 현재 시스템에 설치된 패키지를 기준으로 업데이트 목록을 출력해주기 때문에 시스템에 설치되지 않은 패키지 목록은 볼 수 없다.
이들 목록은 list 명령을 사용한다.

# yum list


추가적으로 현재 클라이언트 시스템에 설치된 모든 패키지 목록은 다음으로 확인한다.

# yum list installed


2. 업데이트


Yum에는 update와 install 이라는 두가지 설치 모드를 가지고 있다.

update는 말 그대로 업데이트 된 패키지를 설치하는 것으로, 기본적으로는 업데이트 된 모든 패키지를 설치하게 되는데, 일부만을 업데이트 하고자 한다면 직접 지정하여 설치하면 된다.

# yum update [package1] [package2] [...]

install은 현재 클라이언트 시스템에 설치되지 않은 패키지를 설치할 때 사용한다.

# yum install package1 [package2] [...]


3. 패키지 제거

# yum remove package1 [package2] [...]


4. 패키지 정보 보기

# yum info packages1

업데이트 서버에 있는 패키지 정보 보기

# yum info updates


* Quick Reference

1. 업데이트 목록 확인
# yum check-update

2. 패키지 설치
# yum update [package1]

3. 설치된 패키지 확인
# yum list installed



* 기타 정보

Yum 설정 파일은 /etc/yum.conf 에 있다.
패키지는 설치되기 전에 /var/cache/yum에 다운로드 된다.


http://wiki.kldp.org/wiki.php/Yum-HOWTO
http://4ellene.net/tt/tag/yum
http://b.mytears.org/2008/02/627

이올린에 북마크하기
2008/02/24 22:42 2008/02/24 22:42

삭제 파일 복구하기 debugfs

Posted at 2008/02/23 13:36 // in Linux // by 엔신
아래에용은 kldp.org 에서도 발견할 수 있음
여기 수록된 내용은 woogi 라는 닉네임 사용자가 oops.org에 올린 내용

----------------------------------------------------------------------
리눅스에서의 파일 삭제는 신중을 기해야 한다. 왜냐면 삭제된 파일은 복구
할 수 없기 때문이다. 이것이 정석이였습니다.

물론 rm 의 소프트링크나 다른 삭제 프로그램으로 대체하는 프로그램들도 있습
니다만 rm 자체의 복구는 없다고 알고 있으신 분들이 대부분 일 겁니다.

해답은

debugfs 라는 명령어 입니다. (man page 참조)

실제 사용예를 들어 설명하겠습니다.

가정1) /home/pds/portsentry.tar.gz 라는 파일이 있음.
가정2) /home 파티션은 hda8 입니다. (df -h 로 확인)
가정3) rm -f /home/pds/portsentry.tar.gz 명령으로 지웠음.
가정4) root 로 작업.

복구 절차.

1. #debugfs /dev/hda8

=> 설명 : hda8 파티션에 대해서 검사를 한다.

2. debugfs:

=> 대기상태를 뜻함. 이곳에서 lsdel 을 입력하고 엔터.
계속...

debugfs: lsdel
99 deleted inodes found.
 Inode  Owner  Mode    Size    Blocks    Time deleted
108123      0 100644    239    1/   1 Thu Jan  3 01:25:33 2002
 18417      0 100644 426625  420/ 420 Thu Jan  3 01:26:34 2002
 45007      0 100644    343    1/   1 Thu Jan  3 01:29:59 2002
 28691      0 100400    879    1/   1 Thu Jan  3 01:38:29 2002
 18394      0  40755      0    1/   1 Thu Jan  3 01:58:54 2002
  ..
  .
 14356      0 100644   2325    3/   3 Fri Jan 25 16:13:24 2002
 61239      0 100644  43034   44/  44 Fri Jan 25 16:13:31 2002
debugfs: 

위와 같은 상태로 나오고 다시 대기상태로 됩니다. 실제로는 너무 많이 나오더
군요.. (내가 그렇게 많이 지웠었나? '.'a)

이제 이 목록중에서 하나를 선택해서 살려야 합니다. 다행히도 살리고자 하는
파일은 가장 최근에 지운 파일이므로 가장 아래쪽에 있는 것이겠죠.

debugfs: dump <61239> /home/debugfs/portsentry.tar.gz

=> Inode 값을 <> 안에 적어줍니다. 뒤에는 복구할 파일 이름을 적어주시면 됩
니다.
=> 복구할 파일은 다른 디렉토리로 지정해 주시는게 좋습니다. 별 상관은 없지
만...

#cd /home/debugfs
#tar -zxvf portsentry.tar.gz  // 정상적으로 압축이 풀리더군요.

=> 아주 훌륭하게 복구가 되었더군요. ^^v

임의로 portsentry.tar.gz 를 지워서 테스트를 한 것입니다.

debugfs:  상태에서 사용할 수 있는 명령어는 help 를 쳐보면 알 수 있습니다.
끝내는 것은 q, quit 입니다.



아래는 debugfs: 에서 사용가능한 명령어들 입니다.
---------------------------------------------------------------------

Available debugfs requests:

show_debugfs_params, params
                         Show debugfs parameters
open_filesys, open       Open a filesystem
close_filesys, close     Close the filesystem
feature, features        Set/print superblock features
dirty_filesys, dirty     Mark the filesystem as dirty
init_filesys             Initalize a filesystem (DESTROYS DATA)
show_super_stats, stats  Show superblock statistics
ncheck                   Do inode->name translation
icheck                   Do block->inode translation
change_root_directory, chroot
                         Change root directory
change_working_directory, cd
                         Change working directory
list_directory, ls       List directory
show_inode_info, stat    Show inode information
link, ln                 Create directory link
unlink                   Delete a directory link
mkdir                    Create a directory
rmdir                    Remove a directory
rm                       Remove a file (unlink and kill_file, if
appropriate)
kill_file                Deallocate an inode and its blocks
clri                     Clear an inode's contents
freei                    Clear an inode's in-use flag
seti                     Set an inode's in-use flag
testi                    Test an inode's in-use flag
freeb                    Clear a block's in-use flag
setb                     Set a block's in-use flag
testb                    Test a block's in-use flag
modify_inode, mi         Modify an inode by structure
find_free_block, ffb     Find free block(s)
find_free_inode, ffi     Find free inode(s)
print_working_directory, pwd
                         Print current working directory
expand_dir, expand       Expand directory
mknod                    Create a special file
list_deleted_inodes, lsdel
                         List deleted inodes
write                    Copy a file from your native filesystem
dump_inode, dump         Dump an inode out to a file
cat                      Dump an inode out to stdout
lcd                      Change the current directory on your native
filesystem
rdump                    Recursively dump a directory to the native
filesystem
help                     Display info on command or topic.
list_requests, lr, ?     List available commands.
quit, q                  Leave the subsystem.






//////////////////////////////////////////////////




debugfs는 ext2 /ext3파일시스템을 디버깅하거나 복구하는 툴입니다.

하지만 아쉽게도 리눅스9이하의 시스템에서는 ext2만 지원하여 ext3 파일시스템은 logdump명령어를 사용해야 한다.

debugfs를 실행하는 방법에는 2가지가 있다.

첫뻔째 읽기전용으로 파일시스템을 여는 방법

두번째 읽기 쓰기모드로 여는 방법으로 옵션으로 -w 사용

사용방법

debugfs [블록사이즈][슈퍼블록][옵션][장치명]

# debugfs /dev/hda1       파일시스템 오픈

debugfs: ls                          파일리스트 확인

debugfs: quit                     종료


삭제된 파일 debugfs로 복구하기

# rm -f named.conf

# cd /var/

#mkdir rescue

#cd rescue

#debugfs -w /dev/hda1

debugfs:  lsdel

삭제된 파일의 inode값을 확인

debugfs:   dump <134424> /var/rescue/rescue1.file

debugfs:    quit

# ls -l

-rw-rw-r        1 root          root              32252  may   3   12:33  rescue1.file

#mv rescue.file  named.conf

#cp named.conf /etc/

삭제된 디렉토리전체 복구하기

삭제된 디렉토리를 복구하는 명령어는debugfs의 rdump명령이다.

#debugfs /dev/hda1

debugfs:   ls

삭제된 디렉토리 확인

debugfs:  rdump  network1 /var/rescue/network1

debugfs: quit

 

특정파일시스템에 존재하는 inode 상세정보 확인

debugfs: show_inode_info 파일명

슈퍼블럭 정보 확인

debugfs:stats

또는 dumpe2fs



http://www.ricky.co.kr/jsboard/read.php?table=system&no=8&page=2
http://cafe.naver.com/network1.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=606

이올린에 북마크하기
2008/02/23 13:36 2008/02/23 13:36

리눅스 기본 명령어

Posted at 2007/02/07 23:32 // in Linux // by 엔신
ls
-a: 디렉토리 내의 모든 파일 출력
-l : 파일 허용 여부, 소유자, 그룹, 크기, 날짜 등을 출력한다.
-m: 파일을 쉼표로 구분하여 가로로 출력한다.
-s : KB 단위의 파일 크기를 출력한다.
-F : 파일의 형태와 함께 출력한다.
출력되는 파일의 형태는 '*', '@', '|', '=' 등이며,
이것은 각각 실행 파일, 심볼릭 링크, FIFO 소켓을 나타낸다.
-1 : 라인당 한 파일씩 출력한다.
# ls . -Rl | gre bin | more

man ( manual )
- 주어진 명령이나 유틸리티의 매뉴얼을 출력한다.
-a : 모든 manual page를 출력
-t : groff(troff)를 사용하여 프린트를 위한 형식으로 출력
예)
ls 명령어의 도움말을 보고자 할 때- man ls

pwd
- 현재의 디렉토리가 어디인지 알려준다

grep
주어진 패턴을 포함하는 파일의 라인을 출력시킨다.
-i : 대소문자 구분하지 않는다.
-l : 일치하는 내용을 가지는 파일명만 출력한다.
-n : 일치하는 내용을 가지는 라인 번호를 출력한다.
예)
rm이라는이름이 들어간 파일을 ls중에서 찾을 때 - ls | grep rm

find
-원하는 파일을 디렉토리를 탐색하면서 지정된 조건에 만족하는 파일을 찾는다.
이름이나, 크기, 날짜, 사용자등의 조건을 지정하여 찾을 수 있다.
-name : 찾고자 하는 파일의 이름을 정하면 된다.
-perm : 파일의 권한 (permission)이 일치하는 것을 찾는다.
-user : 사용자의 ID에 따라서 검색한다.
예)
maria라는 이름을 가진 파일을 찾으려면, find -name maria
# find / -name *ls* -print | grep ls

cp
- 파일을 다른 파일 이름으로 또는 다른 디렉토리로 복사
-b : 덮어쓰거나 지울 때 백업 파일을 만든다.
-f : 같은 파일명을 갖는 파일이 있을 경우, 지운 후 복사한다.
-i : 같은 파일명을 갖는 파일이 있을 경우, 사용자 확인후 복사한다.
-l : 하드 링크를 만든다.
-s : 심볼릭 링크를 만든다.
예)
/root/trial /maria는 디렉토리로 복사
#cp /root/trial maria

mv
(move) - 파일을 다른 파일 또는 디렉토리로 옮길 때 사용
-b : 지워지기 전에 백업본을 만든다.
-i : 옮겨질 디렉토리에 존재하는 파일이 있으면 확인한다.

rm
(remove) - 파일을 지우는 명령
-f : 강제로 파일을 지울 수 있다.
-i : 지우기 전에 확인한다.
-r : 서브 디렉토리의 파일까지 지운다.

mkdir
- 디렉토리를 새로 만들 때 사용.
-p : 지정된 모든 서브 디렉토리까지 함께 생성

rmdir
- 디렉토리를 지울 때.
-p : 지우고자 하는 디렉토리의 상위 디렉토리까지 포함하여 지운다.

리디렉션 ( redirection )
- 리디렉션이란 어떤 명령을 실행한 후에 생기는 내용물을 사용자가 원하는 곳으로 출력하기 위해 만들어졌는데 표준 입력, 표준 출력, 에러 출력 등의 방향을을 다른 곳으로 바꾸는 것이다.
리디렉션의 기호는 ">"이다. 보통, ">" 을 이용하여 명령의 결과를 파일로 리디렉트시켰을 때 그 파일이 존재해 있었다면 그것을 덮어 쓴다. ">>"를 쓰면 파일을 덧붙여 쓰게 된다.
예)
만약 원하는 내용을 life.txt란 파일로 보내려면, 파일 생성 명령어인 cat을 친 다음, 다음 행에서 부터는 내용을 life.txt라는 곳으로 보내라는 리디렉션 기호 '>'를 친다.
그 다음에 원하는 내용을 쳐 넣으면 된다. 그리고 엔터키를 친 다음,Ctrl+Z>를 친다.
입력한 내용을 확인해 보려면, $ cat life.txt를 친 다음, 엔터키를 치면 볼 수 있다.

//------------------------------------------------------------------------------------------------

ps -ef
예)ps -ef |grep proftp

pstree ( process tree)
- ps 에 의해서 출력되는 프로세스 정보를 트리 형태로 나타낸다.

top
- cpu와 메모리를 사용하는 작업들에 대한 시스템 정보를 출력한다.
원래 화면으로 되돌아 가려면 q를 입력한다.

df (disk free)
- 하드의 전체 용량 및 남은 용량 볼 때 사용한다.
-h(human) 사람이 쉽게 알 수 있는 형태인 바이트 단위로 출력한다

du (disk usage)
-각각의 디렉토리와 파일들이 차지하고 있는 디스크 용량을 출력한다.
예) temp2 디렉토리가 차지하는 용량을 보려고 할 때, du temp2
du -sh 하면 사용용량확인가능
du -sh ~디렉토리명 하면 디렉토리명을 찾아서 용량확인해줌

free (free memory)
- 현재 사용중인 시스템의 메모리 상태를 출력한다.
-m(Megabyte) 메모리의 양을 메가 바이트 단위로 출력한다.
-k (Kilobyte) 메모리의 양을 킬로 바이트 단위로 출력한다.

lsdev (list devices)
- 현재 시스템에 연결되어 있는 하드웨어에 관한 입출력 정보와 IRQ 값 등을 출력한다.

uname (unix name)
- 사용중인 운영체제에 대한 정보를 출력한다.
- a(all) 현재 사용중인 운영체제와 커널의 컴파일 정보 등을 출력한다.

shutdown
- 시스템을 종료할 때일반적으로 사용되는 명령어이다.
- t n 옵션 t 뒤에 n 초만큼 후에 경고 메시지 후에 kill 신호를 보낸다.
- h (halt) 완전히 닫는다.
- r (reboot) 종료후 재부팅을 한다.
- f (fast) 빠른 리부팅을 한다 .(파일 시스템 검사 생략 )
- c (cancel) 예약 되어 있는 종료 취소
- k (kidding) 모든 것이 정상이지만, 종료 시간이 되면모든 프로그램이 멈춘다.

kill
- 프로세스 종료하기. 현재 실행중인 프로세스를 강제로 종료시키는데 사용
kill signal ID PID
-9 : 가장 확실하게 실행 중인 프로세스를 종료시킴

whereis
- 실제 프로그램이 어떤 디렉토리에 존재하는지 관련된 모든 경로명을 보여줌
예) whereis vi

fsck (file system check)
- 파일 시스템의 상태가 올바른지 검사하고, 잘못된 것이 있으면 바로 잡는다.
- a : 검사도중 발견된 에러를 자동적으로복구한다.
- s : 순차적인 방법으로 검색한다.
- V : 검색중 각종 정보를 자세 하게 보여준다.

//사용자 관리-------------------------------------------------------------------------------------

chgrp
- 파일의 그룹 소유권을 바꾼다.
-c : 실제로 소유자가 바뀐 파일에 대해서 자세하게 설명
-v : 소유권의 이전에 대해서 자세히 기술한다.
* 파일의 소유자나 슈퍼 유저만이 파일의 그룹 소유권을 바꿀 권한이 있는데,
chgrp + 옵션 바꾸고자 하는 그룹의 이름+ 디렉토리+ 파일 이름
예) /root그룹에 있는 ak이라는 파일을 white라는 그룹으로 소유권을 이전 하려면,
chgrp white /root/ak

chmod
- 파일의 모드를 바꿀 때 사용하는데 파일의 모드는 권한(permission)을 제어한다.
-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다.
-v : 변경된 권한에 대해서 자세히 기술한다.
* r(read 읽기), w(write 쓰기), x(execute 실행)의 3가지 권한이 있는데,
따라서 읽기, 쓰기, 실행 등의 모든 권한을 주려면, 4+2+1, 따라서 합계 7 이된다.
만약 모든 그룹의 권한을 다 허용해 줄 경우, 777이 된다.
예)
우선 권한을 보기위해, ls -al을 쳐보면 wow 라는 파일이 rw-r--r--로 되어있다는 것을 알 수 있다.
여기서, 첫 번째 3자리는 소유자, 두 번째 3자리는 그룹, 마지막 3자리는 타인에게 허용할 것인지?
여기서의 소유자는 읽고 쓰기가, 그룹과 타인은 읽기만 허용이 되어있다.
모두가 사용할 수 있게 하려면 777이 된다.
chmod 777 wow

chown
- 파일의 소유권을 다른 사람에게 변경할 때 사용한다.
-c : 실제로 파일의 소유권이 바뀐 파일만 자세히 기술한다.
-v : 변경된 소유권에 대해서 자세히 기술한다.
파일의 소유권을 다른 사람에게로 바꾸는 것은 슈퍼 유저만이 할 수 있다.
예)
root/에 있는 wow라는 파일을 test라는 그룹으로 소유권을 바꿀 때
chown test /root/wow
ll을 쳐서 소유권이 바뀌었는지 확인해 보면 된다.

finger
- 시스템을 사용하고 있는 사용자들의 이름과 주소등 신상 명세를 출력한다.
변경할 때는 chfn(change finger name)을 사용하면 된다.

w (who is logged on and what they are doing)
- 로그인 되어있는 사람과 현재 실행중인 작업의 종류를 출력한다.

who
- 시스템을 사용하고 있는 사용자들의 이름과 터미널 번호, 로그인 시간 출력한다.

whoami
- 가상 콘솔 기능을 사용하거나 여러명의 사용자로 동시에 로그인해 있을 때,
현재 시스템을 사용하고 있는 자신이 누구인가를 출력한다.

adduser
- 사용자를 추가하기 위한 명령어인데 명령어 뒤에 원하는 사용자 명을 써 넣는다.


제목: 여러파일 확장자 바꾸기----------------------------------
다음 명령어를 사용해서 여러 파일의 확장자를 바꿀수 있다.
ls -1 *.jsp | sed "s/\(.*\)\.jsp$/mv '&' '\1.old' /" | sh
마지막 파이프라인을 제거 하면 명령어가 보인다.~
mv 대신 cp도 가능

# cat /kkk -R | grep aaa | grep -v bbb | more 하면--------------
aaa 라는 문자열을 가진 라인중에서, bbb라는 문자열을 가지지 않은 라인만 보여줍니다.

-------------- linux root alias---------------------------------
vi .bash_profile
alias jsp="cd /usr/local/jakarta-tomcat/webapps/examples/"
alias web="cd /usr/local/apache/htdocs/"

//프로세스 죽이기-----------------------------------------------------------------------------------
어떤 ip들이 접속해 있는지 볼려구
$ netstat -an
netstat -anp | grep :21 | wc -l

ftp 프로세스 확인
ps -ef |grep proftp
ftpwho
죽이기
ex)oracle 1207 601 proftpd: oracle - ip
oracle 17257 601 proftpd: oracle - 127.0.0.3

kill -9 1207 17257
//--------------------------------------------------------------------------------------------------


//Network-------------------------------------------------------------------------------------------

NCI에 IP주소를 설정하는 작업은 보통 X윈도우에서 합니다. 하지만 X윈도우를 사용하지 않는 경우에 네트워크을 설정하려면 명령어로 실행시키는 방법이 있습니다. 그렇게 하려면 X윈도우 상에서 설정했던 네트워크 상태가 저장되어 있는 곳으로 가서 편집하면 됩니다. 리눅스 설치 후 네트워크에 문제가 생기는 경우가 있는데 이는 대부분 네트워크 인터페이스 즉 랜카드의 문제로 인한 경우가 많습니다.

우선 자신의 랜카드가 리눅스에서 지원하는지 확인해야 합니다. 리눅스에서는 /proc 이라는 디렉토리의 내용을 확인해야 합니다. 이 디렉토리는 커널이 사용하는 디렉토리로 시스템 정보, 하드웨어에 대한 정보, 프로세서의 정보가 저장되어 있습니다. PCI를 갖고 있으면 다음과 같은 명령으로 그 내용을 확인하시면 됩니다.

#cat /proc/pci [Enter]
...
Bus 0, device 13, function 0:
Ethernet controller : Hewlet Packard J2585A (rev 0).
Medium devsel. Fast back-to-back capable. IRQ 11.
I/0 at 0xfd00.
Non-prefetchable 32 bit memory at 0xfffdc000.
...

만약 PCI랜카드를 사용하고 있는데도 Ethernet controller:이 나오지 않는다면 랜카드에 문제가 있는 경우입니다. 랜카드의 이름 즉 위에서는 Hewlett Packard J2585A가 없는 경우에는 커널에서 랜카드를 지원하지 않으므로 커널을 업그레이드 하거나 랜카드를 다른 것으로 바꾸어 주면 됩니다.

[1]ping
Ping은 현재 사용하고 있는 시스템이 네트워크로 연결된 원격지 호스트를 인식하고 있는지를 테스트하여 네트워크로 연결되어 있는지의 여부와 접근할 원격지 호스트가 정상적으로 작동되고 있는지 알아봅니다. 따라서 ping의 중요한 기능은 상대편 네트웍을 테스트 할 수 있다는 것입니다.
현재 보낸 패킷과 받은 패킷사이의 통계치를 보여주면 제대로 실행 된것입니다.

[2]ifconfig
Interface 란 NIC(Network Interface Card)를 세팅하는 것입니다.여기서는 ifconfig유틸러티를 사용하여 어떻게 IP address, netmask, gateway등을 설치하는지를 알보도록 하겠습니다.
우선 한텀에서 다음처럼 입력을 합니다.
ifconfig [interface]
ifconfig interface [atype] options | address...
up : interface를 활성화 시킵니다
down: interface를 비활성화 시킵니다.
address : [aaa.bbb.ccc.ddd]의 모양을 가집니다.

[3]PPP연결하기
리눅스에서 ppp 를 연결하려면 minicom이나 seyon에서 ppp를 구동합니다. ppp를 작동 시킨 다음 minicom이나 seyon을 서스펜드 합니다. 우선 가우나 세연을 설치하여 몇가지 설정을 해야 합니다. 종료시에는 ps명령어로 ppdd의 PID를 확인한 다음 다시 kill 명령으로 프로세스를 중단하면 됩니다. 아래의 명령어를 입력하면 설치할 수 있습니다.
[root@honey /root]#cd /mnt/cdrom/RedHat/RPMS
[root@honey /root]# rpm -Uvh gau* : 가우를 사용할때
[root@honey /root]# rpm -Uvh seyon : 세연을 사용시
이렇게 하여 설치가 끝났으면 control-panel을 이용하여 모뎀을 설정합니다.

[4]LAN 카드 설정하기
*리눅스에서 기본 정보 파일은 /etc/sysconfig 디렉토리에 있습니다. 다음의 과정을 하나하나 실행하면서 명령어를 이용하여 네트워크를 설정해 보도록 하겠습니다.

NETWORKING=yes
FORWARD_IPV4=no
HOSTNAME="honey.linux.co.kr"
DOMAINNAME=linux.co.kr
GATEWAY=210.127.236.254
GATEWAYDEV=eth0

NETWORKING부분에서는 네트워크를 활성화 할 것인지를 입력하는 부분으로 작동시키려면 YES를, 그렇지 않으면 NO 를 입력합니다. HOSTNAME 부분에는 호스트 이름을 Primary hostname + domain을 연결하여 따옴표로 묶어 줍니다. DOMAINNAME에는 도메인 이름을 적고, GATEWAY부분에는 게이트 웨이의 IP주소를 써 넣으면 됩니다. GATEWAYDEV에는 게이트웨이로 나갈때 사용하는 네트워크 장치명을 적으면 됩니다.
*리눅스에서 네트워크 인터페이스 설정은 다음의 디렉토리 안에 있습니다.

cat/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=none
BROADCAST=210.127.236.255
NETWORK= .0
NETMASK="255.255.255.0"
IPADDR="210.127.236.93"
USERCTL=no
ONBOOT =no

DEVICE란에는 장치를 적어주고,NETWORK에는 네트워크 주소를 적어주고, Broadcast에는 브로드캐스트 주소를 넣어주는데, 브로드케스트 주소는 255를 사용합니다. ONBOOT는 부팅도중 자동으로 네트워크 인터페이스가 작동 할 것인지의 여부를 결정하는 것이고,BOOTPROTO는 네트워크 인터페이스가 작동할 때 IP주소를 받아오는 방식을 결정하는 것입니다.
*다음은 도메인 네임을 서버에 등록하는 절차입니다. DNS를 사용하려면 DNS의 서버 IP주소를 등록세켜 주어야 하는데, 3개까지 가능합니다. 다음은 일반적인 resolve.conf파일입니다.

search honey
nameserver 210.127.236.93

search는 검색할 도메인 주소를 입력하면 되는데 사용자가 속한 Domain의 ID를 써 넣으면 됩니다. nameserver는 제가 속해있는 도메인인 linix.co.kr를 관장하는 DNS서버의 IP주소를 적어 넣은 것입니다.

//RPM 명령으로 설치하기---------------------------------------------

1. 파일 설치하기
RPM 패키지의 설치와 제거는 아주 간단합니다. 보통 다음과 같은 식을 입력 하면 설치가 됩니다.
rpm -i (rpm패키지파일이름)
위와 같은 방식을 응용하여, 설치되는 모습을 확인하고자 할 때는 다음과 같은 명령어를 이용하면 됩니다.

rpm -ivh (rpm패키지파일이름)
이와 같이 입력하면, 설치 되는 모습이 화면상에 # 마크로 표시 될것입니다.
하지만, RPM 으로 패키지를 설치할 때는 사실 위의 명령보다는 -Uvh 옵션을 사용하는 습관을 익히는것이 좋습니다.

rpm -Uvh (rpm패키지파일이름)
이 명령을 사용한다면, rpm은 이 패키지의 이전 버전이 설치 되었는지를 보고, 이미 설치가 되어 있다면 업그레이드를 할 것입니다.
그냥 -i 또는 -ivh로 설치한다면 이전 버전의 같은 패키지에 대한 정보는 사라지지 않을 것이고, 또한 이전의 설정파일도 백업되지 않습니다. 따라서, 되도록 rpm - Uvh를 사용할 것을 권장합니다.

2. 설치 위치 알아보기
설치를 한 후, 파일들이 어느 디렉토리에 있는지 알아야 한다거나, 혹은 자신의 컴퓨터에 현재 어떠한 프로그램이 설치되어 있는지 알고 싶다면 다음과 같은 명령을 사용하면 됩니다.

rpm -qa | more

'-q' 옵션은 그 파일에 대한 정보를 알아내기위한 옵션이고, 'a' 옵션은 모든 파일에 대해 적용하라는 의미입니다. 이 명령을 수행하면 자신의 컴퓨터에 설치되어 있는 모든 프로그램의 목록이 페이지 단위로 나열되어 나옵니다.

3. 간략한 정보 보기
하나의 패키지에 대한 간략한 정보를 알아보려면 다음과 같이 입력하면 됩니다. 이렇게 하면, 패키지에 대한 설명이 나타납니다.

rpm -qi (rpm패키지파일이름)


4. 파일 정보 보기
텍스트가 길게 표시되는데 파일명과 버전번호, 패키징한 사람, 프로그램에 대한 설명 등이 나옵니다. 이번에는 이 프로그램의 파일에 대한 상세한 정보를 알아보기 위해 다음과 같이 입력해 봅시다.

rpm -ql (rpm패키지파일이름)
그러면 이 패키지에 포함된 파일들이 어떠한 것이 있는지 내용을 자세하게 보여줄 것입니다.


5. 프로그램 제거하기
파일에 대한 권한과 어느 디렉토리에 있는지에 대한 정보가 포함됩니다. 마지막으로 설치한 프로그램을 제거해 보겠습니다.

rpm -e (rpm패키지 이름)
위와 같이 입력하면 쉽게 제거됩니다. 물론 프로그램을 제거할 때는 패키지의 의존성에 주의해서 신중히 생각한 후 행동에 옮겨야 할 것입니다.
위에서 사용된 명령어 외의 명령어를 설명하자면 다음과 같습니다.

rpm -qf (rpm파일이름) 특정한 파일이 포함되어 있는 패키지를 확인해 볼 때
rpm -V (rpm패키지 이름) 시스템에 설치된 패키지를 검증할 때
rpm -Va 시스템에 설치된 패키지들을 모두 검증할 때
(실수로 몇 가지 파일들을 지웠는데, 어느 것을 지웠는지 확신할 수 없다. 전체 시스템을 점검해 보고 어떠한 파일이 빠져 있는지 살필수가 있다.)
rpm -Vp (rpm패키지파일이름) 시스템에 설치할 때 사용한 RPM 파일을 이용해서 해당 패키지를 검증할 때

* * 위의 과정 외에 rpm 실행모드에 관한 명령어는 다음과 같습니다

rpm --help 도움말을 출력하고자 할 때
rpm --showrc 설정사항을 출력하고자 할 때
rpm --version 버전을 출력하고자 할 때

* * 그외 몇가지 부수적인 옵션이 있는데 여기서 설명하도록 하겠습니다.
이 부수적인 옵션들은 설치 또는 업그레이드 또는 제거 옵션뒤에 붙이게 됩니다.
(제거 옵션에서는 --nodeps , --noscripts , --test 만을 사용합니다.)

예) rpm -e --nodeps (삭제할패키지이름)

--nodeps : 의존성을 무시하고 설치한다.
가장 많이 겪게 되는 문제로 RPM 에서는 어떠한 패키지가 깔려 있지 않으면, 그것에 영향을 받는 패키지는 설치하지 못하는 경우가 있다. 이 때 사용하는것이 --nodeps 이다.
--force : 강제로 설치 하는 것이다.
패키지 설치시 현재 패키지에 포함된 파일이 이미 다른 패키지에 의해 설치 되어 있을때, 이들이 충돌을 할 경우 에러가 발생한다. 하지만, 이 옵션으로 설치가 가능하다. 이 옵션은 이미 있는 파일은 덮어 쓰지 않는다. 이미 있는 파일마저 덮어 쓰려면 --replcaefiles를 사용하면 된다.
--oldpackage : 만약 업그레이 할 패키지가 이미 설치되어 있는 패키지보다 오래된 버전일 경우에는 업그레이드를 진행시킬 수 없다. 그래도 불가피하게 설치를 진행시켜야 할 경우, 이옵션을 이용하여 강제로 설치할 수 있다.
--percent : 패키지 파일을 설치하는것을 퍼센트로 표시해준다.
--replacepkgs : 이미 같은 패키지가 설치되 있더라도 다시 설치한다.
--replacefiles : 이미 설치된 다른 패키지의 파일을 덮어 쓰면서라도 설치한다.
--root : 디렉토리 와 디렉토리를 마치 / 처럼 생각하고 설치를 한다.
즉 "--root /tmp" 라고 한다면 /tmp 가 / 인 것으로 생각하고 그 이하로 설치하게 될것이다. 한가지 문제가 있다면 이 명령을 사용하면 RPM 정보를 기록하는 파일을 지정한 디렉토리 및 에서 찾게 된다.
--test : 패키지를 실제로 설치하지는 않고 충돌이나 의존성 문제가 있는지만을 검사한다.
--noscripts : 스크립트를 실행하지 않는다.
(레드햇 패키지에는 4개의 스크립트가 들어간다. 설치 전후, 제거 전후 이렇게 4개이다.)
--excludedocs : 문서 파일은 설치 하지 않는다.
이올린에 북마크하기
2007/02/07 23:32 2007/02/07 23:32

리눅스_커널(The_Linux_Kernel_한글번역판).pdf

Posted at 2007/01/31 23:56 // in Linux // by 엔신

리눅스 커널 한글 번역판

오른쪽 버튼 눌러서 다른이름으로 저장

http://home.megapass.co.kr/~darkhi/리눅스_커널(The_Linux_Kernel_한글번역판).pdf

이올린에 북마크하기
2007/01/31 23:56 2007/01/31 23:56