Quero atribuir 2 senhas a uma única conta. O que eu quero saber é 1) isso é possível e 2) quais são as implicações de segurança disso?
A razão pela qual eu quero fazer isso é porque atualmente estou ocupado com alguns testes locais e achei que seria conveniente em algumas situações específicas. Após algumas pesquisas, encontrei algo chamado PAM , mas estou tentando encontrar informações sobre como a instalação / configuração funciona.
Estou executando o Ubuntu 12.04.
sudo
para permitir que o usuário1 execute comandos como usuário2. (sudo
Não é apenas para executar comandos como root, ele pode executar comandos como qualquer usuário.)Respostas:
Sim, embora bastante incomum, isso é definitivamente factível.
Em vez de tentar implementá-lo você mesmo, pois o
/etc/password
/etc/shadow
método de autenticação baseado em padrão não tem provisão para essa configuração, a maneira mais simples é delegar a autenticação a um back-end que já suporta várias senhas para um usuário.Um bem conhecido é o LDAP, que
userPassword
atributo possui vários valores de acordo com o RFC4519 :Um exemplo de necessidade de vários valores no atributo 'userPassword' é um ambiente em que todos os meses se espera que o usuário use uma senha diferente gerada por algum sistema automatizado. Durante períodos de transição, como o último e o primeiro dia dos períodos, pode ser necessário permitir que duas senhas para os dois períodos consecutivos sejam válidas no sistema.
Apesar desse RFC, você provavelmente precisará alterar a configuração da diretiva de senha na maioria das implementações do servidor de diretório para que essa configuração seja realmente aceita.
No lado do Linux, nada proíbe fazê-lo (aqui uma conta denominada
testuser
recebeu ambospass1
epass2
comouserPassword
valores de atributo):Aqui estão algumas implicações técnicas e de segurança desse tipo de configuração:
fonte
Eu apenas tentei criar 2 entradas para um usuário no
/etc/shadow
arquivo e ele não funcionou. Qual entrada foi a primeira foi a senha usada.Exemplo
Criou um usuário de teste.
Defina a senha como "super123":
Edite manualmente o
/etc/shadow
arquivo e faça uma segunda entrada:Em seguida, tente fazer login com a conta usando as 2 senhas.
A primeira entrada
/etc/shadow
é o que é usado, a entrada na segunda posição nunca funciona, se você virar assim:Então a segunda senha funciona e a primeira não.
Use sudo
Essa abordagem é um hack total, eu usaria
sudo
, é parcialmente por issosudo
existe.Você pode adicionar esta entrada ao seu arquivo sudoers (
/etc/sudoers
), o que permitiria ao usuário joe permissão para fazer qualquer coisa como você:fonte
sudo
pode fazer isso .. +1Se você pode fazer isso, provavelmente não deveria.
A configuração do PAM é um pouco complexa e existe um truísmo sobre os mecanismos de autenticação: há um conjunto finito de configurações corretas, mas um conjunto infinito de configurações inseguras. Isso quase garante que, se você tentar mudar as coisas e não souber exatamente o que está fazendo, estragará tudo.
Se a escolha for entre segurança e "conveniente em algumas situações específicas", opte pela primeira.
fonte
Você pode definir dois nomes de usuário diferentes, cada um com sua senha, para a mesma conta. Execute
vipw
para editar/etc/passwd
manualmente, duplique a linha existente da conta em que você está interessado e altere o nome de usuário (e se você gosta do campo Gecos , diretório inicial e shell). Executevipw -s
e duplique a linha desse usuário em/etc/shadow
. Efetue login com o novo nome de usuário e executepasswd
para alterar a senha do novo nome de usuário. Agora você tem dois nomes de usuário diferentes, com senhas diferentes, para a mesma conta (o ID do usuário é o que determina a conta).Provavelmente não é uma boa ideia. Dependendo do que você está tentando fazer, outras abordagens podem ser mais apropriadas:
Crie outra conta e dê à primeira conta o direito de executar comandos como essa conta no sudo:
fonte