터미널을 사용하고 su
루트 권한으로 명령을 실행할 때 sudo
해당 사용자의 홈 디렉터리에 저장된 su
"루트가 아닌 사용자"(내가 전화했거나 보낸 사람)의 구성을 적용할 수 있습니까?sudo
예를 들어, /etc/some_file
edit config files 를 사용 하고 싶고 vim
vim 구성 파일이 에 있다고 가정해 보겠습니다 /home/myuser/.vimrc
. 명령줄을 실행하고 를 입력하면 sudo vim /etc/some_file
"my"가 아름답고 잘 구성되기를 원합니다. vim
표시되는 내용입니다. 하지만 내가 얻은 것은 vim
플러그인 등이 없는 추악한 기본 구성 입니다.
/root에 있는 루트 사용자 파일 대신 내 사용자 프로필을 만들 su
거나 사용할 수 있나요?sudo
답변1
사용sudo -E
환경을 보호하세요:
$ export FOO=1
$ sudo -E env | grep FOO
FOO=1
이렇게 하면 가지고 있는 다른 환경 변수가 보존되므로 $HOME
시작한 것과 동일한 구성 파일이 루트로 실행되는 프로그램에 액세스할 수 있습니다.
업데이트 sudoers
하여 비활성화 할 수 있습니다.env_reset
설정은 일반적으로 기본적으로 활성화되어 있는 모든 환경 변수를 지웁니다. sudo -E
거기에서 사용되는 기능을 활성화해야 할 수도 있습니다 . sudoers
관련될 수 있는 몇 가지 다른 설정이 있습니다 . env_keep
기본적으로 유지되는 특정 변수를 지정할 수 있는 설정과 env_remove
항상 삭제되는 변수를 선언하는 설정이 있습니다. sudo sudo -V
를 사용하여 어떤 변수가 유지되거나 유지되지 않는지 확인할 수 있습니다 .
수정할 수 없는 경우 sudoers
다른 옵션은 환경을 명시적으로 제공하는 것입니다.
sudo env HOME=$HOME command here
이 작업을 자동으로 수행하도록 셸 별칭을 만들 수 있으므로 직접 입력할 필요가 없습니다.
어느 쪽이든 이 작업을 수행하면 잠재적으로 원치 않는 부작용이 발생할 수 있습니다. 예를 들어 홈 디렉터리에 파일을 생성하려는 프로그램을 실행하면 해당 파일은 루트로 생성되며 일반 사용자는 이를 수행할 수 없습니다. 그들에게 편지를 쓰려고.
특별한 경우, 시스템의 유일한 사용자인 경우 시스템 전체 사용자 vim
로 만들 수도 있습니다 ..vimrc
/etc/vimrc
답변2
HOME
환경 변수를 보존하려면 sudo를 설정하십시오 .
visudo
sudo 구성을 편집하려면 실행하세요 . 옵션이 always_set_home
설정 해제되어 있고 목록 HOME
에 있는지 확인하세요. env_keep
다음 줄을 추가합니다.
Defaults !always_set_home
Defaults env_keep+="HOME"
Defaults always_set_home
행이 있는 것처럼 행을 삭제합니다 .