sudoers - 특정 사용자로 명령을 실행할 때

sudoers - 특정 사용자로 명령을 실행할 때

특정 사용자로 특정 명령을 실행할 때 특정 환경 변수를 보존하고 싶습니다 sudo. 아래에 복사된 단락을 올바르게 읽으면(강조 표시된 섹션 참조) 이 작업을 수행할 수 있다고 man sudoers제안된 것 같지만 아래의 구문 사양은 이 섹션과 일치하지 않는 것 같습니다(해당 섹션이 아닌 한?). 모든 예. 가능합니까? 현재 실패한 시도는 다음과 같습니다.DefaultsRunas

/etc/sudoers.d/certain:4:23: syntax error
Defaults:certain-user!/certain-command.sh env_keep += "ENV_VAR1 ENV_VAR2"
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

나는 이 접근 방식의 변형(공백 추가, 명령 변경 등)을 시도했지만 소용이 없었습니다.

내가 언급한 단락은 다음과 같습니다.

기본값
일부 구성 옵션은 하나 이상의 Default_Entry 라인을 통해 런타임 시 기본값이 변경될 수 있습니다. 이는 모든 호스트의 모든 사용자, 특정 호스트의 모든 사용자, 특정 사용자, 특정 명령 또는명령은 특정 사용자로 실행됩니다.. 각 명령 항목에는 명령줄 인수가 포함될 수 없습니다. 매개변수를 지정해야 하는 경우 Cmnd_Alias를 정의하고 참조하세요.

Default_Type ::= 'Defaults' |  
                 'Defaults' '@' Host_List |  
                 'Defaults' ':' User_List |  
                 'Defaults' '!' Cmnd_List |  
                 'Defaults' '>' Runas_List

어떤 도움이나 통찰력이라도 대단히 감사하겠습니다.

답변1

"특정 사용자로 실행되는 명령"을 "특정 사용자로 실행되는 특정 명령"으로 해석하신 것 같지만 "모든 명령이 특정 사용자로 실행되는 경우"를 의미한다고 생각했습니다.

어쨌든, 실행 도구 및 명령에 대한 제한 사항을 추가하는 것은 불가능합니다 Defaults. 여기에 표시된 구문에서는 이를 허용하지 않습니다. 그렇다면:

Default_Type ::= 'Defaults' |  
                 Defaults_Type '@' Host_List |  
                 Defaults_Type ':' User_List |  
                 Defaults_Type '!' Cmnd_List |  
                 Defaults_Type '>' Runas_List

그러면 원하는 것이 가능할 수도 있지만 언급한 대로 구문에서는 다음만 허용합니다.

Defaults
Defaults@...
Defaults:...
Defaults!...
Defaults>...

관련 정보