Добавление «полезного» системного вызова, обычно недоступного для пользователя без полномочий root - PullRequest
4 голосов
/ 28 октября 2010

Я реализовал простой системный вызов Hello World с ограниченной функциональностью - он просто переходит из пользовательского режима в режим ядра, печатает сообщение, которое регистрируется вместе с сообщениями ядра, и возвращается в режим пользователя.

Следующим шагом для получения дополнительного кредита является добавление полезного (нового) системного вызова, который обычно недоступен для пользователя без полномочий root.

Системный вызов может быть простым, как нам нравится, но я изо всех сил пытаюсь придумать какие-нибудь идеи ... может кто-то направить меня в правильном направлении или к чему-то, что будет легко реализовано? (Намек был дан на использование вашего нового системного вызова в целях отладки!)

Ответы [ 5 ]

2 голосов
/ 28 октября 2010

В структурах ядра имеется достаточное количество информации о процессах: расположение страниц, статистика памяти, статистика ввода-вывода и информация о дескрипторе файла, информация о планировании ЦП и т. Д. Хотя большая часть этой информации может быть доступна пользователю через такие вещи, какфайловая система proc, для получения этой информации программно, вероятно, требуется анализ вывода proc и т. д. Предоставление способа получения информации такого типа о процессе (возможно, уделение меньшего внимания вопросам безопасности, которые могут возникнуть в настоящее время) можетбыть полезным.

1 голос
/ 08 ноября 2010

Пользователь обычно не может подарить право собственности на файл, которым он владеет, другому пользователю (конечно, для этого есть веские причины!). Вы можете реализовать системный вызов для этого. Не забудьте очистить бит setuid!

0 голосов
/ 01 ноября 2013

Как насчет просто установить uid текущего процесса равным 0, по сути, системный вызов «back-door», который дает root-доступ любому пользователю, который его вызывает?

0 голосов
/ 09 ноября 2010

Самое простое, что нужно сделать - для отладки - создать системный вызов, который даст вам прямой доступ к вызову ядра "printk"!

0 голосов
/ 28 октября 2010

Возможно, новый вызов, чтобы специально обновить системную дату и время с доверенного NTP-сервера?Я считаю, что обычный пользователь не может сделать это самостоятельно.

Изменение настроек сети каким-либо образом?Освободите / обновите аренду DHCP или внедрите простые сетевые местоположения, которые представляют собой предварительно заданные пакеты настроек, хранящиеся в файле конфигурации с правами на запись в корневой каталог.

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