Вопрос или проблема
Я использую 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
).
Настройка пользовательской политики
Если вы хотите устранить ввод пароля для перевода диска в состояние ожидания, рекомендуется создать собственное правило в системе. Это можно сделать следующим образом:
-
Откройте терминал и создайте новый файл правила:
sudo nano /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; } });
-
Добавьте своего пользователя в группу
disk
, если вы этого еще не сделали:sudo adduser $USER disk
Таким образом, вы создаете правило, которое позволяет пользователям из группы disk
менять режим системного диска без необходимости подтверждения.
Заключение
Форматирование диска в gnome-disks без пароля возможно благодаря специфике настроек политик доступа. Понимание этих политик позволяет не только извлечь преимущества от функционала системы, но и минимизировать риски случайной потери данных. Настраивая политики управления доступом под свои нужды, вы можете оптимизировать свой рабочий процесс и повысить производительность.