Цитата:
пользователь запустил скрип со своими привелегиями 
 
 
Такое возможно, если пароль для su прописать в самом скрипте. Если боитесь, что юзер будет просматривать текст скрипта, можно записать туда пароль в закодированном виде. Например, методом  
 
 
// Пример на С для наглядности:
char *code(char *str2code, char *code2use)
{
// str2code - строка, которую мы кодируем
// code2use - некая строка, которую мы используем в качестве кода
	while (strlen(str2code) > strlen(code2use))
	{
		strcat(code2use,"A"); // Если длина кода меньше, чем строка, увеличиваем эту длину
	}
	
	for (int i=0; i<strlen(str2code); i++)
	{
		str2code = str2code ^ code2use; // Собственно, кодирование =)
	}
	return str2code;
}
/*
В данном случае для декодирования строки используется эта же функция. При другом code2use, оригинальную
строку мы уже не получим, т.е. нужно использовать один и тот же код для кодирования и декодирования
(можно задать его константным, а можно использовать для разных пользователей).
*/
а при выполнении su декодировать его и передавать на ввод su, таким образом избегая его явного просмотра. Тогда в этом сможет разобраться только программист, хотя это и несложно.