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.
linux
user-accounts
home-directory
Kevin S.
fonte
fonte
Respostas:
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
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.
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.
fonte
vipw
ousudoedit
pode proteger contra # 1. Quanto ao item 2, um diretório inicial ausente geralmente resultará em apenas um aviso.