sudoers 파일을 사용하여 sudo 접근 제한
이 단계에서는 sudoers 파일을 사용하여 사용자의 sudo 권한을 특정 명령으로 제한하는 방법을 배우게 됩니다. 이는 최소 권한의 원칙을 구현하며, 사용자는 작업을 수행하는 데 필요한 최소 권한만 가져야 합니다.
sudoers 파일 이해
/etc/sudoers 파일은 누가 sudo 명령을 사용할 수 있고 어떤 명령을 실행할 수 있는지 제어합니다. 이 파일은 구문 오류로 인해 시스템에서 잠길 수 있으므로 일반 텍스트 편집기로 직접 편집해서는 안 됩니다. 대신, 저장하기 전에 구문 오류를 확인하는 visudo 명령을 항상 사용하십시오.
sudoers 파일 편집
sudoers 파일을 안전하게 편집하려면 visudo 명령을 사용하십시오.
sudo visudo
그러면 sudoers 파일이 기본 편집기 (일반적으로 nano 또는 vi) 에서 열립니다.
sudoers 구문 이해
sudoers 파일에서 sudo 항목의 기본 구문은 다음과 같습니다.
user_or_group host=(run_as_user:run_as_group) NOPASSWD: commands
여기서:
user_or_group: 이 규칙이 적용되는 사용자 또는 그룹
host: 이 규칙이 적용되는 호스트 이름 (일반적으로 ALL)
run_as_user: 명령이 실행될 사용자 (일반적으로 ALL, 즉 root)
run_as_group: 명령이 실행될 그룹 (생략 가능)
NOPASSWD: 암호를 입력하지 않고 명령을 실행할 수 있도록 하는 선택적 태그
commands: sudo 로 실행할 수 있는 특정 명령
제한된 sudo 접근 추가
파일 끝으로 스크롤하여 다음 줄을 추가하여 trusted_advisor에게 암호 없이 cp 및 mv 명령만 실행할 수 있는 권한을 부여합니다.
trusted_advisor ALL=(ALL) NOPASSWD: /bin/cp, /bin/mv
nano 에서 파일을 저장하려면 Ctrl+O를 누른 다음 Enter를 누르고, 종료하려면 Ctrl+X를 누릅니다.
제한된 sudo 접근 테스트
이제 제한된 sudo 접근이 예상대로 작동하는지 테스트해 보겠습니다. 먼저 현재 디렉토리에 테스트 파일을 생성해 보겠습니다.
echo "This is a test file" > important_file.txt
이제 trusted_advisor 사용자로 전환합니다.
su - trusted_advisor
메시지가 표시되면 암호를 입력합니다.
파일을 root 디렉토리로 복사해 보십시오. 허용되어야 합니다.
sudo cp /home/labex/project/important_file.txt /root/
이것은 암호를 묻지 않고 성공해야 합니다.
이제 허용된 목록에 없는 cat과 같은 명령을 실행해 보십시오.
sudo cat /root/important_file.txt
cat이 허용된 명령 목록에 없으므로 권한 거부 오류가 발생해야 합니다.
마지막으로, 파일이 root 디렉토리로 복사되었는지 확인합니다.
sudo ls /root/
출력에 important_file.txt가 표시되어야 합니다.
trusted_advisor 사용자 세션을 종료합니다.
exit
테스트 파일 제거
정리하려면 테스트 파일을 제거합니다.
sudo rm important_file.txt