A menos que você tenha alguns módulos PAM personalizados muito estranhos, não há como o "su" solicitar uma senha quando executado como root. Usando su - user -c ...
com um traço (-) em vez de usar su user -c ...
, seu script de inicialização está processando seus arquivos "ponto" de inicialização. É provável que algo em seus arquivos de ponto esteja chamando outro su
ou que o comando invocado esteja realmente fazendo outro su
.
Em uma nota relacionada, para muitos scripts, é útil colocar uma linha lendo exec < /dev/null
. Isso impedirá qualquer tentativa de ler a entrada padrão para a maioria das coisas. Isso pode não ajudar em scripts de inicialização e su
, porque, a menos que eu me lembre, o Solaris 8 su
irá capturar o terminal em vez de stdin.
Verifique os arquivos de pontos. E tente remover o "-" de su
para que eles não sejam processados. Se você tiver alguma configuração que precise estar visível para uso interativo e uso pelo script de inicialização, considere colocar apenas essas configurações em um chamado arquivo de ambiente. Os arquivos de ponto e o script de inicialização podem, então, tanto originar o arquivo de ambiente. As configurações no arquivo de ambiente provavelmente serão alteradas raramente e o processo de inicialização terá menos chances de ser impactado por alguém que esteja copiando os arquivos de ponto.