Назад | Перейти на главную страницу

Создайте процесс, у которого пользователь и пользователь разные

Может ли кто-нибудь помочь найти способ создать процесс, чей ruser и user разные? В настоящее время я использовал линию sudo su david -c ./test.pl, Затем, когда я набираю следующую строку, чтобы получить user и ruser:

% ps -eo pid,user,ruser,fname,pcpu,nice,stime,time | grep test.pl
10322 david david test.pl 12.4 20 13:37:00 01:38

В user и ruser все те же. Мне нужно создать процесс, подобный следующему примеру:

% ps -o user,ruser,comm -p 59515
...
USER    RUSER COMMAND
root csrethab xscreensaver 

Есть предположения?

Разница довольно незначительна и в основном проявляется в таких вещах, как suid-процессы.

Например, что-то вроде passwd, как непривилегированный пользователь, вы можете изменять файл, который имеет только uid, равный 0. Итак, ваш эффективный пользователь или user будет root, а ваш ruser фактическим пользователем будет Дэвид.

Итак, для процесса с корневым идентификатором setuid, т.е. passwd, у вас будет различие.

Вы должны увидеть разницу, установив идентификатор файла для пользователя, отличного от того, который запущен.

Вместо того, чтобы делать sudo su david чтобы запустить процесс, измените режим программы, чтобы разрешить setuid:

chmod u+s /path/to/program (это должно быть сделано как пользователь, которому разрешено изменять программу с помощью chmod, например root)

Затем просто запустите программу без использования sudo. У него будет эффективный пользователь Дэвид, но хитрее будете вы.