루트 계정에 루트가 아닌 사용자 구성 사용

루트 계정에 루트가 아닌 사용자 구성 사용

터미널을 사용하고 su루트 권한으로 명령을 실행할 때 sudo해당 사용자의 홈 디렉터리에 저장된 su"루트가 아닌 사용자"(내가 전화했거나 보낸 사람)의 구성을 적용할 수 있습니까?sudo

예를 들어, /etc/some_fileedit config files 를 사용 하고 싶고 vimvim 구성 파일이 에 있다고 가정해 보겠습니다 /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를 설정하십시오 .

visudosudo 구성을 편집하려면 실행하세요 . 옵션이 always_set_home설정 해제되어 있고 목록 HOME에 있는지 확인하세요. env_keep다음 줄을 추가합니다.

Defaults !always_set_home
Defaults env_keep+="HOME"

Defaults always_set_home행이 있는 것처럼 행을 삭제합니다 .

관련 정보