Препятствуйте тому, чтобы некорневой пользователь форматировал раздел

Хорошо /dev/root просто символьная ссылка на физическое устройство, таким образом, можно использовать readlink(2) узнать, где это указывает из программы, или readlink(1) сделать то же самое из сценария оболочки.

4
09.03.2011, 23:23
3 ответа

Как nc3b уже указанный, этим управляет PolicyKit. Политика для дисков расположена в: /usr/share/polkit-1/actions/org.freedesktop.udisks.policy и может быть скорректирован.
Откройте его с корневыми правами и ищите строку: <action id="org.freedesktop.udisks.change">, любой комментирует целый блок: <!-- [udisks.change-block] -->, или набор <allow_active> к 'нет' сохраните и выйдите.

Проверьте, отключено ли это:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
No action with action id org.freedesktop.udisks.change

Или если Вы установили no:

...
implicit active:   no

В хороший, следующий раз, когда Вы пытаетесь отформатировать устройство как некорневой пользователь, или по контекстному меню или по 'Дисковой утилите', сообщение об ошибке появится запрещение его. Этот шаг все еще позволит некорневому пользователю чтению-записи устройство.


Если Вы все еще хотите позволить форматировать устройств, но с уровнем повышения уровня защиты, можно вынудить PolicyKit попросить пароль каждый раз.
Откройте тот же файл и перейдите к тому же разделу, замените 'да' с 'auth_admin' в allow_active:

<allow_active>auth_admin</allow_active>

Проверка:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
...
implicit active:   auth_admin

Отлично!

Примечание: Я только протестировал это на Ubuntu, но Fedora также использует PolicyKit, так попробуйте его фиктивным диском сначала.

5
27.01.2020, 20:48
  • 1
    Ничего себе!! Это точно, что я хотел. Вместо того, чтобы комментировать блок я сделал <allow_active>no</allow_active>. Следовательно я не могу отформатировать его вообще. Но затем <allow_active>auth_admin</allow_active> казался лучшим выбором. Благодарит тонну..!! –  Dharmit 31.01.2011, 19:10
  • 2
    Большой ответ. Но 1 примечание, что, действия по умолчанию policyKit не должны быть переопределены непосредственно в файле, но вместо этого использовании файла переопределения в /etc/polkit/localauthority с .pkla расширение –  Anwar 19.08.2016, 17:27

Это наиболее вероятно случай повышения политики. Когда Вы делаете это от честного терминала, это - то, что происходит:

nc3b@aiur:~$ /sbin/mke2fs -jv /dev/sda1
mke2fs 1.41.3 (12-Oct-2008)
mke2fs: Permission denied while trying to determine filesystem size

Когда Вы делаете это от гнома или независимо от того, что существует демон, задача которого состоит в том, чтобы поднять Ваши полномочия, когда Вы хотите выполнить действие суперпользователя (это обычно предупреждает, что это - привилегированная операция и просит пароль). Я полагаю, что Fedora использует PolicyKit, но эти системы работают так же.

Реальная опасность большинства из них состоит в том, что они предлагают "Сохранять этот пароль в брелоке для ключей" или чем-то как этот и не предупреждают Вас снова.

sudo, [6] gksudo и kdesu не просят, чтобы пользователь повторно ввел их пароль каждый раз, когда это называют для подъема программы. Скорее пользователя просят относительно их пароля однажды в запуске. Если пользователь не использовал их административные привилегии в течение определенного промежутка времени (значение по умолчанию sudo составляет 5 минут [6]), пользователь еще раз ограничивается стандартными полномочиями пользователя, пока они не вводят свой пароль снова.

Таким образом, решение состоит в том, чтобы использовать пользователя, который просто не имеет права выполнить эти задачи, даже если он вводит свой пароль.

3
27.01.2020, 20:48

Fedora имеет некоторые серьезные проблемы безопасности, если он позволяет некорневым пользователям форматировать диск. Лучшая вещь сделать является этим:

chown root:root /dev/[sh]da[0-9]
chmod 0600 /dev/[sd]da[0-9]

Затем если путем необходимости в "некорневом пользователе, чтобы смочь читать и записать на разделе" Вы означаете читать и писать в файловую систему, затем это должно быть прекрасным, если это смонтировано.

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

Кроме этого, я думаю, что структура раздела хранится в суперблоке диска (например,/dev/sda - никакие числа) и таким образом, устанавливая это на 0600, и разделы к более разрешающей маске (как 0660 и, находящийся в собственности группы), мог бы решить проблему.

2
27.01.2020, 20:48
  • 1
    Это не будет персистентным, перезагрузка или просто a udevadm trigger сбросит полномочия принять значение по умолчанию. –  wag 31.01.2011, 14:57

Теги

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