O Vagrant não inicia. O usuário que criou a VM não corresponde ao usuário atual


123

Eu estava tentando iniciar a minha máquina vagrant, então naveguei para a pasta onde está o meu arquivo vagrant e usei:

vagrant up && vagrant ssh

mas recebi a seguinte mensagem de erro:

A VM do VirtualBox foi criada com um usuário que não corresponde ao usuário atual que está executando o Vagrant. O VirtualBox requer que o mesmo usuário seja usado para gerenciar a VM que foi criada. Por favor, execute novamente o Vagrant com esse usuário. Este não é um problema do Vagrant.

O UID usado para criar a VM foi: 0 Seu UID é: 501

Eu também tentei com o sudo, mas isso também não funcionou.

Preciso mudar de UID? E como eu faria isso?

Respostas:


252

Encontrei o mesmo problema hoje.
Editei meu UID abrindo o arquivo .vagrant/machines/default/virtualbox/creator_uide alterando o 501 para 0 .

Depois que eu salvei o arquivo, o comando vagrant up funcionou como um campeão.

Nota: a .vagrantpasta está no mesmo diretório do seu Vagrantfile, onde você executouvagrant up


64
Eu me encontrei na mesma situação, tinha tar um tarball de uma máquina ubuntu. Então, simplesmente remover o rm -rf .vagrantdiretório criado no ubuntu também resolveu o problema.
Jeff Sheffield

1
// Uau, obrigado, @Fred! O Stackoverflow nos serve da melhor maneira possível com esse tipo de solução precisa e difícil de encontrar de alguém que já teve que lidar com isso antes. Onde geralmente vou encontrar a .vagrantpasta em máquinas baseadas em Unix?
21715 Nathan Basanese

1
Não tenho certeza, @ Nathan. Você pode executar um comando de localização para o arquivo creator_uid? Tente "localizar creator_uid" na linha de comando para encontrar o caminho para o arquivo a ser editado.
Fred

4
No meu caso, o creator_uid continha "90210", mas meu UID é 502. Em vez de alterar o UID no arquivo para 0, como sugeriu esta solução, mudei para 502. Funcionou bem.
LS

5
@NathanBasanese .vagrantpasta está no mesmo local que você correuvagrant up
Harish Reddy

33

Encontrei esse problema em uma situação um pouco diferente. O problema era que ".vagrant" foi verificado no repositório git e o committer estava executando sob um UID diferente do que eu.

Solução: adicione .vagrant ao .gitignore.


15
Esse foi o problema que enfrentei; no entanto, simplesmente adicionando .vagranta .gitignoreirá não resolver o problema - YMMV, mas git rm -rf .vagrantdeve ser executado também.
Marco Massenzio

@marco: Você está absolutamente certo. se ".vagrant" foi adicionado ao repositório, adicionando-o .gitignore depois é tarde demais :)
Chris Cogdon

8

Corri para o mesmo problema, mas no meu caso, era porque havia corrido vagrant upabaixo sudoe, quando voltei mais tarde, havia esquecido.

Erro bobo, mas tenho certeza que não é a primeira vez que acontece alguém :)


1
Mesmo problema aqui, esqueci de correr sudo. Mas a mensagem de erro não é muito indicativa disso, infelizmente.
Zac Blazic

5

Tentei alterar o ID em .vagrant \ machines \ default \ virtualbox \ creator_uid e isso não funcionou para mim, mas a exclusão do arquivo foi criada por creator_uid.


3

basta alterar a ID do usuário aqui .vagrant / machines / default / virtualbox / creator_uid


1

De acordo com o manual do usuário do VirtualBox :

Como medida de segurança, a implementação Linux da rede interna permite apenas que as VMs executadas com o mesmo ID de usuário estabeleçam uma rede interna.

Em outras palavras, você precisa mudar para root ( UID 0) para executá-lo.


10
Não deve ser executado como sudo, apenas exclua seu diretório .vagrant e execute como seu usuário
Jeremy

1

É possível que você tenha executado o comando: sudo vagrant up

Isso significa que, como usuário comum, você não consegue ver nem excluir a /.vagrantpasta e os arquivos.

Nesse caso, basta executar: sudo vagrant destroy -f

Então você poderá executar (como sua conta de usuário normal): vagrant up


0

Execute os seguintes comandos:

bash
sudo vagrant up

0

Eu tive o mesmo problema depois que recebi um novo computador. Em vez de copiar todos os arquivos do meu computador antigo, tive que verificar os projetos vagrantes novamente no repositório git. Depois disso, vagrant upfuncionou bem.


0

Apenas para adicionar à resposta https://stackoverflow.com/a/32256848/2065804 de Fred .

Verifique se você alterou a máquina da VM correta. Por exemplo, meu nome de VM NÃO é o padrão, mas é chamado de homestead-7.

Portanto, o caminho para o caminho correto é:

.vagrant/machines/homestead-7/virtualbox/creator_uid

e não:

.vagrant/machines/default/virtualbox/creator_uid

Este erro aconteceu comigo quando mudei meu Mac para outro Mac.


0

Remova o conteúdo do diretório oculto .vagrant no diretório atual de trabalho e execute novamente o comando vagrant up. Erro, devido à cópia / backup do Vagranfile / s de um sistema para outro. a identificação do usuário com o Vagrant para trazer o ambiente à tona. :)) se você não deseja excluir essa pasta, você pode atualizar o uid do usuário atual em um arquivo no diretório oculto do diretório atual, ou seja, .vagrant / machines / jenkins / virtualbox $ vim creator_uid


0

Já enfrentei a mesma situação, mas tenho um arquivo Vagrant de várias máquinas .

Para substituir o uid antigo (1001) pelo novo (1000), usei o seguinte comando:

for i in $(find . -type f -iname "creator_uid" ) ; do echo 1000 > $i ; done

0

Eu tive o mesmo problema que esqueci de colocar sudoantes vagrant up, basta executar sudo vagrant upna pasta do seu arquivo vagrant.


0

Tenho arquivo vagrant Multi-Machine. Eu verifiquei o creator_uide ele 0ainda não pode carregar. Então, eu apaguei o creator_uidarquivo para toda a máquina múltipla e funcionou. Caminho deve ser.vagrant\machines\<machine_name>\virtualbox

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.