Это именно та ситуация, для которой предназначена программа expect
(и аналогичная ). Вы можете запустить su
под expect
, определить запрос пароля, отправить пароль (, который вы захватил ), а затем иметь корневую оболочку, в которую вы можете отправлять команды.
например
#!/usr/bin/expect --
set mypasswd "imnottellingyou"
spawn "su"
expect "ssword"
send "$mypasswd\n"
expect "#"
interact
Вам нужно что-то вроде Squid .