“/ usr / lib / passmgmt: Arquivo (s) de senha ocupado (s). Tente novamente mais tarde ”no Solaris 11

2

Tenho andado a brincar com um sistema Solaris 11, onde fiz várias contas de utilizador para mim. De qualquer forma, eu dei a uma das minhas contas sem privilégios o solaris.* auth e tentei dar a outra conta sem privilégios o System Administrator profile:

user$ auths
solaris.*
user$ pfexec usermod -P"+System Administrator" user2

Isso falhou com a seguinte mensagem de erro (sim, repetida três vezes):

/usr/lib/passmgmt: Password file(s) busy.  Try again later
/usr/lib/passmgmt: Password file(s) busy.  Try again later
/usr/lib/passmgmt: Password file(s) busy.  Try again later

Eu "tentei novamente mais tarde" - mesmo depois de reinicializar - e sempre recebo o mesmo resultado. Este é um erro completamente diferente de quando um usuário sem o solaris.* (ou um dos assign -auths) tenta o comando.

Eu também tentei adicionar explicitamente auths sobre a atribuição de perfis, autorizações e funções - por exemplo. solaris.profile.assign - além de solaris.* (como como solaris.grant teve que ser explicitamente atribuído); mas isso não ajudou (nem apareceu quando eu fiz um auths - somente solaris.* mostrou).

No entanto, usei com sucesso usermod para atribuir essas coisas enquanto root ou ao usar um usuário com o perfil Administrador principal (copiei e colei de um anterior Versão Solaris).

No entanto, eu realmente achei que solaris.* - ou só o solaris.profile.assign - deveria ter sido suficiente para usar usermod para dar privilégios a outros usuários ...

Então, o que significa a mensagem de erro (tripla)? Por que isso não funciona? E se não deveria funcionar, por que não? E qual seria a combinação "mínima" correta de autorizações e / ou perfis para que funcionasse?

    
por Baard Kopperud 26.07.2016 / 23:52

1 resposta

1

Por que isso não funciona?

As mensagens de erro

/usr/lib/passmgmt: Password file(s) busy.  Try again later
/usr/lib/passmgmt: Password file(s) busy.  Try again later
/usr/lib/passmgmt: Password file(s) busy.  Try again later

provavelmente significa que você não tem permissão para criar um arquivo em /etc .

A única fonte dessa mensagem de erro que posso encontrar está no passmgmt source code e é gerado quando passmgmt falha ao criar o arquivo /etc/.pwd.lock ou não pode, na verdade, bloquear o arquivo, se já existir.

passmgmt , e provavelmente muitos outros utilitários do Solaris, tentam bloquear os arquivos de senha com um arquivo /etc/.pwd.lock . ( link do código-fonte para bloquear a senha arquivos ).

Dado que você pode usar com sucesso usermod enquanto root , isso não parece ser um problema onde um processo errante mantém um bloqueio em /etc/.pwd.lock , então a única falha por fonte Illumos publicada (reconhecidamente um pouco desatualizado agora) que gera as mensagens de erro que você vê é uma falha ao criar /etc/.pwd.lock , quase certamente porque seu processo não tem permissões de gravação para /etc .

Isso é porque está falhando. Infelizmente, não tenho tempo para investigar se o deve falhar ou não.

    
por 27.07.2016 / 12:39