WHEREIS

sudo 권한으로 실행 시 기존 유저의 환경 변수를 읽지 못하는 경우가 발생하죠?

무엇 때문 일까요?



CentOS 5.x에서 sudo 설정 파일인 /etc/sudoers에는 다음 설정이 있다.
(배포판별로 차이가 있으며, 또한 CentOS 4.x과도 다르다.)

1. Defaults spec중 env_reset, env_keep

 
Defaults    env_reset
Defaults    env_keep = "...환경변수명..."
 



env_reset는 HOME, LOGNAME, PATH, SHELL, TERM, USER을 제외한 모든 환경 변수를 reset시킨다.
현재 실행중인 환경 변수를 그대로 사용하고자 한다면, env_reset 을 주석처리한다. 그러나 이보다 더 안전한 env_keep을 권장한다. env_keep = ""에 정의된 변수명은 사용자의 환경변수값을 유지시켜준다.

2. Defaults spec중 requiretty

 Defaults    requiretty
 



사용자가 실제 tty로 로긴한 경우에만 실행을 허용한다. 따라서, crontab이나 웹프로그램을 통해서 sudo를 실행한 경우는 실행되지 않는다. crontab 등에서 실행하기 위해서는 주석처리한다.


출처 : http://coffeenix.net/ 




다음과 같이 그룹 사용자 혹은 유저를 추가하여 환경변수를 유지 할 수 있다.굿모닝3


Defaults:%wheel	!env_reset
Defaults:%users	env_keep=PATH



이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading