Может ли кто-нибудь помочь найти способ создать процесс, чей 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. У него будет эффективный пользователь Дэвид, но хитрее будете вы.