sudo -i 및 ~/.pam_environment

sudo -i 및 ~/.pam_environment

대신 사용자 환경 변수를 설정하는 데 사용했는데 ~/.pam_environment훌륭하게 작동합니다. PAM은 내가 사용하는 셸, 사용 방법 등에 관계없이 모든 설정을 관리합니다. 내가 발견한 문제 중 하나는 ;를 사용하여 대화형 셸을 열 때입니다 sudo -i. ~/.pam_environment사용되지는 않은 것 같습니다 . 예를 들어 user 로 전환하려면 을 foo실행합니다 sudo -iu foo. 이 작업을 수행한 후에는 /home/foo/.pam_environment에 지정된 환경 변수가 설정되지 않습니다.

sudo이 주제와 관련하여 내가 찾은 것은 생성된 프로세스에 대부분의(전부는 아니지만) 환경 변수를 전송하지 않는다는 사실입니다 . 그러나 나는 이전 환경 변수를 유지하고 싶지 않습니다. 단지 변경하려는 사용자를 존중하고 싶습니다.

이를 수행할 수 있는 방법이 있습니까? 이것이 기본 동작이 아닌 이유(보안?)가 있습니까?

답변1

sudo 환경 변수는 sudoers 파일에 의해 제어됩니다. ~에 따르면sudoers를 위한 매뉴얼 페이지. 기본적으로 sudoers 파일에는 env_reset이 옵션이 활성화되어 있으므로 최소 환경이 설정됩니다. env_check및 옵션을 통해 env_keep변수를 화이트리스트에 추가 할 수 있습니다 . 또한 sudo의 PATH는 secure_path옵션에 의해 제어됩니다.

관련 정보