본문 바로가기

시스템

[리눅스/정보보안기사] 리눅스 필수 명령어 가이드 요약

 

1. 파일 및 디렉터리 관리

구분 명령어 내용 예시 결과 (설명)
디렉터리 관리
ls 디렉터리 및 파일 정보 나열 ls -l 파일 권한, 크기 등 상세 정보 출력
cd 작업 디렉터리 변경 cd /home /home 디렉터리로 위치 이동
pwd 현재 작업 디렉터리 경로 출력 pwd /usr/bin 등 현재 절대 경로 표시
mkdir 새로운 디렉터리 생성 mkdir data data'라는 이름의 폴더 생성
rmdir 비어 있는 디렉터리 삭제 rmdir data data' 폴더 삭제 (내용물 있을 시 실패)
파일 관리
cat 파일 내용 출력 및 병합 cat a.txt a.txt 파일의 전체 텍스트 출력
more 파일 내용을 페이지 단위 출력 more long.txt 화면 단위로 끊어서 내용 확인 가능
head 파일의 앞부분 출력 head -n 5 a.txt 파일의 상위 5줄만 출력
tail 파일의 뒷부분 출력 tail -n 5 a.txt 파일의 하단 5줄만 출력
mv 파일 이동 및 이름 변경 mv a.txt b.txt a.txt 파일명을 b.txt로 변경
cp 파일 및 디렉터리 복사 cp a.txt c.txt a.txt를 복사한 c.txt 파일 생성
rm 파일 및 디렉터리 삭제 rm file.txt 해당 파일 삭제 (-r 옵션 시 디렉터리 삭제)
ln 링크 파일(하드/심볼릭) 생성 ln -s a.txt link a.txt를 가리키는 바로가기(심볼릭) 생성
권한 관리
chmod 접근 권한 변경 chmod 755 s.sh 파일에 실행 권한 등 부여
chown 파일 소유주 변경 chown user a.txt 파일 소유자를 user로 변경
chgrp 소유 그룹 변경 chgrp dev a.txt 파일 소유 그룹을 dev로 변경
touch 빈 파일 생성/시간값 변경 touch new.txt 내용이 없는 0 Byte 파일 생성
umask 생성 시 기본 권한 설정 umask 022 이후 생성될 파일의 기본 권한에 영향
파일 응용
wc 행, 단어, 문자 수 출력 wc -l a.txt 파일이 총 몇 줄인지 숫자로 출력
cut 특정 필드/바이트 추출 cut -d: -f1 /etc/passwd 구분자(:) 기준 첫 번째 필드만 추출
paste 파일 행 병합 paste f1 f2 두 파일의 내용을 옆으로 나란히 붙임
tr 문자 치환 또는 삭제 echo "abc" | tr a A a'를 'A'로 치환하여 "Abc" 출력
sort 파일 내용 정렬 sort list.txt 텍스트 줄을 알파벳/숫자순 정렬
split 파일을 작은 단위로 분할 split -l 10 a.txt 10줄씩 끊어서 여러 파일로 분할
uniq 중복되는 인접 행 제거 uniq list.txt 연속으로 중복된 줄을 하나로 합침
cmp 두 파일을 바이트 단위 비교 cmp f1 f2 두 파일이 다르면 첫 차이 지점 출력
comm 두 파일 행 비교 comm f1 f2 각 파일에만 있는 줄과 공통 줄 구분
diff 두 파일의 차이점 검사 diff f1 f2 두 파일의 줄 단위 차이점 상세 표시
grep 특정 패턴/문자열 검색 grep "linux" a.txt "linux"가 포함된 행만 찾아 출력
find 파일 검색 find . -name "a.txt" 현재 폴더에서 a.txt 파일 위치 검색

 

2. 디렉터리 탐색 및 정보 확인 (ls)

보안관제 시절, 침해사고 의심 서버에 접속하면 가장 먼저 실행했던 명령어가 바로 ls입니다. 단순히 파일 목록을 보는 것을 넘어, 숨겨진 악성 스크립트나 권한 설정을 확인하는 것이 핵심입니다.

  • ls -l: 파일의 권한, 소유자, 크기, 수정 시간 등을 상세히 출력합니다. (실무 필수)
  • ls -a: 이름이 .으로 시작하는 숨김 파일까지 모두 보여줍니다. (악성코드는 주로 숨김 파일로 존재하죠!)
  • ls -R: 하위 디렉터리 구조까지 한 번에 훑을 때 유용합니다.
  • ls -i: 파일의 고유 번호인 Inode Number를 확인합니다. 파일 시스템 분석 시 유용합니다.

💡  Tip: > 실무에서는 보통 ls -al 또는 ls -alt (시간순 정렬) 조합을 가장 많이 사용합니다. 최근에 생성된 수상한 파일이 있는지 파악하기 위함이죠!


3. 접근권한(Permission) 관리

보안의 기본 원칙 중 하나는 **'최소 권한의 원칙'**입니다. 파일이나 디렉터리에 불필요한 권한이 부여되어 있는지 확인하고 수정하는 작업은 보안 운영의 핵심입니다.

  • 권한 종류: r(4) - 읽기, w(2) - 쓰기, x(1) - 실행
  • 파일 종류 구분:
    • -: 일반 파일
    • d: 디렉터리
    • l: 심볼릭 링크 (바로가기)
    • b: 블록 장치 파일
    • c: 문자 장치 파일
    • p: 네임드 파이프
    • s: 유닉스 도메인 소켓
  • 명령어 활용:
    • chmod: 파일이나 디렉터리의 권한 변경 (예: chmod 644 file.txt)
    • chown: 파일의 소유자나 그룹 변경

4. 생성 파일의 기본 권한 설정 (umask)

보안 설정 점검(Hardening) 시 빠지지 않는 항목이 바로 umask입니다. 새로 생성되는 파일이 너무 과한 권한을 가지지 않도록 제한하는 역할을 합니다.

  • 계산 방식: * 파일: $666 - umask = 기본 권한$
    • 디렉터리: $777 - umask = 기본 권한$
  • 예를 들어, umask 022로 설정하면 파일은 644, 디렉터리는 755 권한으로 생성됩니다.

5. 강력한 탐색 도구 (find)

특정 조건의 파일을 찾아야 할 때 find만큼 유용한 도구는 없습니다. 특히 권한이 잘못 설정된 파일을 찾을 때 빛을 발합니다.

  • 문법: find [경로] [옵션] [액션]
  • 실무 활용 예시:
    • find / -name "*.log": 확장자가 log인 모든 파일 찾기
    • find / -perm -4000: SetUID가 설정된 파일 찾기 (권한 상승 공격 확인 시 필수!)
    • find /etc -mtime -3: 최근 3일 이내에 수정된 설정 파일 확인