시나리오: 내 쉘은 다음과 같이 실행됩니다 . 명령을 실행할 수 있는 권한이 있는지 user_A
확인하고 싶습니다 .user_B
sample_cmd
user_C
나는 sudo -n -l -u user_C -U user_B sample_cmd
이것을 달성하기 위해 사용하고 있습니다. 모든 사용자에게는 루트 권한이 없습니다.
이것이 항상 작동합니까? 아니면 가능한 실패 시나리오를 놓치고 있는 걸까요?
답변1
우선 매뉴얼 페이지에는 다음과 같이 나와 있습니다 -U
.
보안 정책으로 인해 다른 사용자를 나열하는 기능이 제한될 수 있습니다. sudoers 정책은 루트 또는 현재 호스트에 대한 모든 권한이 있는 사용자만 이 옵션을 사용할 수 있도록 허용합니다.
user_A
그래서 충분한 권한이 없으면 실패하는 것 같습니다.
예를 들어 나는 얻는다
$ sudo -l -u foo -U root ls
Sorry, user ilkkachu is not allowed to execute '/bin/ls' as root on thishost.
foo
오류 메시지는 사용자가 명령을 실행할 수 있는지 여부가 아니라 내가 명령을 실행할 수 없음을 나타내기 때문에 다소 혼란스럽습니다.