ls :파일 및 디렉토리에 대해서 본다.
ls -l : 파일 과 디렉토리를 구별하여 볼수 있다.

파일 정보
-rw-rw-r--      1 trainer1 trainer1      779  9월 24 18:37 start.txt
drwxr-xr-x     2 trainer1 trainer1     1024 9월 24 11:52  tmp

위의것은start.txt에 관한 정보이고, 아랫것은 tmp에 관한 정보입니다.
start.txt를 기준으로 뒷쪽에서부터, “9월 24 11:52”
이 부분은 이 파일이 생성된 날짜를 보여줍니다.

“779”파일 용량
“trainer1 trainer1”은 퍼미션 정보.

앞에 붙어있는 -는 파일 d는 디렉토리의 의미이다.

w:서버에 있는 사람 보기

사람정보

root     tty1     0     login

finger -l : 사람정보보기
tty : 터미널 보기
ifconfig : 아이피 보기

write : 쪽지 보내기
리눅스 폴더 내용

-bin : 이곳에는 가장 필수적인 리눅스 실행 파일들이 들어가 있습니다.
ls,rm 모두 이곳에 들어가 있지요.

-boot: 리눅스 부팅 관련 파일들과, 리눅스의 심장인 커널이란 것이 들어있습니다.
-dev : 이곳은 컴퓨터에 설치된 하드웨어에 관한 정보들이 파일 형태로 저장되어 있는 곳입니다.
-etc : 많은 중요한 파일들이 이곳에 들어가 있습니다. 패스워드 파일, 쉐도우 파일, 그 외 대부분의 리눅스 설정 파일 등등.
-home : 일반 사용자들의 디렉토리가 들어가는 곳 입니다. guest 와 trainer1~10, level1~10모두 이
디렉토리 안에 있다.
-lib : 많은 라이브러리 파일들이 들어가 있습니다.
-mnt : mount 명령을 사용하여, 마운트 시킨 시디롬, 플로피 디스켓등이 들어가는 디렉토리 입니다.
-proc : 프로세스들이 파일 형태로 저장되는 디렉토리.
-root : 일반 사용자의 디렉토리는 /home 아래 존재 하지만, 루트의 홈 디렉토리는 따로 이곳에 저장됩니다.
-sbin : 기본 명령을 제외한 시스템 관리용 실행 파일 들이 들어있는 디렉토리 입니다.
-tmp: 임시로 파일을 저장하는 디렉토리로서, 권한에 상관없이 누구나 이 디렉토리에 파일을 생성할 수 있습니다.
-usr : 다양한 응용 프로그램들이 설치되어있는곳입니다.
-var : 시스템 운영 중에 생성되는 각종 임시 파일들이 들어가 있으며, 외부 접속에 대한 로그파일들이 바로 이곳에 저장이 됩니다.


파일 정보
/etc/passwd : 사용자들에 대한 간단한 정보가 들어있습니다.
/etc/shadow : 사용자들의 패스워드가 들어있습니다. 아무나 보지 못하도록 설정되어 있지요.
/etc/services : 서버가 어떤 어떤 서비스를 하는중인지 보여줍니다.
/etc/issue.net : 처음 접속될 때 나오는 화면입니다. 해커스쿨의 F.T.Z에 오신걸 환영합니다.
라는 문구도 이곳에 들어가 있습니다.
/etc/motd : 로그인 후에 나오는 메세지가 들어가 있습니다.
~/public_html : 각 사용자들의 홈페이지 파일이 들어가 있습니다. 보통 해킹에 성공하면 이 파일을 수정하여, hacked by xxx 라는 문구를 남깁니다.

whoami : 자신의 정보 보기
id : 좀더 자세히 자신의 정보 보기

모든 사용자들의 정보는 /etc/passwd
uname-a : 커널버젼보기
로그아웃, 종료 명령어

로그아웃
exit
logout

시스템 종료
shutdown, halt, init

ex) shutdown -h now
halt
init 0

shutdown :
shutdown -h +15m : 15분 후에 종료(h:halt)
shutdown -r 23:00 : 오후 11시에 재가동(r:reboot)
shutdown -c : 진행중인 shutdown을 취소 (c:cancel)
shutdown -k now: 접속중인 사용자에게 종료 메시지 전송

ctrl + u : 전체 행 삭제
ctrl +-c :  명령중지
ctrl + z : 일시정지

tab키로 시간 단축

같은 디렉토리 또는 파일일경우 탭키 2번

ctrl + T 는 커서 앞의 문자와 와 변경해준다.

비슷한 파일 찾기
inv1jic.c inv2jic.c inv3jic.c invinitjigc.c invpar.c

$ls inv?jig.c 를 하면
inv1jic.c inv2jic.c inv3jic.c

$ls inv[13]jig.c
inv1jig.c inv3jig.c

$ls inv[1-3]jig.c
inv1jic.c inv2jic.c inv3jic.c

알파벳 검색시 [a-zA-Z]라고함
inv와jig사이에 몇개의 문자가 와도 상관없다면
ls inv*jig.c
ls *[0-9]*.[co]


cat /etc/*release : 리눅스 버젼 확인

rpm -qa :정보수집
cat /proc/cpuinfo : cpu정보 보기

root : x : 0 : 0: Admin : /root :/ bin / bash
ID   pw  


tar cvf songs.tar * :파일 합치기
gzip 파일이름 : 파일 압축
gzip -d 파일이름 : 압축 해제

텍스트 파일 생성법

1. 쉘 프롬프트 상태에서,  cat > 파일이름.txt 라고 입력한다.
2. 원하는 내용을 주욱 써내려간다.
3. 컨트롤키와 D키를 동시에 누른다.

소스 넣기

cat > program.c
int main(){
a=10
b=20
printf(“10 + 20 = %d,a+b);}

컴파일 방법 : gcc -0 프로그램이름 소스파일이름
ex) gcc -o program.exe program.c

상대경로 입력
./program.exe

리눅스의 4가지 종류의 사용자

유져 : 이것은 자신을 의미합니다. 만약 제가 mmung2라는 아이디로 로그인을 하면 저는 mmung2라는 유져가 됩니다. 마찬가지로 제가 guta라는 아이디로 로그인을 하면, 저는 guta라는 유져가 되는거지요.

그룹 : 모든 유져는 하나 이상의 그룹에 속하게 됩니다. 임의로 이 그룹을 변경하지 않는 한 모든 유저는 자신의 유저네임과 같은 이름의 그룹에 속하게 됩니다
아더 : 이것은 유져와 그룹을 제외한 모든 다른 사람을 의미합니다.

루트 : 루트는 여러분이 아시다시피 절대적인 권한을 가지고 있는 사용자입니다. 이 루트 권한을 가지고 있는 자는 어떤 권한에도 구애받지 않는 상태로 파일들을 제어할  수 있게 됩니다. 이 절대적인 루트권한을 얻기 위해 이것저것 가리지 않고 하는 일이 바로 해킹

uid=2009(trainer9) gid=2009(trainer9) groups=2009(trainer9)
[trainer9@ftz trainer9]$

uid -> UserID

trainer9을 컴퓨터가 2009라는 숫자로 인식

gid = Group ID
각 유저마다 gid를 가지고 있고 다른 사람을 자신의gid를 가진 그룹에 속하게 할수 있다.
특별한 일이 없는한 gid는  uid와 같다.

groups 는 현재 자신이 속해 있는 그룹을 말해준다.



파일의 권한정보 분석하기
ls -al test1 입력하면

-rwxrwxrwx         1 trainer9        trainer10                   5  10월  20 21:35 test1
                              유저               그룹


rwx rwx rwx   < -- 권한에 관한 정보
유저의 권한, 그룹의 권한, 아더의 권한

Read    Write    eXcute

분석법

-rwxrwxrwx         1 trainer9  trainer10                      5   10월   20   21:35   test1
 3    5    7                  2              4                                                                     1


1. test1 이란 파일을...
2. trainer9 라는 uid를 가진 사용자 에게
3. rwx권한이 있고
4. trainer10 이라는gid를 가진 사용자에게도
5.rwx 권한이 있고l
6. trainer9와 10을 제외한 모든 사람에게도
7. rwx권한이 있다.


Remote 해킹 : 자신이 해킹하고자 하는 서버에 아이디를 가지고 있지 않을 때, 아이디를 얻고자 시도하는것

Local 해킹 : 해킹하고자 하는 서버에 일반 계정을 가지고 있을 때, 관리자 권한(root)를 얻고자 시도하는 것


setUID

그럼 과연 SetUID란 무엇인가
SetUID가 걸린 파일을 조작하여, 관리자 권한을 얻을 수 있다.

그럼 과연 SetUID

Set UID는 자신을 변경하는것

-r-s--x--x           1 root                root                  22312     Sep     26     1999   /usr/bin/passwd*


find / -perm  -4000

해석하면
적어도 SetUID가 걸린 모든 파일을 찾아라 라는 의미

위에서 -은 적어도 라는 의미
-perm 은 권한을 찾겠다 라는 의미
그뒤의 4자가 바로 SetUID를 의미하며, 000은 rwx모두를 의미한다.

find -perm 권한과 일치하는 파일을 찾는다. ex) find / -perm 4755
find -name 이름과 일치하는 파일을 찾는다. ex) find / -name cat
find -user 유져와 일치하는 파일을 찾는다.  ex)find / -user mmung2
find -group 그룹과 일치하는 파일을 찾는다. ex)find / -group guta

'리눅스-Linux' 카테고리의 다른 글

[리눅스] yum 명령어  (0) 2013.09.27
[리눅스] 기초개념  (0) 2013.09.26
[Linux] SUDO 명령  (0) 2013.09.16
[Linux] RPM, YUM 이란?  (0) 2013.09.13
[Linux] Crontab 트러블 슈팅  (0) 2013.09.11
Posted by 뭉탁거림
,