Добавьте строку:
DISC_EJECT_REQUEST
к CD-ROM udev правила. Это позволит Вам заблокировать с:
eject -i
Исходный xterm
был программой с set-uid. Одна из причин, по которой необходима возможность записи в файл utmp
, чтобы записывать, кто какое устройство использовал. Другая причина заключалась в том, что xterm
необходимо получить право собственности на устройство псевдотерминала, используемое в качестве стандартного ввода / вывода, и ошибка, чтобы установить это право собственности для пользователя, обращающегося к нему.
В то время как большинство других операционных систем типа Unix / Unix больше не используют биты setuid или setgid для достижения той же цели, но с использованием других и более безопасных методов, FreeBSD, похоже, сохранила исходное решение.
Хорошо, я не заметил, что это все еще так, но однако. Есть способы ограничения урона, который он может сделать, может быть, с этим новым Capsicum они работают над. Но для всех приложений X (xorg) я бы сказал, что должен прийти первый Wayland, а затем мы можем поговорить о безопасности на компьютере, который работает x для реального. Такие небольшие проблемы, такие как Xterm, способные объявлять терминал, который можно решить потом через пять минут. Xorg - большая огромная безопасность.
Запрет некоторых временных отчетов об ошибках / исправлений (не найдено в журнале изменений порта), FreeBSD не требует, чтобы xterm был setuid, и не использовала его с xterm с 2011 года . В комментарии сопровождающего порта сказано
- Don't set suid bit. In our implementation, grantpt() and unlockpt() don't
actually have any use, because PTY's are created on the fly and already have
proper permissions upon creation (see src/lib/libc/stdlib/ptsname.c) [1]
, что относится к изменениям, внесенным в 2008 г. :
The pts(4) driver also implements this feature, which means
posix_openpt() will now return PTY's that are created on the fly.
Учитывая этот вопрос в 2014 г. звучит так, как если бы OP смотрел на старую систему. Или (это действительно происходит), система OP могла быть изменена кем-то , добавив бит setuid.
В зависимости от платформы (и ее возраста) xterm будет использовать setuid или setgid для следующих операций:
Первоначально BSD (и другие) псевдотерминалы -терминальные реализации требовали, чтобы приложение находило специальное устройство и затем открывало его, используя права root setuid. Unix98 покончил с первой частью (поиск специального устройства), начиная с в 1999 году . Большинство реализаций псевдотерминала примерно к 2005 г. устранили необходимость установки приложения с использованием setuid . По какой-то причине во FreeBSD на это не обращали внимания.
Аналогичным образом приложениям могут потребоваться групповые разрешения (через setgid ) для обновления файла utmp (или utmpx), который используется last
и who
. xterm
предоставил использование библиотеки utempter для этой цели с 2000 года .Порт FreeBSD для xterm использует эту функцию, поэтому не требует setgid.
Другие программы могут быть установлены как setuid или setgid для тех же операций, но к 2014 году маловероятно, что какой-либо терминальной программе потребовались разрешения setuid для пользователь root . При использовании в других программах (например, urxvt) они, вероятно, были упущены их сопровождающими.