2010-10-28 13 views
4

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

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

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

ответ

2

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

-1

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

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

+0

-1 Ни одна из этих вещей особенно не подходит для пространства ядра. –

+0

Потому что это чертовски домашнее задание. – Coxy

1

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

-1

Простейшая задача - для отладки - создать системный столбец, который дал бы вам прямой доступ к вызову «printk» ядра.

+0

Разве это не то, что он уже сделал? –

0

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

Смежные вопросы