Este documento explica o funcionamento do script shell htpasswd_manager.sh
, que gerencia usuários e senhas em um arquivo .htpasswd
.
- Um arquivo
.htpasswd
existente. - OpenSSL instalado para criptografia de senhas.
- Permissões de leitura/escrita no arquivo
.htpasswd
.
Execute o script com o parâmetro -f
ou --file
seguido do caminho do arquivo .htpasswd
:
./htpasswd_manager.sh -f caminho/para/.htpasswd
Se o parâmetro não for fornecido ou o arquivo não existir, o script exibe uma mensagem de erro e termina.
O script apresenta um menu interativo com as seguintes opções:
-
Adicionar usuário
- Solicita um nome de usuário e uma senha.
- Criptografa a senha usando o algoritmo APR1 (via OpenSSL).
- Adiciona a entrada ao arquivo
.htpasswd
no formato:username:encrypted_password # Added YYYY-MM-DD HH:MM:SS
.
-
Excluir usuário
- Lista todos os usuários do arquivo com números sequenciais.
- Solicita o número do usuário a ser excluído.
- Remove a linha correspondente do arquivo.
-
Editar usuário
- Lista os usuários com números sequenciais.
- Solicita o número do usuário a ser editado.
- Mantém o mesmo nome de usuário, mas solicita uma nova senha.
- Remove a linha antiga e adiciona uma nova com a senha atualizada e um comentário com a data/hora:
username:encrypted_password # Modified YYYY-MM-DD HH:MM:SS
.
-
Sair (Q)
- Encerra o script.
- O script usa um arquivo temporário para manipulações, garantindo segurança nas alterações.
- A data e hora nos comentários seguem o formato
YYYY-MM-DD HH:MM:SS
. - Entradas inválidas (como números fora do intervalo na exclusão/edição) são tratadas com mensagens de erro.
Após adicionar/editar usuários, o arquivo pode se parecer com:
user1:$apr1$... # Added 2025-06-24 18:48:23
user2:$apr1$... # Modified 2025-06-24 18:50:10