Видаліть пароль sudo під час підключення до * нової * мережі WiFi


12

Тому в даний час, коли мій користувач, який не адміністратор, намагається підключитися до нової мережі WiFi (наприклад, в кафе, наприклад). NetworkManager запитує пароль адміністратора. Чи є спосіб вимкнути це і дозволити користувачеві, який не адміністратор, підключитися до тієї мережі Wifi, яка їм подобається?

EDIT: просто для уточнення, я дійсно маю на увазі нову мережу WiFi, до якої ніколи не підключався комп’ютер, тому натискання кнопки "Доступно для всіх користувачів" на наявному встановленому з'єднанні не вирішить питання - так як наразі немає проблеми з користувачем, який не адміністратор. підключитися стільки разів, скільки їм подобається, до домашньої мережі.


/etc/sudoersце файл для редагування, щоб він не запитував паролів: help.ubuntu.com/community/Sudoers
Rinzwind

Раніше я використовував, visudoщоб дозволити користувачеві, який не працює адміністратором, робити кілька речей (наприклад, sudo apt-get upateнаприклад), але я не впевнений, що мені доведеться там вкласти, щоб вони не запитували пароль про підключення до нової мережі Wi-Fi
fpghost

га ти мене туди завів. Я би зробив це відповіддю, якби знав це з пам'яті (шукав трохи, але ще не знайшов: D)
Rinzwind

так, повинно бути щось із форми, яку someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFiя припускаю, якщо це дійсно шлях.
fpghost

Це точно :)
Rinzwind

Відповіді:


14

Я знайшов успіх у наступному рішенні в Ubuntu 13.04:

Відкрийте за /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policyдопомогою привілеїв root / sudo та знайдіть наступний рядок:

<message>System policy prevents modification of network settings for all users</message>

Кілька рядків нижче, що має бути таким:

<allow_active>auth_admin_keep</allow_active>

Змініть його на:

<allow_active>yes</allow_active>

Збережіть файл та перезавантажте комп'ютер.


дивіться відповідь на удар @harlemsquirrel нижче, це дозволить набагато простіше запакувати дозвіл всередині, наприклад, пакет дебюту. Також вищезазначений підхід може бути скинутий оновленнями тощо, тому що ви редагуєте файл, керований dpkg.
vidstige

1
Порада, але вам слід просто перезапустити мережу через сервіс sudo.
віс

4

Як вирішити помилку: Системна політика запобігає зміні налаштувань мережі для всіх користувачів

У відповіді вище відсутній критичний крок, тому я тут його включаю. :)

Це працює в Ubuntu 14.04 LTS та 16.04 LTS

  1. Відкритий термінал

  2. су до кореня

    su -
    
  3. Введіть наступне:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Під кінець файлу знайдіть розділ з написом:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. У нижній частині org.freedesktop.NetworkManager.settings.modify.system секції, знайдіть наступний рядок коду:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Змініть цей рядок таким чином:

    <allow_active>yes</allow_active>
    
  7. Збережіть файл за допомогою:

    ^X
    
  8. Відповідь "Зберегти модифікований буфер (ВІДПОВІДЬ" Ні "БУДЕ ЗАБЕЗПЛАТИ ЗМІНИ)?" по Typing :

    Y
    
  9. Натисніть Enter, коли буде запропоновано:

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. Перезапустити .

:)


3

Ви також можете створити локальну політику для цього

[Нехай учень користувача змінює системні налаштування для мережі]
Ідентифікація = unix-користувач: учень
Дія = org.freedesktop.NetworkManager.settings.modify.system
РезультатAny = ні
ResultInactive = ні
ResultActive = так

у файлі під назвою /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

Перевага тут полягає в тому, що це може бути одна команда і корисна в сценарії!

printf "[Нехай учень користувача змінює системні налаштування для мережі] \ nIdentity = unix-користувач: pupil \ nAction = org.freedesktop.NetworkManager.settings.modify.system \ nResultAny = ні \ nResultInactive = ні \ nResultActive = так" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla

Довідка: Ubuntu Manpage: pklocalauthority


це правильне рішення
vidstige

2

Це насправді не виправлення, на яке я сподівався, але знайдене нами вирішення - це просто відключити NetworkManagerвсе разом і замість цього використовувати Wicd.

Перша зупинка NetworkManagerвід запуску при запуску:

sudo gedit /etc/NetworkManager/NetworkManager.conf

потім # з managedрядка. Також # #start on (local-filesystems and started dbus)з /etc/init/network-manager.conf. Тоді просто для подвійного переконання

sudo mv /etc/init/network-manager.conf /etc/init/network-manager.conf-disabled
sudo mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart /nm-applet.desktop.disabled  

Тепер ви можете просто використовувати, Wicdі жодних підказок пароля не здається.


1

Ви можете редагувати файли конфігурації системи, але це груба сила. Перш за все, як правило, конфігурація знаходиться під /etc, ні /usrабо /varдеінде. HarlemSquirrel пояснив, як правильно змінити політику за замовчуванням. Редагування файлів в розділі /usrгарантовано рано чи пізно з’явиться на обличчі, оскільки ці файли надаються системними пакетами, які згодом будуть оновлені / замінені.

Але більша проблема полягає в тому, що ці зміни є абсолютно непотрібними, як мінімум, 18.04. Це питання "ви неправильно вважаєте". Насправді це питання зручності використання аплету NM, але все одно. Погляньте на /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy:

  <action id="org.freedesktop.NetworkManager.settings.modify.system">
    <description>Modify network connections for all users</description>
    <defaults>
      <allow_any>auth_admin_keep</allow_any>
      <allow_inactive>auth_admin_keep</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

Значить, користувачі не можуть створювати з'єднання, правда? Неправильно! Подивіться далі:

  <action id="org.freedesktop.NetworkManager.settings.modify.own">
    <description>Modify personal network connections</description>
    <defaults>
      <allow_any>auth_self_keep</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

Як бачите, NetworkManager підтримує концепцію підключень користувачів та системи. Проблема в тому, що аплет за замовчуванням створює системні з'єднання. Отже, коли ви відкриваєте аплет на лотку і натискаєте Вибрати мережу , а потім виберіть той, до якого потрібно підключитися, він запитує користувача sudo, оскільки створення системних з'єднань дозволено лише адміністраторам.

АЛЕ якщо ви відкриєте додаток " Налаштування ", перейдіть до Wi-Fi та натисніть потрібну мережу, це легко дозволить вам підключитися без пароля адміністратора. Гулятив парку.

Чому аплет хоче створити системні підключення за замовчуванням, це не моє значення, тим більше, що ви можете будь-коли пізніше встановити підключення користувача до системи. Це параметр Зробити доступним для інших користувачів у розділі властивостей підключення, і коли ви перевірите це та натиснете Застосувати , він негайно запитає пароль sudo, як слід. Я спробую знайти спосіб, щоб аплет створив з'єднання користувачів за замовчуванням, я оновлю цю відповідь, якщо я зрозумів це.


OMG спасибі за цю інформацію, це мене так довго надокучало. Я щойно подав звіт про помилку: bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/…
gpothier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.