Как найти реального владельца процесса после су - PullRequest
0 голосов
/ 20 августа 2010

У нас есть соглашение, согласно которому разработчики заходят на сервер со своим собственным именем пользователя, а затем sudo su - django, где django - это пользователь, под которым запускаются наши приложения.

Мне нужно выяснить, какой разработчик запускает скрипт под именем django. С ps faux:

root     26438  0.0  0.0  90152  3320 ?        Ss   10:38   0:00  \_ sshd: fred [priv]
fred     26444  0.0  0.0  90152  1852 ?        S    10:38   0:00  |   \_ sshd:         fred@pts/0
fred     26445  0.0  0.0  66052  1560 pts/0    Ss   10:38   0:00  |       \_ -bash
root     27923  0.0  0.0 101052  1336 pts/0    S    10:46   0:00  |           \_ su -    django
django   27924  0.0  0.0  66188  1752 pts/0    S    10:46   0:00  |               \_ -   bash
django   31760  0.0  0.5 227028 42320 pts/0    S+   11:10   0:01  |                   \_     python target_script.py

Я легко вижу, что задумал Фред. Однако мне нужно написать сценарий, чтобы действовать на эту информацию, и я не могу найти способ извлечь "fred" и "target_script.py" в одну строку с ps ... euser, ruser, suser Пей все говорят "Джанго". Нужно ли мне просматривать этот вывод ps faux, чтобы получить необходимую информацию?

Ответы [ 2 ]

1 голос
/ 14 января 2015

Я нашел этот старый пост, когда пытался найти ту же основную информацию. Самым простым способом, который я нашел, было использование файла loginuid в / proc / [pid]. Например:

cat /proc/${processid}/loginuid

Извините за возрождение такого и старого поста, но, возможно, кто-то найдет его полезным.

1 голос
/ 28 августа 2010

Вы использовали su - django - » сделает новую оболочку оболочкой входа в систему (см. man-страницу su ), что позволит дочернему процессу забыть свои родительские идентификаторы.Вот почему euser, ruser, suser, fuser все говорят «django».

Так что да, возможно, вам придется поискать идентификатор родительского процесса или «ps faux».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...