o que significa star in passwd file?

14

Eu tenho um computador que eu preciso inicializar, mas as senhas parecem ser falsas. Além disso, não consigo montar a unidade para gravação, e é um processador mips, então não posso colocá-lo em outra máquina para executá-lo.

De qualquer forma, o arquivo passwd tem alguns usuários que se parecem com isso, com uma estrela após o nome do usuário. isso significa senha em branco ou o quê?

root:8sh9JBUR0VYeQ:0:0:Super-User,,,,,,,:/:/bin/ksh
sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:*:1:1:daemons:/:/dev/null
bin:*:2:2:System Tools Owner:/bin:/dev/null
uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:*:4:0:System Activity Owner:/var/adm:/bin/sh
adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:VvHUV8idZH1uM:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh
dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh
rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh
    
por j0h 30.07.2015 / 16:14

4 respostas

21

Você precisa verificar man passwd :

If the encrypted password is set to an asterisk (*), the user will be unable to login using login(1), but may still login using rlogin(1), run existing processes and initiate new ones through rsh(1), cron(8), at(1), or mail filters, etc. Trying to lock an account by simply changing the shell field yields the same result and additionally allows the use of su(1).

Normalmente, as contas com * no campo de senha não têm uma senha, por exemplo: desativado para login. Isso é diferente de conta sem senha, o que significa que o campo de senha estará vazio e quase sempre é uma prática ruim.

    
por 30.07.2015 / 16:20
13

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.)

    
por 30.07.2015 / 21:38
8

Isso significa que ele está desativado para login direto. É um usuário que é usado para executar serviços ou para ser usado para o rlogin. Verifique o link

    
por 30.07.2015 / 16:19
3

Sobre sua pergunta atual, veja a resposta de taliezin (e aceite essa);

Sobre o seu outro problema: Procure a string 8sh9JBUR0VYeQ no disco para descobrir o (s) bloco (s) de disco em que ela reside. Em seguida, insira o (s) bloco (s) de disco em um arquivo, substitua essa cadeia por um hash de senha conhecida ( o antigo crypt () um mesmo comprimento) e gravar o (s) bloco (s) de disco de volta ao local antigo - possivelmente fazendo um backup completo do disco antes. Como essa abordagem não altera o tamanho do arquivo, nenhum metadado do sistema de arquivos precisa ser atualizado.

    
por 01.08.2015 / 11:00