Como mudar para root e usar os mesmos dotfiles do meu usuário normal?

Como mudar para root e usar os mesmos dotfiles do meu usuário normal?

Eu executo o zsh no Mac OSX e às vezes quero mudar o terminal para o usuário root.

Eu gostaria de manter todos os meus dotfiles e configuração e scripts do caminho do ambiente do meu usuário regular e apenas fazer muitas coisas como root.

Estou executando sudo bashor sudo zshcomo minha maneira fácil de mudar para root, mas isso tem a desvantagem de não executar todas as minhas configurações zsh que tenho para meu usuário regular.

Qual é a melhor maneira de "tornar-se root" para executar uma série de comandos e manter toda a configuração/configuração do ambiente que tenho para meu usuário normal?

Por exemplo, personalizei o seguinte para meu usuário normal e gostaria de ter todos disponíveis para o usuário root também:

  • .zshrc
  • ~/bin
  • .apelido
  • modo vim para entrada

EDIT: Observe que estou ciente de que não devo "executar como root" muito. E eu não. Mas às vezes tenho que executar constantemente alguns comandos simples como root, e abro uma divisão do tmux apenas para esse uso, e nenhum outro.

Responder1

Para obter seus arquivos de ponto habituais, certifique-se de que isso sudonão altere a HOMEvariável de ambiente. Se isso acontece depende da configuração em tempo de compilação e tempo de execução do sudo. Para preservar HOME, edite o sudoersarquivo (execute visudo, nunca edite este arquivo diretamente!) e certifique-se de que ele contém

Defaults !always_set_home, !set_home
Defaults env_keep+=HOME

(Alguns deles podem ser desnecessários dependendo das opções de compilação.) E, claro, não execute sudo -i.

Evite fazer muito como root. Por exemplo, em vez de executar um editor como root, use sudoedit.

Responder2

É quase certo que você não deseja fazer isso.

Se o seu usuário root foi apontado para os arquivos de ponto dos usuários normais, as permissões nesses arquivos de ponto podem mudar, complicando assim as coisas para o seu usuário normal.

O que você poderia fazer é copiar os arquivos para o diretório inicial do usuário root em cada login.

Em algum lugar no seu ~/.zshenv (para root) copie os arquivos e ajuste suas permissões. Dessa forma, você mantém seu ambiente são e pode usar sua personalização.

Pessoalmente, se eu quiser executar vários comandos root, sudo su -mas você pode tentar sudo -E su -ppreservar o ambiente do usuário.

Aviso obrigatório!

Nunca há um bom motivo para correr sudo su. É longemelhorarpara ser executado sudoantes de cada comando. Dito isto, às vezes faço isso sudo su. Mas a regra geral é não sudo su.

informação relacionada