쿠버네티스 전문가 양성과정 2주차 4일(12/29)

최수환·2022년 12월 29일
0

Kubernetes

목록 보기
10/75
post-thumbnail

Linux 명령어(~이어서)

chmod

  • 기호를 사용한 permission 변경

    • 파일이나 디렉터리의 접근 권한을 변경한다.
      📒 파일의 소유자나 root계정만 권한을 변경할 수 있다.
    • 형식 : chmod [옵션][권한모드 파일 or 디렉터리]
    • chmod -R : 하위 디렉터리까지 모두 변경할 수 있다
    • ls -l 했을 때 나오는 permission에서 소유자, 그룹 , 기타사용자 의 권한을 변경한다.
    • ex) 소유자 읽기권한 추가 chmod u+r 파일명
  • 숫자를 사용한 permission 변경



    ex) chmod 700 = rwx------
    ex) chmod 755 = rwxr-xr-x

  • root 계정 기본 권한 : 파일 = 644 디렉터리 = 755
    user 계정 기본 권한 : 파일 664 디렉터리 775
    📒 umask : 기본 퍼미션을 결정하는 마스크 값(보안에 사용)
    -> 파일은 기본 666,디렉터리 777인 상태에서 마스크값을 빼면 기본 퍼미션 값을 알 수 있다.
    -> umask = 077로 설정하면 user를 제외한 나머지 사용자들에게는 권한을 주지 않으면서 보안을 강화한다

  • 시스템 환경설정 파일(/etc/profile, /etc/bashrc)에서 umask가 022,002로 정의되어있느 것을 볼 수 있다.
    ex) cat /etc/bashrc | grep uamsk 로 확인
    ex) vi /etc/bashrc로 기본 umask값 변경 가능
    📒bashrc, profile 둘 다 바꿔야한다.

  • 확장 permission

    • SetUID(4) : 해당 프로그램을 실행하는 사용자가 프로그램 실행 동안 임시로 파일 소유자의 권한으로 프로그램을 수행
      -> rwxrwxrwx에서 SetUID가 설정되어있다면 rwsrwxrwx
      -> ls -l /bin/su 로 확인 가능, su를 통해 user모드에서 root모드로 전환이 가능한데 UID가 설정되어있기에 user가 root권한을 가지고 root모드로 전환이 가능한 것이다.
      -> SetUID설정 : chmod u+s test1 or chmod 4755 test1
    • SetGID(2) : 해당 프로그램을 실행하는 사용자가 프로그램 실행 동안 임시로 파일 소유그룹의 권한으로 프로그램을 수행
      -> rwxrwxrwx에서 SetGID가 설정되어있다면 rwxrwsrwx
      -> SetGID설정 : chmod 2755 test1
    • Sticky Bit(1) : Sticky Bit가 설정된 디렉토리 내에 생성된 파일들은 소유자 / root이외의 다른 사용자가 삭제하지 못하도록 설정
      -> 원래 w권한이 있으면 삭제할 수 있지만 Sticky Bit설정 되면 w권한 있어도 삭제 x
      -> ls -ld /tmp입력하면 rwxrwxrwt처럼 맨끝에 t가 있는 것처럼 Sticky Bit 확인할 수 있다.

      tmp디렉터리는 누구나 접근해서 사용할 수 있기에 아무나 삭제하지 못하도록 Sticky Bit가 설정되어 있다
      📌 디렉터리에만 설정 가능

📌 umask는 0022처럼 4자리인데 맨 앞 숫자가 확장 permission을 나타낸다.
📒 SetUID는 해커의 백도어로 사용되기도 한다 - 주기적 확인 필요

  • 참고

    su - user : 유저계정으로 접속(설정,권한도 바뀜)
    su user : 유저계정으로 접속(설정은 안바뀜)
    su - root : 루트계정으로 접속(설정,권한도 바뀜)


프로세스

  • 프로세스는 부모-자식 관계를 가지고있다. (pstree로 확인)

  • 프로세스는 PID라는 고유한 번호가 있다.

  • 데몬 프로세스 : 특정 서비스를 제공하기 위해 존재, 리눅스 커널에 의해 실행

  • 고아 프로세스 : 자식 프로세스가 실행중인데 부모 프로세스가 먼저 종료된 자식 프로세스

    • 1번 프로세스(systemd)가 고아 프로세스의 부모 프로세스가 되어 종료지원
  • 좀비 프로세스 : 자식 프로세스가 종료 되었는데도 프로세스 테이블 목록에 남아 있는 경우

    • 좀비 프로세스가 많으면 프로세스 테이블 용량이 부족해서 일반 프로세스가 실행되지 않을 수 있다.
  • ps : 현재 단말기의 프로세스 목록 출력

    ps -aux , ps -ef : 모든 프로세스 다 출력
    PPID - 부모 프로세스의 프로세스 번호
    ps -ef | grep bash : 특정 프로세스에 대한 정보 출력
    📘 TTY값이 ? 인것은 대부분 백 그라운드에서 데몬으로 시스템이 실행한 프로세스

  • 시그널 : 프로세스에 무언가 발생했음을 알리는 신호

    • kill -l : 보낼수 있는 신호 목록보기
      📘 대부분 종료 시그널만 사용함(9번 자주 사용)
    • SIGKILL : 이 신호를 받은 프로세스는 무조건 종료
    • SIGINT : Ctrl +c랑 같다
    • kill : 지정한 시그널을 프로세스에 보낸다
      • 형식 : kill [-시그널] PID
      • ex) 가상머신 터미널에서 gedit실행 후
        ps -ef | grep gedit으로 PID찾고
        kill -9 PID하면 터미널의 gedit이 강제 종료된다
        -> 다른 프로세스도 이렇게 강제종료 가능

        = pkill -9 gedit은 이름으로 프로세스 강제종료
    • top : 현재 프로세스 상태 정보를 주기적으로 출력


      = free -h 로 더 깔끔하게 메모리 정보를 볼 수 있다.
      = df -Th 로 더 깔끔하게 디스크 정보를 볼 수 있다.
profile
성실하게 열심히!

0개의 댓글