이 버그가 꽤 오랫동안 존재 한 것 같습니다! 다음은 도움이 될만한 버그 참조입니다 (구독, 투표, 힌트, 힌트 ...).
데비안 버그 # 85123 ( "sudo : SECURE_PATH는 여전히 재정의 될 수 없습니다") (2001 년부터)
이 버전의 sudo에는 여전히 Bug # 20996이있는 것 같습니다. 변경 로그에 따르면 런타임에 재정의 할 수 있지만 아직 방법을 찾지 못했습니다.
그들은 sudoers 파일에 다음과 같은 것을 넣는 것을 언급합니다.
Defaults secure_path="/bin:/usr/bin:/usr/local/bin"
그러나 적어도 우분투 8.10에서 그렇게하면이 오류가 발생합니다.
visudo: unknown defaults entry `secure_path' referenced near line 10
우분투 버그 # 50797 ( "with-secure-path로 빌드 된 sudo는 문제가 있습니다")
설상가상으로 sudoers 파일에서 secure_path를 다시 지정할 수는 없습니다. 예를 들어, 사용자가 / opt 아래의 항목에 쉽게 액세스 할 수 있도록하려면 sudo를 다시 컴파일해야합니다.
예. 다시 컴파일 할 필요없이이 "기능"을 재정의하는 방법 이 필요 합니다. 환경에 가장 적합한 것이 무엇인지 알려주고이를 해제 할 수있는 방법을 제공하지 않는 것보다 보안 문제는 더 나쁘지 않습니다.
이것은 정말로 성가신 일입니다. 보안상의 이유로 기본적으로 현재 동작을 유지하는 것이 현명 할 수 있지만 소스 코드에서 다시 컴파일하는 것 이외의 방법으로 재정의하는 방법이 있어야합니다! 많은 사람들이 PATH 상속이 필요합니다. 왜 관리자가 조사하지 않는지 궁금합니다. 수용 가능한 해결책을 찾기가 쉽습니다.
나는 이것을 다음과 같이 해결했다.
mv /usr/bin/sudo /usr/bin/sudo.orig
그런 다음 다음을 포함하는 / usr / bin / sudo 파일을 작성하십시오.
#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"
일반 sudo는 비보안 경로 sudo와 동일하게 작동합니다.
우분투 버그 # 192651 ( "스도 경로는 항상 재설정됩니다")
이 버그의 복제본이 원래 2006 년 7 월에 제출되었다는 점을 고려할 때, 효과가없는 env_keep이 얼마나 오래 작동했는지는 확실하지 않습니다. 사용자가 위에 나열된 것과 같은 트릭을 사용하도록 강요하더라도 sudo 및 sudoers의 매뉴얼 페이지에는 PATH 수정 옵션이 사실상 중복된다는 사실이 반영되어야합니다.
실제 실행을 반영하도록 문서를 수정하는 것은 불안정하지 않으며 매우 유용합니다.
우분투 버그 # 226595 ( "경로 유지 / 지정 불가능")
PATH에 추가 비표준 바이너리 폴더로 sudo를 실행할 수 있어야합니다. / etc / environment에 이미 요구 사항을 추가 한 후 sudo에서 명령을 실행할 때 누락 된 명령에 대한 오류가 발생했을 때 놀랐습니다 .....
나는 이것을 성공적으로 해결하기 위해 다음을 시도했다.
" sudo -E
"옵션을 사용하면 작동하지 않습니다. 기존 경로는 여전히 sudo에 의해 재설정되었습니다.
/ etc / sudoers에서 " Defaults env_reset
"를 " Defaults !env_reset
"로 변경해 도 작동하지 않습니다 (sudo -E와 결합 된 경우에도)
/ etc / sudoers에서 주석 해제 env_reset
(예 : " #Defaults env_reset
")도 작동하지 않았습니다.
Defaults env_keep += "PATH"
/ etc / sudoers에 ' '를 추가 해도 작동하지 않았습니다.
man 문서에도 불구하고 sudo는 PATH와 관련하여 완전히 하드 코딩되어 있으며 사용자 PATH 유지와 관련된 유연성을 허용하지 않습니다. sudo를 사용하여 루트 권한으로 기본 소프트웨어가 아닌 소프트웨어를 실행할 수 없으므로 매우 짜증납니다.