RHEL 7이 있고 sudo에 대한 환경 변수를 설정하고 싶습니다.
루트 사용자로 전환하고 해당 파일에 sudo su
추가하기 위해 실행했습니다 . 그런 다음 .export
.bashrc
source
env
이제 모드 에서 실행하면 root
환경 변수가 있습니다. 그러나 종료하고 실행하면 sudo env
그렇지 않습니다.
왜 이런 일이 발생합니까?
답변1
sudo
제한된 자체 환경에서 프로그램을 실행합니다(설명서의 환경 섹션 참조 man sudo
). bash
프로그램을 실행하는 데 암시적으로 사용되지 않으므로 ~/.bashrc
명시적으로 호출할 수는 있지만 실행되지는 않습니다.
sudo bash --rcfile=~root/.bashrc -c ProgramAndParameters
실행 문자열에서 환경 변수를 설정할 수 있습니다.
sudo variable=value ProgramAndParameters
별칭이나 함수를 사용하여 기본적으로 이러한 작업을 수행할 수 있습니다.
또는 환경 파일을 추가할 수도 있습니다 /etc/sudoers
( man sudoers
자세한 내용은 참조).
답변2
sudoers 항목은 아래와 같습니다.
%DBTEAM ALL = (oracle) NOPASSWD: ALL
DBTEAM --> 그룹 이름
oracle --> oracle 사용자 이름
환경 변수 없이 대상 사용자로 전환
sudo -s -u oracle
환경 변수를 사용하여 대상 사용자로 전환
sudo -i -u oracle