루트로 전환하고 일반 사용자와 동일한 도트파일을 사용하려면 어떻게 해야 합니까?

루트로 전환하고 일반 사용자와 동일한 도트파일을 사용하려면 어떻게 해야 합니까?

저는 Mac OSX에서 zsh를 실행하고 있는데 가끔 터미널에서 루트로 전환하고 싶습니다.

모든 도트 파일, 환경 경로 구성 및 스크립트를 일반 사용자로 유지하고 루트로 많은 작업을 수행하고 싶습니다.

sudo bash나는 루트로 전환 하는 쉬운 방법으로 실행했지만 sudo zsh일반 사용자로서 모든 zsh 구성을 실행할 수 없다는 단점이 있습니다.

일련의 명령을 실행하고 일반 사용자의 모든 구성/환경 설정을 유지하기 위해 "루트가 되는" 가장 좋은 방법은 무엇입니까? "

예를 들어 일반 사용자를 위해 다음을 사용자 정의하고 루트 사용자도 사용할 수 있도록 하려고 합니다.

  • .zshrc
  • ~/빈
  • .별명
  • vim 모드 입력

편집: 자주 "루트 권한으로 실행"하면 안 된다는 점을 참고하세요. 하지만 나는 그렇게 생각하지 않습니다. 그러나 때로는 몇 가지 간단한 명령을 루트로 계속 실행해야 하며 다른 목적으로는 사용하지 않고 해당 목적으로만 tmux 분할을 켭니다.

답변1

공통 도트 파일을 얻으려면 환경 변수를 sudo변경하지 마십시오 . HOME이 문제가 발생하는지 여부는 sudo의 컴파일 타임 및 런타임 구성에 따라 다릅니다. 을 보존하려면 파일 HOME을 편집하고 sudoers(실행하고 visudo이 파일을 직접 편집하지 마십시오!) 파일에 다음이 포함되어 있는지 확인하십시오.

Defaults !always_set_home, !set_home
Defaults env_keep+=HOME

(컴파일 옵션에 따라 이 중 일부는 불필요할 수 있습니다.) 물론 sudo -i.

그러나 루트로서 너무 많은 작업을 수행하지 마십시오. 예를 들어 편집기를 루트로 실행하는 대신 sudoedit.

답변2

당신은 거의 확실히 이것을하고 싶지 않습니다.

루트 사용자가 일반 사용자의 도트 파일을 가리키는 경우 해당 도트 파일에 대한 권한이 변경되어 일반 사용자의 상황이 복잡해질 수 있습니다.

당신이 할 수 있는 일은 로그인할 때마다 루트 사용자의 홈 디렉토리에 파일을 복사하는 것입니다.

이 파일을 ~/.zshenv(루트 사용자용)에 복사하고 권한을 조정하세요. 이렇게 하면 환경을 계속 실행하고 사용자 지정 설정을 사용할 수 있습니다.

개인적으로 여러 루트 명령을 실행하고 싶지만 사용자 환경을 보존 sudo su -해 볼 수도 있습니다 .sudo -E su -p

의무적인 경고!

달리는 데는 타당한 이유가 없습니다 sudo su. 멀리더 나은 것sudo모든 명령 전에 실행하십시오. 즉, sudo su가끔 그런 일을 합니다. 그러나 일반적인 규칙은 그렇지 않습니다 sudo su.

관련 정보