Почему я могу отформатировать диск без пароля, используя gnome-disks?

Вопрос или проблема

Я использую Debian GNU/Linux (Bookworm) и с помощью gnome-disk-utility 45.1 (UDisks 2.10.1) хочу сразу перевести вращающийся диск в режим ожидания (через графический интерфейс). При этом меня просят ввести пароль. — К слову: я не ищу командный способ сделать это.

Тем не менее, меня интересует, почему возможно отформатировать диск (то есть инициализировать диск с новой схемой разделов MBR или GUID), не предоставляя пароль?! Это может привести к случайной потере данных, ИМХО.

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

Кстати: Мой пользователь без прав root является членом следующих групп: redacteduser adm cdrom floppy sudo audio dip video plugdev users netdev bluetooth lpadmin scanner systemd-journal

Политика определения того, когда утилиты дисков на основе UDisks запрашивают пароль, а когда нет, определяется по умолчанию в файле /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy.

Поскольку этот файл содержит много языковых переводов, возможно, проще получить общее представление о различных действиях и их стандартных политиках безопасности с помощью команды:

grep -v xml:lang /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy |less

По сути, UDisks2 требует более строгой аутентификации на устройствах, которые считаются “системными устройствами”, устройствах, назначенных на место, отличное от того, которое вы используете в данный момент (применимо в конфигурациях с несколькими местами или при удаленном доступе), или помеченных опцией x-udisks-auth в /etc/fstab.

Если вы хотите изменить стандартные правила, вы можете написать свои собственные настройки в /etc/polkit-1/rules.d/. Если вам нужна помощь в этом, ищите вопросы, в которых упоминается polkit.addRule здесь, на Unix&Linux StackExchange: уже написано много примеров.

Похоже, вам нужно написать собственное правило, которое позволит вам выполнять следующие действия:

  • org.freedesktop.udisks2.ata-standby,
  • org.freedesktop.udisks2.ata-standby-system,
  • org.freedesktop.udisks2.power-off-drive и/или возможно
  • org.freedesktop.udisks2.power-off-drive-system

без проверки аутентификации и, возможно, сделать правила для org.freedesktop.udisks2.modify-device (управляет созданием файловых систем, разбивкой на разделы, маркировкой файловых систем и т.д.) немного более строгими, чем по умолчанию.

Наконец, я нашел время, чтобы прочитать man polkit, и мне удалось успешно написать свое собственное правило. Я хотел, чтобы меня не просили авторизоваться при переводе моего ata system диска в режим ожидания. И вот как я это сделал: отредактируйте файл /etc/polkit-1/rules.d/13-noauth-standby.rules и вставьте

/* Позволить переводить системный диск в режим ожидания без требования авторизации */
polkit.addRule(function(action, subject){
  if (action.id == "org.freedesktop.udisks2.ata-standby-system" &&
      subject.isInGroup("disk")) {
    return polkit.Result.YES;
  }
});

Кажется, сейчас все на JavaScript 🙂

Кроме того, я ограничиваю это право для членов группы хранения disk в системах Debian (т.е. Bookworm/Trixie).

sudo adduser $USER disk

Ответ или решение

Форматирование диска без ввода пароля с использованием gnome-disks может показаться непривычным и даже вызывающим беспокойство решением, особенно с точки зрения безопасности и возможной потери данных. Тем не менее, это поведение объясняется политиками и правилами, заданными в системе для управления доступом к устройствам.

Понимание политик управления доступом

Способ, которым различные утилиты для работы с дисками (например, UDisks) запрашивают ввод пароля, определяется файлами политик, такими как /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy. Эти файлы устанавливают уровни доступа для различных действий, включая создание файловых систем, разметку дисков и другие операции, которые могут повлиять на данные на устройствах.

Некоторые действия, такие как форматирование диска (или инициализация нового раздела с использованием MBR или GPT), могут не требовать аутентификации, поскольку они считаются менее критичными или не затрагивают параметры системы. Однако смена состояния устройства в "ожидание" (standby) требует повышенной безопасности, так как это может затронуть работу системы, особенно если устройство используется другими процессами.

Классификация действий в UDisks2

Как упоминалось выше, UDisks, предоставляемый через Polkit, применяет строгие требования к аутентификации для более чувствительных операций. Это относится к системным устройствам, которые могут быть назначены для разных "сидений" в многопользовательских системах, а также к тем, что отмечены специальными флагами в конфигурации (/etc/fstab).

Настройка пользовательской политики

Если вы хотите устранить ввод пароля для перевода диска в состояние ожидания, рекомендуется создать собственное правило в системе. Это можно сделать следующим образом:

  1. Откройте терминал и создайте новый файл правила:

    sudo nano /etc/polkit-1/rules.d/13-noauth-standby.rules
  2. Вставьте в него следующий код:

    /* Разрешить перевести системный диск в режим ожидания без необходимости авторизации */
    polkit.addRule(function(action, subject){
     if (action.id == "org.freedesktop.udisks2.ata-standby-system" &&
         subject.isInGroup("disk")) {
       return polkit.Result.YES;
     }
    });
  3. Добавьте своего пользователя в группу disk, если вы этого еще не сделали:

    sudo adduser $USER disk

Таким образом, вы создаете правило, которое позволяет пользователям из группы disk менять режим системного диска без необходимости подтверждения.

Заключение

Форматирование диска в gnome-disks без пароля возможно благодаря специфике настроек политик доступа. Понимание этих политик позволяет не только извлечь преимущества от функционала системы, но и минимизировать риски случайной потери данных. Настраивая политики управления доступом под свои нужды, вы можете оптимизировать свой рабочий процесс и повысить производительность.

Оцените материал
Добавить комментарий

Капча загружается...