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 bash
or sudo zsh
como 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 sudo
não altere a HOME
variá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 sudoers
arquivo (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 -p
preservar o ambiente do usuário.
Aviso obrigatório!
Nunca há um bom motivo para correr sudo su
. É longemelhorarpara ser executado sudo
antes de cada comando. Dito isto, às vezes faço isso sudo su
. Mas a regra geral é não sudo su
.