Мне кажется, что вы действительно хотите установить UID выполняемого процесса, а не запускать процесс под конкретным пользователем.
Возможно, вы захотите правильно установить SUID программы, как , описанное здесь .
Краткий пример:
Предположим, ваша программа run
принадлежит пользователю root (пользователю и группе):
$ chmod u+s run
$ ls -l run
-rwsrwxr-x. 1 root root 0 Aug 5 15:08 run*
Обратите внимание на 's' в исполняемом бите в пользовательском блоке. {{1} } Теперь при выполнении кем-то другим процесс будет запущен от имени пользователя, которому принадлежит этот файл, то есть root.
Примечание: как правильно заметил Дуг О'Нил, это не работает ни на каком интерпретируемом языке в Linux! (Подробнее об этом здесь ) Вам нужно будет создать небольшую программу-оболочку на C и скомпилировать ее, например.