Alterar local do diretório inicial da raiz

10

Gostaria de alterar a localização do diretório inicial do root de / root para / var / root. Eu costumava ser capaz de fazer isso com usermod:

usermod -d /var/root root

No entanto, com a versão mais recente do usermod, você não pode alterar o diretório do usuário conectado no momento. Estou tentando alterar o diretório inicial do root no momento da inicialização em um script de configuração do sistema que é executado na primeira vez em que um sistema é inicializado, portanto não posso ser outro usuário.

Existe outra maneira de alterar o diretório inicial do usuário conectado no momento (raiz neste caso)?

Eu provavelmente poderia sed / etc / passwd, mas isso parece desleixado.

Kevin S.
fonte
Hard-link / root para / var / root?
Garrett
Você pode modificar o / etc / passwd manualmente, eu acho.
billc.cn

Respostas:

11
  1. O único problema com a edição manual /etc/passwdé que pode haver uma corrida se algum outro usuário ou programa alterar esse arquivo enquanto você o mantém aberto no seu editor. Nesse caso, essa alteração será perdida quando você salvar o arquivo. Se você tem certeza de que esse problema não se aplica a você (nenhum outro usuário fez login etc.), você pode prosseguir e editar/etc/passwd

  2. Certifique-se de que o diretório inicial da raiz esteja disponível ao inicializar no modo de usuário único, por exemplo, deve estar em um sistema de arquivos raiz.

  3. Vários truques, como criar um usuário secundário com o uid 0, mudar para ele e alterar o diretório inicial do root, não funcionarão. As verificações do usuário conectado no momento são baseadas em uid.

haimg
fonte
5
Usando vipwou sudoeditpode proteger contra # 1. Quanto ao item 2, um diretório inicial ausente geralmente resultará em apenas um aviso.
user1686
@ grrawity: Obrigado por informações vipw, eu não sabia sobre isso. Eu acho que usar vipw é provavelmente a melhor solução geral.
haimg