in reply to how to su in a script ?

Well, if you prefer the /etc/suauth way to do things it's up to you, just use su -c "command ..." if you like.

Otherwise it's not a good idea to save clear-text passwords in scripts, and security tools like su or sudo tend to actively resist attempts to feed them passwords from standard input. Maybe a setuid script is what you need but frankly if you ask questions like that you are not ready to write scripts run by a privileged user.

To reiterate, sudo (and sudo -n for CGI scripts) is the way to invoke privileged commands from a script run as regular user. Unlike general-purpose su it can check what user tries to do and limit his activities to safe ones only. However it's not omnipotent so your mileage may vary.