Домашний каталог корневого пользователя (/root) изменен

В Xterm открыт /dev/ptmx, но вы не можете видеть его в таком виде. Вот почему.

Ваши разрешения на исполняемый файл xterm имеют установленный бит S_ISGID (set-group-ID) и принадлежат группе utmp.

Он настроен таким образом, что xterm может добавить запись в /var/run/utmp и /var/log/wtmp (точные пути зависит от вашей системы), поэтому ваш сеанс отображается в выводе кто или последний.

С этими разрешениями, когда xterm выполняется, выполняющий его процесс увидит, что его эффективный идентификатор группы изменится на идентификатор группы utmp (в то время как Идентификатор группы read останется прежним), что даст ему разрешение на открытие записей входа utmp/wtmp в режиме записи.

В Linux в качестве меры безопасности только root может отображать открытые файлы процессов, у которых эффективный идентификатор пользователя отличается от реального идентификатора пользователя или эффективный идентификатор группы отличается от реального идентификатора группы. (вы заметите, что для таких процессов /proc/fd имеет права dr-x------ root root по сравнению с dr- x------ вы your-group для других процессов).

Вот почему lsof при работе от имени обычного пользователя не может вывести список открытых файлов этого процесса xterm. Вам нужно будет запустить lsof как root.

Что касается того, почему это работает для гном-терминалов, есть несколько вариантов:

  • гном-терминал не добавляет записи в записи входа в систему (в моей системе так и есть)
  • gnome-terminal использует utempter помощник (в данном случае это sgid utmp) для добавления записей входа. Это то, что xterm и konsole делают в моей системе.
  • gnome-terminal сбрасывает эффективный идентификатор пользователя на реальный идентификатор пользователя (временно отказывается от специального доступа utmp) после обновления записей входа (что xterm не не делать).
1
05.04.2016, 03:27
0 ответов

Теги

Похожие вопросы