CentOS 5.8에서 실습
설치는 이전 글 참조
CentOS 맛보기만 할건데
안 될 수도 있다 그럼 패스하자
나중에 다 자세히 다룰 내용이다.
putty 다운로드
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
putty.exe 를 실행 ->
192.168.219.198(자신의 ip / ifconfig 확인가능) ->
ip 입력하고 Open ->
창에서 예(Y)->
login as: <-- 자신에게 부여된 사용자명 여기선 root
linux@192.168.219.198's password: <-- 설치할때 입력한 password
[linux@localhost ~]# <-- 로그인성공
[root@localhost ~]# <-- 프롬프트
$ <-- 일반유저
# <-- 관리자 (root)
ex)
www.daum.net
www -> localhost
daum.net -> localdomain
localhost.localdomain
PE : 윈도우
ELF : 리눅스
a.abc <-- 실행할 수 있는가 ?
윈도우는 확장자가 필요함
리눅스에서는 확장자 구분이 없음
# i fconfig
eth1 <-- IP 확인 192.168.56.101
eth?
? 의 숫자는 사용자마다 다를 수 있음
# cp /etc/DIR_COLORS ./dircolors
# logout
root 수퍼유저
o 리눅스에서 실행 디렉토리
- 이 디렉토리에 파일이 있다면 아무곳에서나 실행하면
실행이 된다. PATH변수
[root@localhost ~]# ls -l /bin
[root@localhost ~]# ls -l /sbin
[root@localhost ~]# ls -l /usr/bin
[root@localhost ~]# ls -l /usr/sbin
[root@localhost ~]# ls -l /usr/local/bin
[root@localhost ~]# ls -l /usr/local/sbin
[root@localhost ~]# ls -l /usr/X11R6/bin
ls -a -l
ls -l -a
ls -la
ls -al
=> ls의 경우옵션은 어케 써도 된다.
파일 내용을 보는 명령어 들
cat, tac, head, tail, less, more, view, vi
- 리눅스에서 복사하는 다양한 방법
[root@localhost ~]# cp /etc/passwd .
[root@localhost ~]# cat /etc/passwd > passwd2
[root@localhost ~]# dd if=/etc/passwd of=passwd3
[root@localhost ~]# install -m 644 /etc/passwd passwd4
# ls passwd*
--> passwd, passwd2, passwd3, passwd4 확인가능
# view /etc/passwd
:q
- 시스템을 종료하는 다양한 방법
# shutdown -h now
# init 0
# poweroff
-텍스트 인터넷
# LANG=ko_KR.utf-8
[root@localhost ~]# telnet naver.com 80
Trying 125.209.222.141...
Connected to naver.com (125.209.222.141).
Escape character is '^]'.
GET / HTTP/1.1
Host: www.naver.com
굵게 보이는 글씨는 직접 입력해야 함
Host: www.naver.com 다음 엔터 2번 입력해야함
(HTTP 헤더를 보내는 거)
-실행파일(ELF)
컴파일러 링커
사람 컴퓨터
hello.c --> hello.o --> 링킹과정 -----> 실행파일
------------------컴파일 과정------------------->
<-----------------리버싱 과정-------------------
# vi hello.c
-- hello.c --
#include <stdio.h>
int main()
{
puts("Hello C");
return 0;
}
-- hello.c --
# gcc -c hello.c
# ls -l
hello.o
# gcc -o hello hello.o
# ./hello
Hello C
# gcc -s hello.c
# ls
--> a.out
# objdump -d | grep -A 10 main.:
080483a4 <main>:
:
:
c7 45 f8 00 00 00 00 movl $0x0,0xfffffff8(%ebp)
c7 45 f8 01 00 00 00 movl $0x1,0xfffffff8(%ebp)
# xxd --help
# xxd hello hello.xxd
# vi hello.xxd
여기서는 91번 라인에 Hello C 가 보인다
그럼 그 값을 조금 바꿔보자
위와 같이 6162 6364 6566 6700 으로 수정하였다
# xxd -r hello.xxd hello2
# ls -l hello hello2
Hello C 로 출력되던게 abcdefg로 출력이 되는걸 확인할 수 있다
# vi hello.c
-- hello.c --
#include <stdio.h>
int main()
{
int i = 1;
if(i == 1)
puts("Hello C");
else
puts("Hello Linux");
return 0;
}
-- hello.c --
# gcc -o hello hello.c
[root@localhost ~]# ./hello
Hello C
[root@localhost ~]# xxd hello hello.xxd
[root@localhost ~]# vi hello.xxd
위와 같이 75번 라인에 0175를 찾을 수 있다..
0175를 0174로 바꿔본다
[root@localhost ~]# xxd -r hello.xxd hello
[root@localhost ~]# chmod 755 hello
[root@localhost ~]# ./hello
Hello Linux
if ( i == 1 )
이 부분을 if ( i != 1 ) 로 변경되어서
Hello C 가 아닌 Hello Linux가 출력이 된다
i 값을 1이 아닌 다른 값으로도 변경 가능하니 직접 비교해보기 바람..
(
hello.c 에서 i의 값을 수정하여 xxd 파일로 만들어 원본과 비교해보자.
그럼 어디가 값이 변한지 알 수 있을것이당..
diff 명령어나 cmp 명령어 이용
)
- 파일서버 (삼바서버)
# LANG=C
# yum grouplist
# yum -y groupinstall "Windows File Server"
# /etc/init.d/smb start
# netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
# useradd linuxuser
# passwd linuxuser
# smbpasswd -a linuxuser
# iptables -F
# ifconfig eth1
윈도우 실행 창에서
\\192.168.219.198
linuxuser 와 설정한 passwd 입력->