1> Netstat 라는명령어에 대해서 자세히 조사하라
Netstat
사용법 : Netstat [옵션]
네트웍 상태를 보여준다. 현재 연결되어 있는 모든 포트와 소켓에 대해서
정보를 보여준다.
<옵션>
-a : 현재 연결되어 있는 소켓뿐만 아니라 모든 소켓에 대해서 정보를 보여준다.
-c : 매초마다 정보를 갱신한다.
-i : 각 내트웍 디바이스에 대한 정보도 함께 보여준다.
-t : TCP 소켓에 관한 정보만 보여준다.
-u : UDO 소켓에 관한 정보만 보여준다.
-w : raw 소켓에 관한 정보만 보여준다.
-x : 유닉스 도메인 소켓에 관한 정보만 보여준다.
-e 네트워크상의 Ethernet통계를 표시하는 명령어.
-n 네트워크상의 주소와 포트번호를 수치형식으로 표시.
-r 네트워크상의 경로 설정표 내용을 표시.
-s 프로토콜별 통계를 표시하는 명령어.
-p 기본 값의 서브넷을 지정하는데 사용하는 명령어.
예제)해커즈랩 4의 계정으로 들어가 실행해본 예제이다.
[level4@drill /]$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 41337710 0 0 0 148244425 0 0 0 BRU
lo 3924 0 16291725 0 0 0 16291725 0 0 0 LRU
[level4@drill /]$ netstat -o
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Timer
tcp 0 0 drill.hackerslab.org:80 210.217.18.34:2845 ESTABLISHED
off (0.00/0/0)
tcp 0 0 drill.hackerslab.org:23 210.221.64.236:2048 ESTABLISHED
off (0.00/0/0)
tcp 0 0 drill.hackerslab.org:23 203.236.98.230:35808 ESTABLISHED
off (0.00/0/0)
tcp 0 9 drill.hackerslab.org:23 203.241.183.104:1526 ESTABLISHED
on1 (0.13/0/0)
tcp 0 0 drill.hackerslab.org:23 210.126.41.66:46615 ESTABLISHED
off (0.00/0/0)
tcp 0 142 drill.hackerslab.org:23 211.39.241.251:2504 ESTABLISHED
on1 (0.40/0/0)
tcp 0 0 drill.hackerslab.org:23 s210-218-183-74.th:1296 ESTABLISHED
off (0.00/0/0)
tcp 0 0 drill.hackerslab.org:80 203.241.183.104:1525 FIN_WAIT2
on2 (76.86/0/4)
2> Ping 에 대해서 자세히 조사하라
Ping
사용법 : Ping [옵션] 호스트
원격 호스트가 제대로 작동하고 있는지 알아본다. 네트웍 테스트, 성능 측정, 관
리 등에 매우 유용한 프로그램으로서 호스트에 패킷을 보내 얼마나 빨리 반응이
오는지 알아보는 방식으로 작동하며 ICMP 프로토콜을 이용한다.
<옵션>
-c n : n개의 ECHO_RESPONSE 패킷을 보낸 뒤 종료한다.
-d : SO_DEBUG 옵션을 소켓에 적용한다.
-f : 매우 빨리 패킷을 보낸다.
-i n : n초 간격으로 패킷을 보낸다. -f 옵션과 반대의 역할을 한다고 생각하면
된다.
-n : 호스트 정보를 나타낼 때 도매인 이름으로 변환하지 않는다.
-s n : n바이트 크기의 패킷을 보낸다. 디폴트는 56바이트. 실제로 전송될 때는
ICMP 패킷의 헤더 정보 8비트가 추가되어 64비트 크기의 패킷이 전송된
다.
-v : 서비스의 종류를 나타낸다.
-R : 라우팅 정보를 함께 보여준다.
-t : 사용자가 작업을 중지하기 전까지 지정한 호스트를 ping하는 명령어.
-j : 네트워크상에서 호스트 목록에 따른 대강의 원본 경로를 나타냄.
-k : 호스트 목록에 따른 정밀한 원본 경로를 나타내는 명령어
-a : 옵션은 사용자가 주소를 호스트 이름으로 해석하는 명령어.
3> Traceroute 에 대하여 자세히 조사하라
Traceroute
사용법 Traceroute [옵션] 호스트 [패킷 크기]
지정한 호스트까지 어떤 라우팅 경로를 거쳐 연결되는지 알아본다. 네트웍에 문제가 생겨 특정 호스트에 연결이 되지 않을 경우 도중에 라우터에서 문제를 일으키고 있는지 이 명령어를 이용해서 알아 볼 수 있다. 매우 유용한 프로그램.
옵션
-d : 소켓 수준의 디버깅 기능을 이용하게 한다.
-g 어드레스 : IP LSRR(Loose Source Record Route)을 사용할 수 있게 한다.
-l : 수신되는 패킷에 TTL(Time To Live)값을 포함한다.
-m n : 최대 홉(hop) 수를 n번으로 지정한다. 디폴트는 3개.
-r : 일반적인 라우팅 테이블 설정을 무시하고 곧 바로 패킷을 보낸다.
-s IP 어디레스 : 지정한 IP 어드레스를 바깥으로 나가는 패킷들의 근원(source)으로 사용한다.
-t n : probe 패킷의 type-of-service를 지정한다(디폴트는 0). 가능한 값은 0 이상 255 이하의 값이다.
-v : 자세한 출력 모드
-w : 이 옵션은 응답 대기 시간을 보고자 할 때 사용.
-w n : 보내진 패킷으로부터 반응이 되돌아 올 때까지 n초만큼 기다린다.
-h : 네트워크 상에서 대상을 검색할 홉의 최대개수를 나타내는 명령어.
-j : 원본 경로를 늦추는 명령어.
4> proxy 서버란 무엇인지 조사하고 직접 써보고 좋은 프록시를 조사해라.
proxy server
: 인터넷 Cache 프로그램의 일종
인터넷을 사용하는 기관에서 워크스테이션 혹은 PC 사용자와 인터넷의 사이에서
중개 역할을 수행하는 서버로서, 그 기관의 보안 및 관리 제어와 캐시(cache) 서비스를 가능하게 한다. proxy server는 외부 네트워크와 그 기관의 네트워크를 분리시키는 게이트웨이(gateway) 서버와 연관되어 있거나 그 일부분이며, 외부의 침범으로부터 그 기관의 네트워크를 보호하는 하나의 방화벽(firewall) 서버이다.
Proxy 서버의 특징
- 자주 찾는 정보의 경우 수신 속도가 빠르다.
- 인터넷 트래픽을 감소하여 전용 회선비를 절약할 수 있다.
- Proxy 서버를 경유하여 인터넷 서비스를 받는 경우 상대편 서버에는 Proxy
서버의 IP가 서비스를 요청한 것으로 된다.
- Proxy 서버에 이상이 있는 경우, 이를 Proxy로 지정한 사용자들은 모두
해당 서비스를 받지 못하게 된다.
Proxy 서버의 활용
- 최근 해외 유명 DB 보유 사이트나 특수 자료 유료화 사이트 등에서는 접속
권한을 IP 단위로 계약하는 경우가 많다. 이러한 경우 Proxy 서버를 운영하여
Proxy 서버의 IP만을 등록해서 이용하게 되면 사용료 절감
- 주로 동일한 서비스 방법으로 인터넷을 이용하는 요즘은 (주로 www, ftp) Proxy 서버만 을 공인 IP로 두고 나머지는 사설 IP를 이용하는 방법으로 IP 주소 절약
- 기타 보안을 위해 Firewall을 구축한 서버에서 정보 수신용 application에 Proxy 서버(각 종 TCP, UDP 서비스에 대해)를 활용하여 내부 시스템을 보호
Proxy 서버의 종류
- 웹 proxy : httpd(웹) 서비스를 통해서 자료를 받아 경우에 활용하는 것으로
대부분 웹 Proxy를 Proxy라 통칭
- FTP proxy : FTP 서비스를 통해 정보를 받아오는 경우에 활용
- 기타 TCP, UDP application을 위한 Cache
◆ Automatic proxy configuration location(URL)
프락시 서버를 설정한 사용자는 프락시 서버가 다운됐을 경우 웹 페이지 검색을 위해 프락시 서버 설정을 해제해야 하는 불편이 있었다. 이러한 문제를 해결하기 위해서 프락시 설정 부분중 Automatic proxy 설정 부분에 http://proxy.snu.ac.kr/proxy.pac 라고 하자. 프락시 서버 다운시 자동으로, 사용자가 검색한 웹 페이지를 직접 가져오게 된다.
Proxy 서버의 한계와 이용시 유의사항
Proxy 서버 자체의 상황에 따라 서비스의 품질이 떨어질 수 있으므로 서비스에 이상이 느껴질 경우에는 Proxy 서버의 상황을 알아보는 것이 좋다. 만약 위의 Auto Proxy 설정 을 해 두었다면 그런 불편은 많이 없을 것이다.
프록시 서버 주소
mpls.cache.mr.net 3128 www/ftp
ns2.neuquen.com.ar 8080
proxy.hutch.com.au 80
proxy.ozemail.com.au 8080
www2.transport.tas.gov.au 80
netcachesyd3.ozemail.com.au 8080
ino.privacy.fgov.be 8080
proxy1.brunet.bn 8080
CAICO.telern.com.br 80
www.csjlor.qc.ca 8080
237-67-239.tr.cgocable.ca 80
bw11chg.bluewin.ch 8080
proxy.iwvisp.com 8080
gateway.hro.com 080
CacheFlow01.RipNET.com 8080
inet01.cabletel.cz 80
proxy.compunet.net.co 3128
andele.cs.tu-berlin.de 80
maccaroni.unix-ag.uni-kl.de 3128
ics1f.og.srv.t-online.de 80
fastcache.vermontlaw.edu 8080
lhermes.curry.edu 8080
ES Softec linux.softec.es 8080
proxycf1.grolier.fr 80
proxy2.infonie.fr 80
gita.srce.hr 80
goldcache.goldnet.net 80
proxy.micanet.it 80
Cairo.osu.ac.jp 8080
dns1.infocom.co.jp 80
mirage.cc.toyaku.ac.jp 80
www.nidec.co.jp 8080
Taegu biho.taegu.ac.kr 8080
cvs2.kyunghee.ac.kr 8080
tole-cache.dial.bright.net 8080
cacheflow.bright.net 8080
cacheflow.tcg.sgi.net 8080
magic.brasilnet.net 8080
gip-rjo-1-wc01.br.global-one.net 8080
NET ? hoard.cache.thenap.net 8080
webproxy.gelrevision.nl 80
hades.hro.nl 8080
mail2.info.com.ph 3128
leonardo.isec.pt 8080
caclis01.teleweb.pt 3128
proxy.qatar.net.qa 8080
sea.plugcom.ru 80
utfc1.utfors.se 80
ns.varnamo.se 8080
swallow.cat.net.th 8080
ankara3.turnet.net.tr 8080
club.golden.com.tw 8080
c1.h202052106.is.net.tw 80
softy.poptel.org.uk 8080
cache.manistee-isd.k12.mi.us 80
stpauls.pvt.k12.al.us 8080
proxy.telcel.net.VE 80
sah3.ye 80
proxy-rnb2.mweb.co.za 80
proxy.cpt.mweb.co.za 80
proxy.cybergate.co.zw 8080
proxy.africaonline.co.zw 8080
5> 10년뒤의 당신의 모습을 말하시오.
우리 팀 과제를 전체적으로 보았을 때 컴퓨터 보안 관련 업무를 화고 있을 것이다라고 나왔다.
ex) 보안전문가 (거의 대부분)
6> 해커란 무엇인지 자기만의 생각으로 주장하여라
우리 팀 과제를 전체적으로 보았을 때 크랙커를 잡는 정의의 사도?! 라고 나왔다.
(이건 팀장 의견.......^^님)
hacker이란 컴퓨터 전문가로써 이에 관련된 한계를 극복하고 문제를 해결하는데 뛰어나고 기술적으로 숙련되어 있는 사람을 의미한다고 생각한다.
대부분 자신이 해커라고 떠드는 사람들은 컴퓨터에 침입하거나 전화시스템을 파괴하는 사람들로 바로 크래커들이다. 이들은 게으르고 무책임하고 자신이 가지고 있는 능력(별볼일 없는 능력이지만..)을 잘못된 방법으로 다른 이에게 자랑하려고만 한다. 실제 해커들을 짜증나게 만드는 일이다. (그러나 사람들은 대부분 이런 크래커를 해커라고 생각한다. 특히 몇몇 저널리스트의 주도 아래서....) 크래커와 해커의 본질적인 차이...해커를 무엇을 무언가를 만드는 일을 하는 반면 크래커를 그것을 부수는 일을 한다는 것이다.
곧 해커란 모든 정보의 공유를 목적으로 하며 언제나 새로운 것을 창조하는 컴퓨터 전문가라고 말할 수 있을 것이다...........이게 저희팀 님들이 말하고자 하시는 것이었습니다.
7>다음 내가 말하는 리눅스 명령어들을 자세히 조사하라
조사법은 $man 명령어 이렇게 해서 필요한 건 자세히 조사하라
(ls , cd , mkdir , pwd , adduser , shutdown , wall , vi ,find )
is
: dos의 dir에 해당하는 명령으로 현재 디렉토리에 있는 파일이나 디렉토리의 목록을
보여준다. ls에는 여러가지 옵션이 있다.
사용법 is [옵션]
<옵션>
-a : all이라는 의미의 옵션이다. 이 옵션은 모든 파일고 디렉토리의 내용을 보여주는
옵션. 실제로 리눅스에서 이 옵션을 사용하지 않으면 모든 파일이 보이지 않는다.
-l 이 옵션은 파일의 내용을 긴 형태로 자세히 출력한다. 파일의 퍼미션까지 볼 수 있다.
-al 이 옵션은 -a,-l을 합친 것입니다.
-t 마지막 접근 시간이 최근인 것부터 보여 줘요...
-R 하위 디렉토리의 파일을 모두 보여 줘요..
-p 간단히 보여주는데, 이 옵션은 파일과 디렉토리를 구분해서 보여준다.
-i 이 옵션을 사용하면 리눅스에 존재하는 모든 파일과 디렉토리의 고유번호를 보여준다.
cd
: change directory 의 약자로 말그대로 디렉토리로 이동 할 때 쓰는 명령
사용법 cd [디렉토리명]
cd 라고만 명령할 경우에는 자신의 홈디렉토리로 돌아오게 된다.
특정 사용자의 홈디렉토리로 이동하고자 할 경우에는 cd ~사용자명이라고 명령하면 된다.
mddir
: make directory 의 약어로 말 그대로 새로운 디렉토리를 만들 경우에 사용하는 명령
예) [userid@local /home]$ mkdir exam
[userid@local /home]$ls
Desktop/ Mail/ userid/ exam/
pwd
: 현재 자신의 위치가 보여줌.
예) [userid@local /userid]$ pwd
/home/userid
adduser
: 사용자추가(adduser/useradd).
* adduser 명령 : 로그인 패스워드 없이 단순히 사용자를 추가하고자 할 때 사용.
(예) [root@localhost /root]# adduser scsnet => 추가할 사용자명이 scsnet일 때
* useradd 명령 : 계정을 만들 때 결정해야 하는 것으로는 사용자 이름, 패스워드, UID, GID, 홈디렉토리, 쉘 등이 있는 데, useradd명령과 옵션으로 그 값을 지정할 수 있다.
(예) [root@localhost /root]# useradd scsnet -d /home/user/scsnet => scsnet 사용자의 홈디렉토리 지정, 디폴트로는 /home/scsnet로 지정.
[root@localhost /root]# useradd scsnet -s /bin/csh => scsnet 사용자를 다른 쉘로 지정.
shutdown
: 시스템을 종료할 때 사용하는 명령
사용법 shutdown [옵션들] time
<옵션>
-h : 시스템 종료
-r : 시스템 재부팅
-k : 실제로 셧다운 되지 않으며 경고 메시지만 날린다.
-time : 절대 시간(hh:mm)과 상대시간(+m)을 지정 할 수 있다.
예) shutdown -h(r) now : 바로 종료(재부팅)한다.
shutdown -h(r) 4:30 : 4시30분에 종료(재부팅)한다.
shutdown -h(r) +30 : 지금부터 30분 뒤에 종료(재부팅)한다.
wall
: 접속중인 사람에게 메시지를 보내는 명령어
이것을 사용하려면 슈퍼유저로 로그인 되야 하고 사용자가 자신의 터미널을
메시지 수신 거부를 해 놔도 슈퍼 유저는 이것을 무시할 수 있다.
vi
: 리눅스에서 보편적으로 사용하는 에디터
VI에디터의 장점
- termcap의 지원 : 어떤 단말기에서도 작동이 가능하다는 것
- 여러개의 파일을 동시에 편집할 때 편리하다는 것
- 문자 검색이 간단 하고 매우 빠르다.
- 문자열 치환이 뛰어나다.
- 유닉스 환경의 모든 컴퓨터에서는 "vi"를 지원해 준다는 것
시작하기
사용법 vi [화일명]
$ vi filename [Enter]
$ view filename [Enter] : 읽기 전용으로 vi를 시작한다.
$ vi -R filename [Enter]
편집
데이터 입력하는 명령어
a : 현재 커서에서 오른쪽으로 데이터를 입력
I : 왼쪽으로 데이터를 입력
<옵션>
+[n] : 파일내용을 버퍼로 불러들일 때 파일 내용의 마지막 부분만 화면에 출력하게
하는 옵션으로 n은 줄수를 의미한다.
-r : 파일 편집 도중 정전이나 시스템 장애로 버퍼내의 파일 손상시 복구시킨다.
-wn : 한 화면에 나타내는 줄수는 평균 23줄인데 많은 line의 경우 사용자가
임의대로 출력 줄 수를 조정한다.
-c : $ vi -c /철인/test.html [Enter] : vi편집기 버퍼로 불러들이고 '철인' 이라는
단어를 검색하여 그곳에 커서의 위치를 놓는다.
끝마치기
ZZ [Enter] : 명령어 모드에서 저장하고 끝낸다.
:q [Enter] : 명령어 모드에서 수정된 내용이 없을때 그냥 끝낸다.
:q! [Enter] : ex 명령어 모드에서 저장하지 않고 강제로 끝낸다.
:wq [Enter] : 파일을 저장하고 끝낸다.
"vi" 에디터를 통해서 내용을 확인한 후"wq"라고 입력함으로서"vi"에디터를 종료
<옵션>
:W → 버퍼에 있는 파일 내용을 디스크에 기록하라는 명령어로 이 명령을 사용하면 현재 파일 내용을 디스크에 기록할 뿐 vi 편집상태는 그대로 유지된다.
:e 파일명 → 현재 버퍼 내에 있는 파일을 무시하고 지정한 파일 내용을 버퍼로 출력한다. 이때 지정한 파일 끝에서 편집을 시작하려면 :e+ 파일명으로 타이핑한다.
:sh → vi 상태 내에서 :sh를 수행시키면 일시적으로 vi상태를 벗어나고 시스템 프롬프트 %가 나오며 다시 ctrl+D키를 치면 원래의 vi 상태로 된다.
줄 삽입관련 명령어
소문자 o : 커서가 위치한 현재 줄의 아래 줄을 새로 만든다.
대문자 O : 현재 커서가 위치한 위 줄을 새로 만들어 데이터를 입력하는 명령어
문자삭제 명령어
소문자 x : 커서가 위치한 부분의 한 문자를 삭제하는 명령어
대문자 X : 커서가 위치한 앞 부분의 문자를 삭제하는 명령어
ex) this is a very good wine 에서 this y good wine을 만드는 방법은 ?
단어삭제 명령어
dw : 현재 커서의 위치에서 오른쪽 방향으로 한 단어를 삭제
db : 현재 커서의 위치에서 왼쪽 방향으로 한 단어를 삭제
줄 삭제 명령어
dd : 커서가 위치한 현재 줄을 삭제하는 명령어
D : 현재 줄의 커서 위치 뒤부터 그 줄의 끝까지를 삭제하는 명령
문자 바꾸기
r : 현재 커서가 위치한 곳의 한 문자를 다른 문자로 바꾸고자 하는 명령
R : 현재 커서 위치로부터 시작하여 임의의 개수 만큼의 문자를 키를 칠때까지
계속 바꾸는 명령
줄바꾸기
cc : 현재 커서가 위치한 줄을 임의의 다른 내용으로 바꾸고자 하는 명령어
C : 현재의 커서 위치부터 줄의 끝까지를 임의의 다른 내용으로 바꾸는 명령어
명령 취소
u : 바로 전에 행한 한 번의 명령을 취소하는 명령 모드
U : 이전에 행한 명령이 몇 번이든지 간에 그 줄에서 이루어졌던 명령들에 의해
변환 파일을 원상 복구할 수 있는 명령 모드
이들 취소 명령어를 수행하기 전에 사용자는 반드시 앞의 명령을 해제하는
키를 친후 사용한다.
명령 반복하기 / 기타 명령어
. : 바로 전에 수행한 명령을 반복 수행시키는 명령어
J : 파일 내의 현재 커서가 위치한 줄과 다음 줄을 한 줄로 결합하고자 하는 명령 모드
:se nu 파일 내용에 줄 번호 부여시 사용한다.
중요한 명령어
yw : 현재 커서가 위치한 단어를 임시 버퍼에 복사한다.
yy : 현재 커서가 위치한 줄을 임시 버퍼에 복사한다.
nY : 현재 커서가 위치하는 줄부터 n줄 까지를 임시 버퍼에 복사한다.
p : 현재 커서의 오른쪽 또는 아래 줄 위치에 임시 버퍼에 복사된 내용 붙이기
P : 현재 커서의 왼쪽 또는 위 줄 위치에 임시 버퍼에 복사된 내용을 붙이기
find
사용자가 제시한 속성을 만족하는 file을 찾아 내어, 이를 화면으로 출력하거나, 이러한 file에 특정한 명령을 수행한다. 이러한 find 명령어는 file system을 감시하는데 뿐만 아니라, 하나의 subdirectory내에서 특정한 file을 찾아내거나, directory
아래에 특정한 내용을 담고 있는가등 다양한 기능을 수행하는 막강한 명령어이다.
사용법 find [경로명 수식]
<옵션>
-name [화일명] : 지정한 화일 이름에 해당하는 화일이 담겨 있는 디렉토리를 찾아준다.
이때 화일이름에는 와일드 카드 문자인 *,?를 사용 가능.
-type [화일형태] : 지정한 화일 형태와 맞는 화일을 찾아준다. 화일 형태에는 5가지가 있 는데 f는 일반 화일, b는 block special file, c는 character special file,
d는 디렉토리, p는 파이프.
-user [사용자 ID] : 뒤에 지정한 사용자가 권한을 가지고 있는 화일을 찾아준다.
-group [그룹 ID] : 뒤에 지정한 그룹이 권한을 가지고 있는 화일을 찾아준다.
-perm : 선택 퍼미션인 것을 찾아줍니다.
-mtime n : 마지막으로 수정된 날이 정확히 n일 전인 화일을 찾아준다. 여기서 n을 명시할 때, -n이라고 표기하면 n일 전부터 지금까지를 의미하고, +n이라고 표시하면 n일을 포함해서 그 이전에 수정된 화일을 찾아준다.
-exec [명령어] : shell 명령어를 실행해 주는 옵션으로서 명령어 뒤에는 반드시 \; 기호 를 붙혀 주어야 한다. ;기호 앞에 \를 붙여주는 이유는 ; 기호가 shell 특수문자이기 때문이다.
-print : 화일이나 디렉토리가 발견되었으면 이 옵션에 의해서 그 화일이나
디렉토리가 담겨있는 디렉토리가 화면에 나타난다.
예) [userid@local /home]$ find -name exam.txt
/home/exam.txt
[userid@local /home]$ find -user userid
./home/exam.txt
./home/test.txt
./home/userid/exam.txt
[userid@local /home]$ find -perm 600
./userid/tmp/.swp
./userid/bg/normal.txt
./userid/tmp/.smp
8>리눅스패스워드관리에서 /etc/passwd 와 /etc/shadow를 조사하여
차이점을 조사하고 이에 대한 자기의 생각을 적어서 제출하라.
/etc/passwd
잘 알겠지만 사용자들의 계정 정보와 패스워드 및 홈 디렉토리를 담고 있다.
각 항목의 의미는 이와 같다
1: 사용자 이름
2: 패스워드(암호화 된 형태)
3: UID
4: GID
5: 진짜 이름(사용자 정보)
6: 홈 디렉토리
7: 로그인 쉘(로그인했을 때 실행될 프로그램)
/etc/shadow
쉐도우 패스워드 파일. 만약 쉐도우 패스워드 시스템을 사용한다면 실제 패스워드는 슈퍼 유저만이 읽을 수 있는 이 파일에 저장되고 /etc/passwd에는 유명무실한 패스워드만이 남게 되어 좀더 안전성을 높일 수 있다.
이 둘의 차이점
/etc/passwd 유명무실한 패스워드가 저장됨, 모든 유저가 접근 가능
/etc/shadow 실제 패스워드가 저장됨, 슈퍼 유저만이 접근 가능
9>리눅스의 디렉토리 구조에 대해서 조사하여라
리눅스의 디렉토리 구조를 크게 나눈다면
/
루트 디렉토리. 최상위 디렉토리이며 마운트(mount) 명령어를 살펴보면 알겠지만 리눅스/유닉스에서는 도스/원도우의 드라이브명이라는 개념 없이 오직 루트 디렉토리를 기준으로 모든 파일/디렉토리가 위치한다
bin
일반적인 실행 파일들이 모여 있는 곳
boot
시스템 부팅에 관련된 파일들이 모여 있다. 특히 커널 이미지인 vmlinuz 이 디렉토리에 위치하고 있다.
dev
디바이스 파일들
etc
각종 시스템 설정 상황을 담고 있는 파일들이 위치해 있다.
home
일반 사용자들의 홈 디렉토리
lib
공유 라이브러리
mnt
다른 파티션을 마운트할 마운트 포인트
proc
프로세스 정보를 담고 있는 파일들이 위치한다.
root
슈퍼 유저(root)의 홈 디렉토리
sbin
슈퍼 유저가 시스템을 운영하는 데 필수적인 실행 파일들이 들어 있다.
tmp
말 그대로 임시 파일들을 읽고 쓰는 역할을 하는 디렉토리이다.
usr
사용자들을 위한 여러 가지 프로그램들과 설정 파일들이 담겨 있다. 리눅스/유닉스 디렉토리 구조에서 가장 크고 복잡한 구조를 가진다.
var
로그 파일을 비롯한 각종 시스템 관리와 관련된 정보들이 저장된다.
10>퍼미션에 대하여 조사하여라.
퍼미션이란
먼저 퍼미션을 확인하려면 ls -l 명령으로 확인 할 수 있습니다.
$ ls -l
-rwxrw-r-- 1 oprix staff 12 Nov 23 19:36 I_am_a_file
---(1)---- -(2)- -(3)-
(2)는 소유자명이고 (3)은 소유그룹명입니다. (1)을 해석해 보면 I_am_a_file 이란 파일은 소유자가 oprix이고 읽고 실행하고 쓸 수 있으며 소유그룹은 staff고 읽고 쓰는 권한을 가지고 있다는 뜻입니다. 그리고 그 외의 사용자는 읽기만 하고 쓸 수 없다는 뜻입니다.(1)을 관찰해보고 알겠지만(못 알아차려도 괜찮음)
r Read에서 읽을 수 있다는 뜻 (내용을 볼 수 있음)
w Write에서 쓸 수 있다는 뜻 (내용을 바꿀 수 있음)
x eXecute에서 실행할 수 있다는 뜻입니다. (실행!)
-는 무엇일까요? 아무 것도 설정되어 있지 않다는 뜻입니다.
(1)의 맨 처음은 -로 시작하는데 이건 그냥 파일이라는 겁니다. 만약 d로 설정되어 있다면 디렉토리 l로 설정되어 링크파일 -로 설정되어 있다면 일반파일 b는 블럭 디바이스(디스크 드라이버), c는 캐릭터 디바이스(입출력 관련 특수 파일)P는 네임드 파이프, s는 소켓. 그 다음 rwx는 소유자의 설정으로 읽고 쓰고 실행할 수 있다는 뜻, rw-는 소유그룹의 설정으로 읽고 쓰고 실행은 안 된다는 뜻, r--는 그 외 사용자는 읽어보기만 하라는 뜻을 지니고 있습니다.
그럼 이건 무슨 뜻일까요?
-rwxr-x--x 소유자는 쓰고 읽고 실행할 수 있으며(rwx), 소유그룹은 읽기와 실행을(r-x) 그 외 사용자는 실행만 할 수 있다(--x)는 뜻이겠죠.