Primeiramente, vou apontar que ter uma senha de superusuário em um arquivo (especialmente um script de propriedade do usuário) é uma idéia muito ruim , pois permite que qualquer pessoa que tenha acesso a esse usuário para obter facilmente privilégios de root.
Dito isso, você poderia usar sudo
no script, que fornece uma opção para ler a senha de um pipe.
pass='1234abc'
for ...
echo $pass | sudo -S "grep $file /u/spool/ftp/logs/alog>> /u/home/abc/tempo/files.txt"
if [ $? -eq 0 ]; then
echo $file >> /u/home/abc/tempo/ftpxfer.txt
fi
done
Como alternativa, você pode ter o script inteiro executado pelo usuário root usando sudo
- configure sudo (usando visudo
como root / super usuário) para permitir que o script seja executado sem senha, adicionando o seguinte ao seu arquivo de configuração do sudo:
%wheel ALL=(ALL) NOPASSWD: /path/to/script
Em seguida, seu script pode ser simplificado (e não requer uma senha de texto sem formatação), portanto:
for ...
grep $file /u/spool/ftp/logs/alog>> /u/home/abc/tempo/files.txt
if [ $? -eq 0 ]; then
echo $file >> /u/home/abc/tempo/ftpxfer.txt
fi
done