instalação do servidor mysql dá este erro: useradd: arquivo de bloqueio existente /etc/passwd.lock sem um PID

0

Após 3 a 4 horas de dificuldades, resolvi esse problema, mas ainda estou curioso sobre isso

/etc/passwd.lock

O que é /etc/password.lock? O que o /etc/passwd.lock faz?

E o que eu entendi depois de examinar as documentações do ubuntu man, esse arquivo contém usuários, grupos e outras senhas de aplicativos. Corrija-me se eu estiver enganado. E por que a instalação do servidor mysql dependia desse arquivo?

    
por Haroon Khan 02.07.2016 / 13:00

1 resposta

1

Você está no caminho certo, mas ainda não está lá. O arquivo sobre o qual você lê é o arquivo /etc/passwd , não o arquivo /etc/passwd.lock . /etc/passwd define quais contas de usuário estão disponíveis em sua máquina, a que grupo elas pertencem e outras coisas. Muitos, muitos anos atrás /etc/passwd também continha as senhas da conta. Mas por razões de segurança, eles foram realocados no chamado "shadow password system" (que é essencialmente outro arquivo com permissões mais rígidas).

/etc/passwd.lock é, como o nome sugere, um arquivo de bloqueio. Os arquivos de bloqueio servem para indicar que um recurso é usado por outra pessoa no momento e, portanto, não está disponível para você. Bloqueio de arquivos são bastante comuns, eles ainda tem um diretório padrão para armazená-los, /var/lock .

Voltar para /etc/password : Este arquivo e muitos outros arquivos são essencialmente arquivos de texto e você pode tecnicamente editá-los com qualquer editor de texto. Mas você realmente não deveria, porque se você errar, você pode causar muitos danos com um simples erro de digitação. Portanto, há várias ferramentas para editar esses arquivos de configuração central que, pelo menos, tentam evitar os maiores erros.

Para editar o /etc/passwd e alguns outros arquivos, você deve usar o comando vipw . Uma das coisas que vipw faz é que ele bloqueia o arquivo correspondente. Isso é para garantir que nenhum usuário ou aplicativo esteja editando o arquivo de configuração ao mesmo tempo. Portanto, se você editar uma conta de usuário com vipw , o comando criará o arquivo /etc/passwd.lock lock, para indicar que /etc/passwd não está disponível para alterações no momento. Em seguida, aplica as alterações e exclui o arquivo de bloqueio para levantar o bloqueio.

No seu caso, algo parece ter dado errado e o arquivo de bloqueio não foi removido, por qualquer motivo. Então, quando você tentou instalar o servidor MySQL, ele não pôde editar /etc/passwd , porque o arquivo de bloqueio basicamente dizia "este recurso está em uso, tente novamente mais tarde".

Finalmente, o que o servidor MySQL tem a ver com /etc/passwd ? Um dos conceitos básicos do Unix e, portanto, dos sistemas Linux é que eles são sistemas multiusuário. Existem várias contas de usuário, que têm permissões diferentes (é um pouco mais complicado do que isso, mas essa é a essência disso). Você provavelmente já sabe sobre a conta root e sua conta de usuário. Mas em um sistema típico, existem mais algumas contas "sob o capô". Na máquina que estou escrevendo, que é basicamente uma instalação de desktop Ubuntu, /etc/passwd define 42 contas de usuário.

Geralmente, contas diferentes são usadas para proteger coisas de pessoas que não são destinadas a mexer com elas, ou para definir quem pode usar algo e quem não pode. O servidor MySQL é executado sob sua própria conta mysql , e muitos outros serviços e daemons (servidores web, servidores de correio, etc.) fazem algo similarmente.

Então, para resumir, seu cenário era o seguinte: O processo de instalação do MySQL tentou adicionar sua conta mysql a /etc/passwd , mas a existência do arquivo de bloqueio dizia que ele não podia fazer que no momento.

    
por Henning Kockerbeck 02.07.2016 / 14:42