Разрешить пользователям без прав администратора монтировать диски через nautilus

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

Как мне этого добиться? Я использую Ubuntu 12.04.

7
задан 9 March 2015 в 13:07

1 ответ

Я решил эту проблему, изменив политику по умолчанию. Есть три способа добиться этого:

Предоставляя привилегию группе

  1. Сначала создайте группу mounter с помощью этой команды:

     sudo addgroup mounter
    
  2. Затем добавьте пользователей без прав администратора в эту группу. Например, я добавляю не-администратора пользователя normal в эту группу.

     sudo adduser normal mounter
    
  3. Затем откройте файл политики с правами администратора.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  4. В верхней части файла есть такой раздел:

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    

    Добавьте unix-group:mounter; после Identity=unix-group:admin;unix-group:sudo; в первой строке раздела. Измененный раздел будет выглядеть следующим образом

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;unix-group:mounter;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes   
    

Вот и все. Теперь пользователи без прав администратора могут монтировать диски без пароля администратора. Их нужно только добавить в группу mounter. Обратите внимание, чтобы добавить пользователя novice в группу mounter, выполните эту команду: sudo adduser novice mounter.

Предоставляя привилегию определенному пользователю

Если вы не хотите создавать другую группу, вы можете просто добавить их имя пользователя (логин) в этот файл.

  1. Откройте файл политики с правами администратора. Вы можете набрать эту команду в терминале или в командной строке, нажав Alt - F2 .

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Затем добавьте unix-user:<login-name> в строку Identity в разделе [Mounting, checking, etc. of internal drives]. Не забудьте использовать имя пользователя, а не литерал. . Например, если вы хотите дать пользователю tester эту привилегию, строка будет выглядеть следующим образом

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;unix-user:tester;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    
  3. Сохраните файл и выйдите из gedit.

Предоставляя привилегии всем пользователям

Два вышеупомянутых метода не будут работать для пользователя догадки по умолчанию в Ubuntu. Потому что гостевой пользователь создается динамически при входе в систему и удаляется после выхода из системы.

Чтобы обойти это, вы можете предоставить всем пользователям эту привилегию.

  1. Откройте файл политики с правами администратора. Вы можете набрать эту команду в терминале или в командной строке, нажав Alt - F2 .

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Затем добавьте unix-user:* в строку Identity в разделе [Mounting, checking, etc. of internal drives]. После изменения раздел будет выглядеть следующим образом:

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:sudo;unix-user:*;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    
  3. Сохраните файл и выйдите из gedit.


ОБНОВЛЕНИЯ

  1. Проверено в 14.04. Это работает так, как описано в ответе
0
ответ дан 9 March 2015 в 13:07

Другие вопросы по тегам:

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