Como posso saber se minha senha está definida?

18

Uso este servidor há alguns meses. No início, enviei ao administrador minha chave pública ssh, e ele configurou a conta para mim, e só usei a chave ssh para efetuar login. Definitivamente, não tinha uma senha a princípio.

Desde então, eu posso ou não ter configurado uma senha usando passwd. Agora, se eu usar passwd, vejo isso.

$ passwd
Changing password for user myusername.
Changing password for myusername.
(current) UNIX password:

Embora pareça sugerir que eu tenho uma senha, não tenho memória de fazer isso.

Como posso saber conclusivamente se minha senha está definida?

EDIT:
Não consigo fazer login nem alterar a senha, porque não sei qual é a senha (a senha em branco não funciona). A distribuição é a versão 20 do Fedora (Heisenbug).

gato do teto
fonte
Tente fazer login sem senha (e sem sua chave privada ssh, é claro).
didierc
Não consigo fazer login porque não sei a senha e o espaço em branco não funciona. Eu adicionei esta informação na pergunta original.
cat cat teto
11
Em um console de login, uma senha em branco é igual a nenhuma senha.
Didierc
Você receberá essa solicitação de senha, mesmo que não haja uma senha configurada para a conta. Se nenhuma senha estiver configurada, passwdvocê reclamará de uma senha errada, não importa o que você digitar.
Gilles 'SO- stop be evil'
Eu verifiquei que em um Fedora 20 baunilha usando senhas shadow locais, passwdnão solicitará sua senha atual se você não tiver uma. Outra maneira de verificar é digitar su myusername; se não houver senha, ela não solicitará uma. Mas tudo isso pode ser substituído pelo administrador do sistema, por exemplo, removendo a nullokopção das pam_unixentradas /etc/pam.d/*, caso em que um não administrador não pode dizer quem possui senhas e quem não possui, exceto, talvez, fazendo testes de temporização.
Mark Plotnick

Respostas:

30

A melhor maneira é com o seguinte comando:

passwd --status username

Do homem passwd:

Exibir informações de status da conta. As informações de status consistem em 7 campos. O primeiro campo é o nome de login do usuário. O segundo campo indica se a conta de usuário tem uma senha bloqueada (L), não possui senha (NP) ou possui uma senha utilizável (P). O terceiro campo fornece a data da última alteração de senha. Os próximos quatro campos são a idade mínima, idade máxima, período de aviso e período de inatividade da senha. Essas idades são expressas em dias.

Portanto, se o segundo campo de saída for NP, esse usuário não terá uma senha definida.

jherran
fonte
Eu tenho$ passwd --status Only root can do that.
teto gato
Nesse caso, tente sudo passwd username --status.
21815 jherran
Recebi, $ sudo passwd myusername --status [sudo] password for myusername:mas como não sei minha senha, não posso continuar.
cat cat teto
Testei meu comando original e deveria funcionar bem com um usuário recém-criado sem permissões especiais: $ passwd --status testretornos test P 02/15/2015 0 99999 7 -1.
21415 jerran
Esquisito. Eu estou querendo saber se o administrador configurou de uma maneira não padrão.
gato do teto
4

Você pode testar isso de duas maneiras fáceis.

  1. Logo após você alterar a senha, como tipo raiz login, que o levará a um prompt de login / senha.

  2. Dependendo das probabilidades do seu sistema, você está usando senhas-sombra. O arquivo para esse arquivo está em. /etc/shawdowVocê pode procurar nesse arquivo para ver se sua conta possui alguma alteração.

Aqui está um exemplo com uma conta sem um conjunto de senhas:

postgres: :16462:0:99999:7:::

Aqui está a aparência de um usuário com uma senha:

dustin:$6$TQ8e8o92$T9KWfcEVeIpDytW/zSAZzM4512wd/DiiuaYwrYWheH3LYpOsISdRxrCLvPqJZZ66QqdetmaV0ALQohx8nQPFKK0:16425:0:99999:7:::

Aviso entre a : :senha criptografada e a conta do postgres não tinha nada

Dustin Hargrove
fonte
Para o número 1, não consigo alterar a senha, porque não sei qual é a senha. Se eu colocar em branco, ele diz passwd: Authentication token manipulation error. Para o # 2, eu não tenho /etc/shawdow. Existe /etc/shadow, mas a permissão é 000. (não tenho certeza se isso importa) Eu esqueci de mencionar que tenho o Fedora versão 20 (Heisenbug). Provavelmente deveria ter colocado essas informações na pergunta original.
teto cat
Seu erro de token costuma vir de permissões erradas. Você está no modo de usuário único? Quando você inicializou, era uma inicialização normal? Também o tipo de verificação apenas "montar" você quer certificar-se de cada coisa é montado como rw (ler e escrever)
Dustin Hargrove
Além disso, essa é uma permissão errada, que distro é essa?
Dustin Hargrove
Eu não acho que o servidor esteja no modo de usuário único. Ainda consigo fazer login usando credenciais ssh e posso ver outros usuários com who. Tudo o que mountestá listado é listado como rw. Distro é a versão 20 do Fedora (Heisenbug).
gato do teto
1

Tente usar o seguinte:

passwd -S

Na página do manual passwd (1), lemos:

-S Relate o status da senha na conta nomeada. A primeira parte indica se a conta de usuário está bloqueada (LK), não possui senha (NP) ou possui uma senha existente ou bloqueada (PS). A segunda parte fornece a data da última alteração de senha. As próximas partes são a idade mínima, a idade máxima, o período de aviso e o período de inatividade da senha.

trikelef
fonte
0

Você pode querer ver o arquivo / etc / passwd. O segundo campo do seu usuário indica a senha. Se não houver nada, você pode não ter senha para o seu login. Por outro lado, se você tem um x nesse campo, você tem uma senha associada e ela pode estar no arquivo / etc / shadow

dgsleeps
fonte
Obrigado! Existe um x. Eu acho que tenho uma senha. No /etc/shadowentanto, não há arquivo.
cat cat teto
11
@ceilingcat Se você vir um x, isso não diz nada sobre se uma senha está definida. Você precisa procurar /etc/shadow(o que requer ser root).
Gilles 'SO- stop be evil'