CAB TA 4기 10일차의 기록

Urban Jungle·2025년 3월 25일

CAB TA 4기

목록 보기
10/28
post-thumbnail

디렉토리 내용 보기 실습

1. /usr/ 디렉토리의 내용을 확인해보시오.

ls /usr/

  • -l 옵션은 파일 권한, 소유자, 크기, 수정 시간 등 자세한 정보를 보여줌

  • /usr 아래에는 bin, lib, local, share, include 등이 있을 수 있음

2. /dev/ 디렉토리의 내용을 자세하게 확인하시오.

ls -l /dev/

  • 이 디렉토리는 시스템에 연결된 디바이스 파일들을 모아둔 곳

  • b는 블록 디바이스, c는 캐릭터 디바이스를 의미

  • 예: /dev/sda (디스크), /dev/tty (터미널)

3. /etc/skel 디렉토리의 내용을 숨김파일까지 아이노드 테이블 값을 보시오.

ls -lai /etc/skel/

  • -l : 자세히 보기

  • -a : 숨김파일 포함

  • -i : 아이노드 번호 표시

  • /etc/skel은 새 유저 계정 생성 시 기본으로 복사되는 설정 파일들을 담고 있음

4. /etc/cron.hourly/ 디렉토리 안의 파일들의 종류를 확인해보시오.

ls -lF /etc/cron.hourly/

  • -F 옵션은 파일 종류를 알려줘요

    • /는 디렉토리

    • *는 실행 파일

    • @는 심볼릭 링크

  • cron.hourly는 매 시간 실행되는 자동 작업 스크립트를 담고 있는 디렉토리

5. /etc/sysconfig 디렉토리 자체의 내용을 확인해보시오.

ls -ld /etc/sysconfig

  • -d 옵션은 디렉토리 자체 정보를 보여줌 (내용 아님)

  • 즉, sysconfig 디렉토리의 권한, 소유자, 수정일 등을 알 수 있음

  • 이 디렉토리는 보통 시스템 서비스나 네트워크 설정에 관련된 파일이 많음

6. /var/spool 의 하위 디렉토리의 내용까지 확인하시오.

ls -lR /var/spool

tree /var/spool

  • -R 옵션은 재귀적으로 하위 디렉토리까지 모두 출력

  • /var/spool은 메일 큐, 인쇄 대기열, cron 작업 대기 등을 위한 디렉토리


파일 내용보기 실습

1. /etc/sudoers 파일의 내용을 한꺼번에 출력하시오.

cat /etc/sudoers

  • 이 파일은 루트 권한이 필요한 민감한 설정 파일

2. /etc/sudoers 파일의 내용을 한꺼번에 출력하는데 라인 앞에 숫자를 붙이시오.

cat -n /etc/sudoers

  • -n 옵션은 라인 번호를 붙여서 출력

3. /var/log/secure 파일의 내용을 나누어서 보시오.(2가지 방법 모두)

less /var/log/secure

  • 스크롤 가능하고 /로 검색도 됨
  • 대용량 로그 파일 볼 때 최적

more /var/log/secure

  • 페이지 단위로 보여줌
  • Enter → 한 줄, Space → 한 페이지
  • 둘 다 읽기 전용으로 나눠서 볼 수 있는 도구

4. /etc/passwd 파일에서 위에 4라인을 확인하시오.

head -n 4 /etc/passwd

  • head는 파일의 앞쪽에서부터 출력하는 명령어

5. /etc/passwd 파일에서 아래부터 4라인을 확인하시오.

tail -n 4 /etc/passwd

  • tail은 끝부분에서부터 출력

6. /etc/sudoers 파일의 라인수, 단어수, 크기를 확인하시오.

wc /etc/sudoers

  • 라인수 단어수 바이트수 파일명
  • 예) 30 120 1424 /etc/sudoers

파일과 디렉토리 관리 실습 1

1. /etc/ 디렉토리를 복사해서 /root/dir1에 넣으세요.

cp -r /etc/ /root/dir1

  • dir1이 없는 상태라면 → 복사된 디렉토리 이름이 dir1이 되고
  • dir1이 미리 있으면 → /etc 디렉토리가 그 안으로 복사됨 (dir1/etc/)
  • -r은 디렉토리를 재귀적으로(recursively) 복사하겠다는 뜻
  • /etc/는 슬래시(/)가 있으므로 내용물만 복사됨
  • 결과적으로 /root/dir1/etc/ 구조가 생성됨

2. /root/dir1/etc/passwd파일을 /root/passwd1으로
   이름을 바꾸어 이동시키시오.

mv /root/dir1/etc/passwd /root/passwd1

mv ~/dir1/etc/passwd ~/passwd1

  • mv는 파일을 이동하거나 이름을 변경할 때 사용
  • 이 명령은 passwd 파일을 /root/ 디렉토리로 이동시키면서
  • 파일명을 passwd1으로 바꿈

3. /root/passwd1 파일을 복사해서 /tmp에 이름 그대로 넣으시오.

cp /root/passwd1 /tmp/

  • cp는 복사, 원본은 유지됨
  • /tmp/는 임시 디렉토리로, 시스템이 부팅될 때마다 초기화될 수 있음
  • /tmp/passwd1이 새로 생기고, /root/passwd1은 그대로 남아 있음

4. /tmp/passwd1/root/dir1/etc/passwd로 이름을 바꾸어 이동시키시오.

mv /tmp/passwd1 /root/dir1/etc/passwd

  • 이 명령은 /tmp에 있던 파일을 다시 /root/dir1/etc/로 옮기며
    원래 이름인 passwd로 되돌리는 과정

5. /root/dir1/etc/안의 group 파일과 shadow 파일을 삭제하시오.

rm ~/dir1/etc/group ~/dir1/etc/shadow

  • rm은 파일 삭제 명령어
  • ~는 현재 사용자의 홈 디렉토리를 의미 (root일 경우 /root)
  • 시스템 설정 관련 파일들을 실습용 디렉토리에서 제거하는 연습

6. /root/dir1/etc/sysconfig 디렉토리를 삭제하시오.

rm -rf /root/dir1/etc/sysconfig

  • -r: 디렉토리와 그 하위 내용까지 모두 삭제
  • -f: 존재하지 않아도 에러 출력하지 않음 (강제)
  • 위험한 명령이므로 반드시 대상 경로가 정확한지 확인 필요

7. /root/a/aa/aaa/aaaa/ 를 만드시오.

mkdir -p /root/a/aa/aaa/aaaa

  • -p 옵션이 없으면 중간 디렉토리가 없을 때 에러 발생
  • -p를 사용하면 중간 경로도 자동으로 생성해줌
  • 디렉토리 트리 구조 실습에 유용함

8. /root/a/aa/aaa/aaaa/rmdir를 사용해서 지우시오.

rmdir -p /root/a/aa/aaa/aaaa/

  • rmdir은 오직 빈 디렉토리만 삭제 가능
  • -p 옵션은 하위에서 상위까지 연속 삭제 가능
  • 디렉토리 안에 파일이 있으면 삭제 실패

링크 파일 실습 1

1. test (숫자) 로 된 파일을 만들고 하드링크파일 test-h
   심볼릭링크파일 test-s를 만드시오.

nano test -> 1 2 3
ln test test-h
ln -s test test-s

  • test-htest와 같은 inode 번호를 공유하는 실질적인 복사본
  • test-stest라는 파일 경로를 문자열로 가리키는 링크

2. test 파일의 inode 테이블 값과 test-h의 inode 테이블 값을 비교하시오.

ls -il test*

  • testtest-hinode 번호가 동일함
  • test-s는 다른 inode를 가지며, -> test 로 연결을 보여줌

3. test 파일을 /tmp 로 이동시키시오.

mv test /tmp/

  • 하드링크인 test-h는 여전히 살아 있음 (내용 유지)
  • 심볼릭 링크인 test-s는 깨짐 → 경로인 test가 사라졌기 때문

4. test(영어로 작성)을 만들고 test-htest-s 내용을 비교하시오.

nano test -> a b c

cat test-h # 출력: 1 2 3
cat test-s # 출력 실패 (No such file or directory)

5. test 의 절대 경로로 심볼릭링크 파일 test-s1 만드시오.

ln -s /root/test test-s1

  • /root/test를 가리키는 절대경로 링크
  • 원본이 어디로 이동하든 절대경로가 유지되면 문제 없음

6. test-stest-s1 파일을 /tmp로 이동시켜서 내용을 보시오.

mv test-s test-s1 /tmp

cat /tmp/test-s # (실패) → 링크가 깨졌으므로 에러
cat /tmp/test-s1 # (성공) → /root/test 내용인 a b c 출력

  • test-s는 상대경로 기반이라 원본이 없으면 읽을 수 없음
  • test-s1은 절대경로 기반이라 이동 후에도 정확히 /root/test 가리킴

권한 실습

준비사항 : p1 p2 p3 p4 p5 p6 p7

touch p1 p2 p3 p4 p5 p6 p7

  • touch는 빈 파일을 생성하는 명령어

1. p1 심볼릭 방식으로 그룹과 기타사용자에게 실행권한

chmod go+x p1

  • ggroup, oothers
  • +x는 실행 권한 추가
  • 원래 권한을 유지하면서 실행 권한만 추가

2. p2 심볼릭 방식으로 소유주의 권한을 ---로 만들 것

chmod a-rwx p2

chmod a= p2

  • a는 all (user + group + others)
  • =는 기존 권한을 전부 초기화
  • 위 명령은 모든 사용자 권한을 ---로 만듦
  • chmod u = p2를 쓴다면 소유자만 권한 제거도 가능

3. p3 심볼릭 방식으로 모든 대상 읽기와 실행 권한을 주고 쓰기 권한을 뺄 것
   단 방식은 셋팅 방식으로

chmod a=rx p3

  • = 방식은 기존 권한을 초기화한 후 지정한 권한만 부여
  • a = rxr(읽기) + x(실행)만 설정 → w(쓰기) 제거됨

4. p4 8진수 방식으로 소유주 읽기 실행, 소유 그룹 실행 권한만
   기타 사용자에게는 쓰기 권한만

chmod 512 p4

  • 5 → r-x = 4 + 1
  • 2 → -w-
  • 1 → --x

5. p5 8진수 방식으로 모든 사용자 모든 권한 삭제

chmod 000 p5

  • 000user, group, others 모두 권한 없음
  • 완전히 잠긴 파일처럼 동작함

6. p6 8진수 방식으로 소유그룹만 읽기, 쓰기 권한 줄 것

chmod 060 p6

  • 0 (user) → ---
  • 6 (group) → rw-
  • 0 (others) → ---

7. p7 8진수 방식으로 실행 권한만 줄 것

chmod +111 p7

  • 111 → --x--x--x
  • 읽기도 쓰기도 없이 오직 실행만 가능

8. /root/filea 디렉토리에 기타 사용자가 들어올 수 없도록 권한을 변경하시오.

mkdir filea
chmod o-x /root/filea

  • 디렉토리 접근은 x 권한이 핵심

  • o-xothers(기타 사용자)에게 실행 권한 제거 → 디렉토리 진입 불가


소유권 실습

9. /etc/passwd 파일을 /root/로 복사

cp /etc/passwd /root/

  • passwd는 사용자 계정 정보가 담긴 중요한 시스템 파일
  • 복사본은 /root/passwd로 생성됨 (테스트용으로 복사)

10. /root/passwd 파일의 소유자를 vagrant 로 변경

chown vagrant /root/passwd

  • chown 사용자이름 파일경로 형식
  • 파일의 소유자(user)를 vagrant로 변경
  • 그룹은 기존 그대로 유지

11. /root/passwd 파일의 소유그룹을 nobody로 변경

chown :nobody /root/passwd

  • 콜론(:) 앞이 없고 뒤에만 그룹 이름 → 그룹만 변경
  • 소유자는 그대로 유지
  • nobody는 권한이 거의 없는 기본 사용자 그룹 중 하나

12. /root/passwd 파일의 소유자와 소유그룹을 adm으로 변경

chown adm:adm /root/passwd

  • chown 사용자:그룹 형식
  • 소유자와 소유 그룹을 동시에 변경
  • adm 그룹은 보통 시스템 로그나 감사 로그 접근 권한을 가짐

13. /etc/ 디렉토리를 /root로 복사하고 /root/etc 디렉토리 안의 파일까지      shutdown로 소유자를 변경하시오.

cp -r /etc/ /root/
chown -R shutdown /root/etc/

  • cp -r: /etc 디렉토리를 재귀적으로 복사
  • chown -R: 재귀적 소유자 변경, 모든 하위 파일/디렉토리에 적용
  • shutdown 사용자는 시스템에서 자동 종료 스크립트 등을 실행할 때 사용됨

profile
똑똑해지고 싶은 공학도

0개의 댓글