Como alguém deve criar uma senha criptografada para / etc / shadow?

9

Estou configurando uma nova conta em uma caixa Linux para acesso ao repositório Subversion e posso enviar a senha para o novo usuário. No entanto, acho que havia um utilitário de linha de comando para esse novo usuário criptografar a senha que ele gosta em um formato que eu possa copiar / colar diretamente no arquivo / etc / shadow.

Qual foi o comando completo que esse novo usuário deve executar no console (por exemplo, Bash) para criar uma senha criptografada?

UPDATE: o usuário não poderá fazer login na máquina, e a conta será usada apenas para o acesso svn + ssh: //. Portanto, o usuário não pode alterá-lo ele mesmo.

Egon Willighagen
fonte
O usuário está perguntando sobre os scripts do bash, pois ele obviamente não fará isso manualmente.
Tim Post

Respostas:

15

o usuário pode executar em seu computador algo como:

echo "password"|openssl passwd -1 -stdin

e depois enviar a saída.

Daniel
fonte
O +1 faz exatamente o que você está procurando.
Antoine Benkemoun 24/11/2009
Por que esse comando está fornecendo um valor diferente cada vez que eu o chamo?
Egon Willighagen 24/11/2009
2
O formato da saída é $ id $ salt $ criptografado. Id diferente e sal diferente fornecem uma string criptografada diferente. O ID é o algoritmo utilizado: 0-DES, 1-> MD5, 2A-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo
OK, então eu preciso descobrir como acionar um determinado ID (que era o mesmo o tempo todo) e salt (que mudou a cada chamada) ... faz sentido.
Egon Willighagen
2

O formato da senha na sombra pode variar. Você pode configurá-lo como MD5 ou o bom e velho DES3 ou ... É bom enviar uma senha ao usuário e forçá-la a alterá-la no primeiro login ( # chage -d 0 username)

Gonzalo
fonte
1

Em vez de fazê-los criptografar a senha e enviá-la para você, por que não dizer apenas para digitar:

passwd

Ele fará tudo o que você quiser com a vantagem adicional de que eles possam alterar suas senhas sem nenhum trabalho extra para você.

EDIT: De acordo com isso , supostamente existe um comando chamado makepassword que você pode obter para o Debian / Ubuntu.

Brendan Long
fonte
Porque isso requer que o usuário já esteja logado. O OP deseja uma solução para definir a senha com segurança antes que o usuário efetue login pela primeira vez.
1111 Daniel Pryden
1
Parece que gerar uma senha aleatoriamente e tê-la alterada quando efetuar login é tão seguro quanto gerar uma senha e adicioná-la manualmente.
Brendan Long
O usuário irá na verdade, nunca login (shell: / bin / false), e permitir apenas SVN acesso de leitura / gravação ...
Egon Willighagen
2
Você pode configurar o shell: / usr / bin / passwd: D
Brendan Long
1
Quero dizer que o último comentário como piada, mas, aparentemente, ele vai trabalhar: markmail.org/message/ekuxvnhdagywy4i5
Brendan Longo
0

/ etc / passwd e / etc / shadow são muito fáceis de tokenizar com as ferramentas de linha de comando usuais (por exemplo, grep, awk, sed, tr, etc).

O que se torna interessante é o campo de hash da senha real em / etc / shadow, seu prefixo informa como a senha foi criptografada. Da sombra do homem (5):

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

Como foi criptografado amplamente depende da idade do sistema operacional instalado. É importante prestar atenção especial ao segundo campo em / etc / shadow.

Você deve fazer todos os esforços para seguir o hash que o sistema estiver usando, seja DES, MD5, etc., pois é tão fácil de detectar.

Tim Post
fonte
0

Por que não entrar no usuário e executar o passwd?

Esben Skov Pedersen
fonte
Porque não quero saber a senha ... ou mandá-la para mim de forma não criptografada.
Egon Willighagen
0

Existe uma maneira de gerar essas senhas via linha de comando? Sim, com o pacote debian makepasswd (mas apenas para o MD5):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

Mas isso não funcionará via copiar e colar dentro de / etc / shadow Para alterar a senha via script em algumas distribuições Linux, você pode usar:

echo oracle:mypasswd | chpasswd

ou

echo -n mypasswd | passwd --stdin oracle

fonte