루트 권한으로 애플리케이션을 실행해야 하는데 애플리케이션이 원래 사용자의 프로필에 액세스해야 합니다. 따라서 sudo로 애플리케이션을 실행하면 애플리케이션이 제대로 실행되지 않습니다.
원래 로그인한 사용자의 프로필을 계속 사용하도록 루트 권한으로 애플리케이션을 시작하려면 어떻게 해야 합니까?
맥 OS X 10.10 입니다
답변1
응용 프로그램은 일반적으로 환경 변수가 나타내는 디렉터리에서 각 사용자 파일을 읽습니다 HOME
.
기본적으로 sudo 값은 변경되지 않으므로 HOME
여전히 원래 사용자의 홈 디렉터리를 가리킵니다. 이를 대상 사용자의 홈 디렉터리로 변경하기 위해 sudo에 대한 여러 옵션이 있으므로 그 중 어느 것도 켜져 있지 않은지 확인하십시오.
always_set_home
파일에서 이 옵션을 설정 하지 마십시오sudoers
.env_reset
옵션을 설정한 경우 해당 옵션을 목록HOME
에 포함하세요.env_keep
-H
또는 명령줄 옵션을-s
전달 하지 마십시오 .-i
하나의 명령에 대한 옵션을 설정하려면 sudoers
다음과 같은 것을 사용하십시오.
Defaults !myapp env_keep+=HOME,!always_set_home
변수가 유지되지만 애플리케이션이 그곳을 찾지 못하는 경우 , 홈 디렉토리에서 유효한 UID를 찾는 대신 변수 HOME
에 주의를 기울이도록 지시하는 애플리케이션별 방법을 찾아야 합니다 .HOME
응용 프로그램이 루트로 실행되도록 요구하지만 실제 사용자에게 속한 파일을 읽는 것은 일반적이지 않습니다. 어쩌면 이러한 파일이 시스템 구성 디렉터리에 있어야 할까요?