Quello che stai chiedendo non è solo il male: semplicemente non funziona.
Tutto quello che un utente deve fare per vedere la password è quello di eseguire bash -x your_script
e l'uscita includerà
+program '--pass=decrypted-password-here'
... non importa quanto sia efficace l'offuscamento avrebbe potuto essere.
Qual è il programma che si sta tentando di chiamare e che richiede una password? Puoi nascondere la tua password dietro un wrapper setuid, in modo che il wrapper possa leggere il file della password anche se l'utente che lo esegue non può? Puoi (prendendo in prestito il suggerimento di DigitalRoss) configurare un account utente che ha una copia della password memorizzata (o, meglio, un certificato o una coppia di chiavi), configurarlo solo per essere in grado di eseguire il tuo script e nient'altro su SSH, e dare il utenti che dovrebbero essere in grado di eseguire le autorizzazioni di script per SSH come tale utente (o sudo per quell'utente solo per il singolo comando, o così via)?
Ecc
In breve: Obiettivo per la sicurezza reale, non offuscamento.
Ora, se si fatto desidera offuscamento - l'approccio tradizionale è ROT-16:
obfuscated_password="qrpelcgrq-cnffjbeq-urer"
real_password="$(tr a-zA-Z n-za-mN-ZA-M <<<"$obfuscated_password")"
... ma se si tratta di una password che realmente preoccupano di sorta, non lo fanno offuscare - utilizzare uno degli approcci sopra riportati per evitare di memorizzare una password in un modo leggibile dall'utente.
fonte
2012-03-22 18:22:02
Il programma è cURL – Rodrigo
@Rodrigo ... e l'arricciatura può utilizzare i certificati client (se il server Web a cui si sta autenticando è configurato per loro ... anche se è ancora necessario utilizzare qualcosa come un wrapper setuid per scalare i privilegi per impedire all'utente che può eseguire il tuo programma che invoca arricciatura dalla lettura della chiave SSL), può essere richiamato dietro un wrapper setuid che aggiunge un parametro password, e puoi altrimenti usare tutti gli approcci che ho dato qui con esso. –