Como alterar o diretório inicial do usuário atualmente conectado

10

Estou atualmente conectado a um servidor CentOS e gostaria de alterar meu diretório pessoal de /home/myuserName/ para /var/www/html/

Eu tentei o comando abaixo:

> sudo usermod -d /var/www/html myuserName

Mas isso me dá um erro:

usermod: user myUserName is currently logged in
    
por Mohan 04.02.2016 / 09:05

5 respostas

12

resposta curta : você não pode.

resposta longa :

HOME dir está definido em /etc/passwd , sexto campo. É lido no loggin, seu shell é iniciado com este diretório inicial.

A maneira correta de alterar o diretório home para joe é:

  • faça o joe fazer logoff.
  • use usermod -d /new/home joe para alterar o diretório inicial da sessão subsequente.

Uma vez que a sessão é executada, você deve fazer duas coisas:

  • edite $HOME para alterar o diretório home da sessão (a ser repetido em todas as sessões ativas).
  • use sudo vipw para editar o diretório inicial da próxima sessão

Além disso, esteja ciente de que você pode ter um problema com permissões / propriedade em /var/www/html

    
por 04.02.2016 / 10:27
7

O comando usermod não funcionará se você estiver logado com o usuário que você está tentando fazer alterações.

Na página de manual do usermod, ele diz:

CAVEATS usermod will not allow you to change the name of a user who is logged in. You must make certain that the named user is not executing any processes when this command is being executed if the user's numerical user ID is being changed. You must change the owner of any crontab files manually. You must change the owner of any at jobs manually. You must make any changes involving NIS on the NIS server.

Tente fazer login com um usuário diferente e execute o comando novamente.

Se isso não for possível, você pode editar manualmente o arquivo / etc / passwd (que é, na verdade, o que o comando usermod está fazendo). Se você fizer isso, certifique-se de fazer o backup do arquivo caso você, inadvertidamente, faça algo bobo.

    
por 04.02.2016 / 09:47
4

Você precisa editar o arquivo /etc/passwd para alterar o diretório inicial dos usuários que estão conectados no momento.

Edite o /etc/passwd com sudo vipw e altere o diretório inicial do usuário.

vipw altamente recomendado diferente de vim ou outros editores, pois vipw definirá bloqueio para evitar corrupção de dados.

    
por 04.02.2016 / 09:33
0

Algumas soluções possíveis, dependendo do que você espera resolver:

Opção 1. Adicione HOME=/var/www/html ao seu .bashrc

Opção 2. Renomeie /home/myusername e crie um symlink para o diretório desejado.

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername
    
por 09.11.2016 / 01:10
-1

Você só pode fazer isso temporariamente. Isso significa que toda vez que você fizer login como usuário, você deverá executar este comando:

export HOME=/var/www/html

Dessa forma, você pode fazer com que a maioria dos aplicativos pense que seu diretório pessoal é o local que você usa acima.

~ também começará a apontar para /var/www/html .

As aplicações com que isso funcionou para mim foram NPM e Maven.

    
por 11.01.2018 / 12:54