열렬히.뛰기

born2beroot - sudo 설치

école 42 > born2beroot > born2beroot - sudo 설치

sudo란?

  • superuser do 에서 유래
  • 타 계정에게 root 계정이 가진 권한을 빌려주는 것.
  • root 권한이 필요한 경우에만 제한적으로 실행하므로, 보안성과 안전을 좀 더 확보할 수 있다.
  • 또한 log 추적에 유용하다.

sudo 설치

  1. 명령어 su - 를 통해 root 계정으로 이동한다.
bash
su -

su : substitute user의 줄임말.

---login 옵션과 동일한 명령어. 환경변수가 정리되고, 변경한 사용자의 홈 디렉토리로 이동.

  1. sudo 설치 여부 확인
bash
dpkg -l sudo

dpkg란?

Debian 패키지 관리 시스템에서 사용되는 명령어로, 데비안 기반의 리눅스 배포판에서 사용됩니다. dpkg는 패키지를 설치, 업그레이드, 제거, 검색 및 정보 확인과 같은 다양한 패키지 관리 작업을 수행하는 데 사용됩니다. apt보다 낮은 수준에서 작업이 실행됩니다.

일반적으로, dpkg 명령어는 다음과 같은 형식으로 사용됩니다.

dpkg [옵션] <패키지 이름>

여기서 [옵션]은 dpkg의 다양한 옵션 중 하나, <패키지 이름>은 dpkg로 처리할 패키지의 이름입니다.

일반적으로 사용되는 dpkg 명령어의 예는 다음과 같습니다.

  • dpkg -i <패키지 파일>: 패키지 파일을 설치합니다.
  • dpkg -r <패키지 이름>: 패키지를 제거합니다.
  • dpkg -l: 시스템에 설치된 모든 패키지를 나열합니다.
  • dpkg -L <패키지 이름>: 패키지에 포함된 파일 목록을 표시합니다.
  • dpkg -s <패키지 이름>: 패키지 정보를 표시합니다.
  1. 설치되어 있지 않으면 다음과 같이 설치
c
apt-get update
apt-get install sudo

sudo 설정

sudo는 suoders 파일을 통해 진행할 수 있음.

sudoers 파일이란?

  • sudo 명령어를 사용할 수 있는 계정을 관리하는 설정 파일이다.
  • /etc 폴더 아래에 존재

기본적으로 /etc/sudoers 파일은 쓰기 권한이 없으므로 visudo를 통해 파일을 편집해야함

bash
visudo

파일 중에서 Defaults (tab) secure_path 라고 되어 있는 부분을 다음과 같이 수정한다.

bash
Defaults				secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

왠만한 코드는 다 적혀 있으니 마지막에 :/snap/bin 만 적어주면 된다.

secure_path란?

  • sudo 명령을 실행할 때는 현재 계정의 쉘이 아닌 새로운 쉘을 생성해 거기에서 명령을 실행한다.
  • 이 때 명령을 찾을 경로를 나열한 환경변수인 PATH값을 secure_path라고 한다.
  • 트로이 목마 해킹 공격을 1차적으로 방어해준다.
    • 트로이 목마 공격 : 프로그램 내부에 path값을 변경하는 코드를 숨겨놓고, 실행 시 변조된 코드가

      사용자의 정보를 변경 및 외부 서버로 정보를 전송.

이외에도 과제에서 요구한대로 요구사항을 다음처럼 추가한다.

부가설명

  • authfail_message : 권한 획득 실패 시 뜨는 문자
  • badpass_message : 암호 입력 실패 시 뜨는 문자
  • log_inputs : sudo를 통해 입력된 것은 log에 기록
  • log_outputs : sudo를 통해 출력된 것은 log에 기록
  • requiretty : tty에 연결되지 않은 채로 sudo를 실행하는 것을 금지
    • tty란? teletypewriter의 약자. 콘솔이나 터미널을 의미함.
    • cron 같은 명령어로 sudo 실행하는 것을 금지.
    • 즉, 직접 sudo를 칠 때만 sudo 권한을 허용해 주는 것.
  • iolog_dir : input과 output에 관한 로그를 저장하는 경로
  • passwd_tries : sudo 실행 지정 횟수

저장 후 종료방법

종료방법은 다음과 같다.

  1. ctrl + X 를 누른다.

  2. Y를 입력한다.

  3. Overwrite? 라는 질문에 yes를 누른다.

    sudoers 파일은 덮어쓰기를 하는 방식으로 편집해야 한다.

  4. sudoers 파일은 임시 파일을 확인 → 유효성 검사 → 시행하는 방식으로 작동.

    따라서 무조건 .tmp 파일을 저장하는 방식으로 작동해야 함.