As contas com senhas são as contas com um glob de base64 sem sentido no segundo campo:
root:8sh9JBUR0VYeQ:0:0:Super-User,,,,,,,:/:/bin/ksh
lp:VvHUV8idZH1uM:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
Este computador parece estar usando o tradicional, baseado em DES crypt(3)
hash de senha. Esse hash é bastante fraco pelos padrões modernos; Se você não conseguir obter um login root de outra maneira, provavelmente você poderá recuperar a senha usando John the Ripper John the Ripper
A distinção entre :*:
e :!:
mencionada em outras respostas é muito nova para ser relevante para o seu problema. Em um sistema UNIX tão antigo, existem apenas três coisas diferentes que podem aparecer no campo de senha:
alice::1001:1001:Alice Can Log In Without A Password:/home/alice:/bin/ksh
bob:WSy1W41d4D1Gw:1002:1002:Bob Must Supply A Password:/home/bob:/bin/ksh
carol:ANYTHING ELSE:1003:1003:Carol Cannot Log In At All:/home/carol:/bin/ksh
Se o conteúdo do campo de senha estiver vazio, você poderá efetuar login sem senha.
Se o conteúdo do campo for o hash crypt
válido de alguma senha, você poderá efetuar login com essa senha.
Caso contrário, você não poderá fazer login como esse usuário. *
é apenas a coisa convencional a ser usada - obviamente não é um hash de senha válido. Provavelmente foi escolhido por quem escreveu o programa passwd
.
(O ponto de ter IDs de usuário no arquivo de senhas que não podem efetuar login é que eles ainda podem possuir arquivos, eles ainda podem ter cron
jobs e daemons podem usar setuid
para assumir essa identidade. Na verdade, é uma boa prática executar todos os daemons (que não precisam ser executados como root
) sob esses IDs de usuário, para que você tenha algum nível de garantia de que somente o daemon está sendo executado sob esse identidade.)
(As contas com /dev/null
no campo shell estão bloqueadas contra root
usando su
para executar programas sob essa identidade do usuário, bem como login normal. Hoje em dia você é muito é mais provável ver /bin/false
ou /sbin/nologin
usado para esse propósito; suspeito que nesse sistema o último não existe e o primeiro é um shell script.)
(A senha para Bob é "bobpassw", criptografada usando o antigo algoritmo, mas em uma máquina Linux moderna; pode não ser o que seu computador produziria para a mesma senha e salt. Uma das razões pelas quais o algoritmo antigo é considerado não é mais bom, tem um limite superior rígido de 8 caracteres em uma senha.)
(Eu sei que o sistema é muito antigo porque está usando hashing de senhas baseada em DES, porque não está usando um arquivo shadow, e porque o shell do root é /bin/ksh
em vez de algo novo e mais ergonômico.)