개념 사전 · 프로그램
sudo와 권한 위임
sudo
는 허용된 사용자가 정책에 정해진 다른 실행 주체로 명령을 수행하도록 중재하는 프로그램이다. 비밀번호를 아는지와 특정 명령·인자를 실행할 권한이 있는지는 별개이며, 위임한 프로그램의 기능 전체가 권한 범위에 영향을 준다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 상시 관리자 로그인 없이 필요한 관리 작업을 제한적으로 위임한다.
- 대상 사용자·그룹·명령·인자 조건을 정책으로 표현한다.
- 누가 어떤 실행 권한을 사용했는지 감사 가능한 기록을 남긴다.
02어떤 순서로 동작하나
- 호출 정보 수집
가 호출 사용자와 요청한 실행 사용자·명령·인자를 정책 검사 대상으로 받는다.
- 정책과 인증
등 정책 플러그인이 허용 여부를 판단하고 구성에 따라 호출자의 인증을 요구한다.
- 실행 환경 준비
허용된 대상 자격과 환경 규칙을 적용하여 명령을 실행한다. 전달 환경과 작업 위치도 결과에 영향을 준다.
- 명령 결과 반환
실행된 프로그램의 결과와 종료 상태가 돌아온다. 허용 성공 자체는 프로그램의 업무 처리 성공을 의미하지 않는다.
03먼저 알아둘 용어와 구성요소
- 는 누가, 어느 호스트에서, 누구로, 어떤 명령을 실행할 수 있는지 표현한다.
- learner ALL=(root) /usr/bin/systemctl restart demo.service는 learner가 root로 해당 경로와 지정 인자에 맞는 명령을 실행하도록 위임하는 예다.
- %team은 사용자 한 명 대신 그룹을 뜻한다. 실제 실행 파일 경로와 서비스 이름은 배포 환경에 맞아야 한다.
- visudo는 구문 검사를 포함한 편집 도구이며 -l은 현재 위임 내용을 보여 준다. 는 자체의 추가 암호 요구를 생략하는 태그이지 명령의 위험을 줄이는 설정이 아니다.
- 셸·편집기·패키지 관리자처럼 다른 명령을 실행할 수 있는 도구나 사용자가 수정 가능한 스크립트를 root로 허용하면 좁은 위임처럼 보여도 권한 확대가 가능하다.
- setuid 실행 파일이나 권한을 가진 로그인 도구는 정해진 규칙으로 자격을 바꿀 수 있다. 이를 모든 가 로그인 절차를 다시 수행한다는 뜻으로 확대하면 안 된다.
04예제로 따라가기
- 서비스 상태 조회만 허용한 정책과 임의 systemctl 인자를 허용한 정책은 관리할 수 있는 범위가 다르다.
- 편집기를 root로 실행하게 하면 그 편집기의 파일 쓰기나 외부 명령 실행 기능까지 권한 확대로 이어질 수 있다.
- 인증은 성공했어도 실행 대상이 읽기 전용 파일 시스템에 쓰려 하면 작업이 실패한다. 인증 로그와 작업 종료 상태를 나누어 읽는다.
05혼동하기 쉬운 점과 확인 기준
- 인증 요구를 만족하는 것과 가 해당 대상 사용자·명령·인자를 허용하는 것은 별개다. 는 두 번째 권한을 자동으로 넓히지 않는다.
- 단순한 명령 이름뿐 아니라 인자와 그 명령이 읽는 파일의 쓰기 권한까지 권한 모델에 포함한다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.