в ./pass ложим пароль и наслаждаемся, правда дырень это в плане безопасности ... пароли открытым текстом хранить ... от админа по башке мона получить :)
И вообще, тут выше умные люди уже говорили, что так делать просто не надо. Это не недостаток su, это специально сделано, чтоб не позволить юзеру совсем уже глупость сделать.
[dimych@s3k ~]$ uname -a
Linux s3k 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
[dimych@s3k ~]$ whoami
dimych
[dimych@s3k ~]$ su - -c "ls -la /root" < ./tst
standard in must be a tty
[dimych@s3k ~]$
создай псевдотерминал и всунь пасворд в зубы через него вместо пайпа.
как побочный эффект: процедуру скорее всего придётся делать при помощи враппера на Perl/Python/C ибо как минимум я не знаю как это можно сотворить на чистом шелле
1. Как выше правильно заметили - ставьте sudo.
2. Как вариант (работает в slackware!) man suauth (файлик создать /etc/suauth):
DENY The attempt to su is stopped before a password is even asked for.
NOPASS The attempt to su is automatically successful; no password is asked for.
OWNPASS For the su command to be successful, the user must enter his or her own password. They are told this.
3. expect возможно справится, но это отдельный пакет или в Perl ::Expect.