본문 바로가기

정보보안기사 실기

정보보안기사 _ 4일차 _ 시스템 기본 학습 _ Unix/Linux 기본 학습

정리하면서 공부하는거 진도 너무 느려서 위기감... ㅎㄷㄷ

 

1. 기존 디렉터리 삭제(rmdir)

  rmdir(Remove Directory)명령은 기존 디렉터리 삭제시 사용

  대상 디렉터리 삭제하려면 하위에 디렉터리나 파일이 없어야 함

  -p 옵션이 계층적인 구조를 갖는 디렉터리를 한꺼번에 삭제하는 것 이라길래

  rmdir -p 하고 아래 하위 파일 있는 디렉터리 지우는데 안 되네! 오... rm -f 랑 다른애구나

  저런 불편한 애를 왜쓰...ㅈ;;

 

파일 접근 권한 관리

1.  접근 권한 변경 chmod

  1) chmod 명령은 기존 파일 또는 디렉터리에 대한 접근 권한 변경시 사용

  2) 입력 문법 -R 하위 디렉토리와 파일의 권한까지 변경

     chmod o-w daemon.c 데몬 파일의 기타 사용자에 대한 쓰기 권한을 제거

     chmod 664 daemon.c 데몬 파일의 user group 권한은 6으로(읽기, 쓰기) others는 4(읽기만)

  3) 접근 권한을 기호로 기술하는 방법

    대상 u(user) g(group) o(others)

    연산자 : + 추가 - 제거 = 지정

    접근권한 : r 읽기 w 쓰기 x 실행

    chmod go-w daemon.c

    chmod a=rw daemon.c

    chmod g+x, o-x daemon.c

  4) 접근 권한을 숫자로 기술하는 방법

    파일 접근 권한을 세개의 8진수로 기술

    r = 4, w = 2, x = 1

 

2. 소유주 또는 소유그룹 변경(chown / chgrp)

  1) 파일이나 디렉터리의 소유주나 소유그룹을 변경할 때 사용한다
     명령 실행 후 파일에 대한 이전 소유주 해당 파일에 이 명령 다시 실행 불가

  2) 입력문법

     -R 하위 디렉터리와 디렉터리 하위의 모든 파일의 소유주 변경

     -h 심볼릭 링크 파일 자체의 소유주나 그룹을 변경

      chown root daemon.c  데몬 파일의 소유주를 root로 변경

      chgrp root daemon.c 데몬 파일의 소유 그룹을 root로 변경

     * 옛날에 보안 업데이트 할 때 chown -R username daemon(디렉터리) 같은 방식으로 하위까지 소유주 변경했었네!

     * 수퍼유저 root만 실행 가능 (sudoer 면 가능한가 근데..)

   chown/chgrp 바꿀사용자 바꿀대상 (순서 알기)

 

3. 접근권한 마스크(umask)

1) chmod 명령은 기존 파일의 접근권한 변경시 사용이나 umask는 앞으로 만들어진 파일에 영향을 줌

2) 일반 파일 생성시 접근권한은 666 에서 umask 지정 값 빼고 권한 생성

    디렉터리 생성시 접근권한은 777에서 umask 지정 값 배고 권한 생성

3) 시스템 관리자는 /etc/profile 에서 파일에 umask 를 지정하여 시스템 전체 사용자에게 획일적인 umask 적용가능

4) 입력문법 mask / 예문 umask 000 (umask 값을 000으로 재지정)

  * 근데 umask 라는 명령어를 입력하면 /etc/profile에 반영되는건데 umask 명령어는 해당 사용자만 적용이고

    /etc/profile에서 수정해야 전체 사용자에게 적용되나부지? (vi /etc/profile 가보니까 뭔가 쉘 냄새나게 설정되어있네)

  5) 사용예제 umask 333 인 경우 일반 파일 생성시

    파일 생성시 쓰기와 실행 권한을 없애라는 뜻이다. 따라서 최종 접근 권한은 444가 된다.

     * 나는 666-333 해서 333 되고 쓰기랑 실행 권한만 주어졌다고? 뭔 ... 이라고 생각했는데

       철저히 팔진수로 바라봐줘야 해 

 

4. 파일검색 (find) (실무에서 이거... /로 두고 시간박치기 했던 기억만 있음 흑흑)

 1) find 명령은 시스템 내에 있는 파일 중에서 사용자가 원하는 파일을 찾을 떄 사용

    단순히 찾기만 하는게 아니라 파일에 특정 명령을 실행하도록 명령할 수 있어서 더욱 편리(??)

 2) 이 명령을 사용할 떄 지정하는 검색경로는 파일의 최상위 디렉터리인 루트 디렉터리부터 시작하는 절대경로나

    현재 디렉터리(.)로 표시하는 상대 경로를 주로 이용한다.

 3) 입력문법(옵션설명) 설명 보면 아아 하면서도 사용법을 모르네 내가

    -name file_name : 파일명을 지정(파일명으로 [], * 같은 메타문자 사용가능)

    -type : 파일 종류를 지정(f:일반파일, d:디렉터리, b:블럭장치파일, c:문자장치파일,

                                     l:심볼릭링크파일, s:유닉스도메인소켓, p:파이프) 와 이게 여기 연결되네

    -user uname 소유자명 또는 UID를 지정

    -group gname : 소유그룹 이름 또는 GID를 지정

    -size [+-]num[단위] : 파일의 크기를 지정

    -perm mode : 파일의 접근권한을 지정(8진수로 명시)

     * -perm [-]mode 로, - 없으면 정확히 일치하는거, - 있으면 그 권한 포함하는걸 찾아옴

    -atime [+-]n : access time(파일을 마지막으로 접근한 시간)을 지정

    -ctime [+-]n : change time(파일의 속성이 마지막으로 변경된 시간)을 지정

    -mtime [+-]n : modification time(파일의 내용이 마지막으로 변경된 시간)을 지정

     * [+, -] 없으면 정확히 n일, 있으면 그 수 초과/미만을 의미함

  4) 주요 옵션 실습

   쪼렙

    find . -perm 4000

    find . -perm -4000

    find . -perm 2000

    find . -perm -2000

    find . \( -perm -4000 -o -perm -2000 \) -exec ls -al {} \; (길어지면 다모름)

    파일을 현 위치에서 찾는데, 권한이 4000이거나 2000이 포함된 걸 ls -al 실행해서 상세히 보여줘?

    * -exec 옵션으로 검색 결과 파일에 대한 추가적인 명령 실행 가능

      {} 의미는 검색 결과 파일들을 ls -al 명령의 인자로 전달하기 위한 기호

      \; 는 명령어의 끝을 의미함 (와우)

    * 검색조건이 둘 이상일 경우 -o (or) -a(and)의 논리 연산 및 ()를 추가해 우선순위 지정 가능

 

    find -type f -mtime -1 -exec ls -al {} \;

    find -type f -mtime +1 -exec ls -al {} \;

    find -type f -mtime -4 -exec ls -al {} \;

 

    find -type f -size 3M -exec ls -al {} \;

    find -type f -size -3M -exec ls -al {} \;

    find -type f -size +3M -exec ls -al {} \;     

   * 단위 b : blocks(default) c : bytes k : kilobytes M : megabytes G : gigabytes

 

   find . -name "*.c" 

     -name 옵션과 함께 확장자가 .c 로 끝나는 파일을 현재 디렉터리 이하에서 검색한다

   find . -name "ip*.c" -print

     파일명의 첫 두 글자가 ip로 시작하는 c 프로그램을 현재 디렉터리 이하에서 찾는다.

 

   수준테스트

1. 현재 디렉토리의 하위 경로에서 setuid만 설정되어있는 모든 파일을 찾는 명령어는?

   find . perm 4000

2. 현재 디렉토리의 하위 경로에서 setuid가 설정되어있는 모든 파일을 찾는 명령어는?

   find . perm -4000

3. 현재 디렉토리 하위 경로에서 setuid가 설정되어있거나 setgid 가 설정되어있는 파일 목록을 상세히 찾는 명령어?

   find . \(perm -4000 -o perm -2000\) -exec ls -al \;

   (근데 \ 역할이나 사용법 볼수록 맘에 안들고 이상하네 왜 세번 나오는거야 두번도 아니고 괄호 안에서는 왜있는거니

   설마 \( 인건가. 그런거 같다.

    \가 있으면 명령이 끝난다는 의미가 아니라 특수문자를 특수문자 괄호 열기 닫기로 인식하라고 있는듯 

4. 현 디렉토리에서 마지막 수정일이 4일 미만인 파일을 검색하는 명령어는

   find -type f -mtime -4 -exec ls -al {} \;

5. 루트 디렉토리 미만에서 크기가 3메가바이트를 초과하는 파일을 검색하는 명령어는

   find / -size +3M -exec ls -al {} \;

6. 루트 디렉토리 미만에서 첫 글자가 ip로 시작하는 파일을 찾아라

  find / -name "ip*.* -print (아잌 프린트는 또 뭐야) 결과를 화면에 출력하는게 -print 래, 기본 옵션이래

오냐