Так что в настоящее время, когда мой пользователь без прав администратора пытается подключиться к новой сети WiFi (например, в кафе, скажем), NetworkManager запрашивает пароль пользователя с правами администратора. Есть ли способ отключить это и позволить пользователю без прав администратора подключаться к любой сети Wifi, которая ему нравится?
РЕДАКТИРОВАТЬ: просто чтобы прояснить, я действительно имею в виду новую сеть Wi-Fi никогда не подключался к предыдущему с помощью компьютера, поэтому нажатие «Доступно для всех пользователей» на существующем установленном соединении не решит проблему, поскольку в настоящее время нет проблем с тем, что пользователь без прав администратора повторно подключается столько раз, сколько ему нравится, к домашней сети. [ 112]
Я нашел успех в следующем решении в 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>
Сохраните файл и перезагрузите компьютер.
Это не то исправление, на которое я надеялся, но я нашел один обходной путь - просто отключить NetworkManager
все вместе и вместо этого использовать Wicd
.
Сначала остановите запуск NetworkManager
при запуске:
sudo gedit /etc/NetworkManager/NetworkManager.conf
, затем # из строки managed
. Также # out #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
и никаких подсказок пароля не требуется.
Вы также можете создать локальную политику для этого
[Let user pupil modify system settings for network] Identity=unix-user:pupil Action=org.freedesktop.NetworkManager.settings.modify.system ResultAny=no ResultInactive=no ResultActive=yes
в файле с именем /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla
.
Преимущество здесь в том, что это может быть одна команда и может использоваться в скрипте!
printf "[Let user pupil modify system settings for network]\nIdentity=unix-user:pupil\nAction=org.freedesktop.NetworkManager.settings.modify.system\nResultAny=no\nResultInactive=no\nResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla
Ссылка: Ubuntu Manpage: pklocalauthority
Как Разрешить Ошибку: Системная политика предотвращает модификацию параметров сети для всех пользователей
Существует критический шаг, отсутствующий в ответе выше, таким образом, я включаю его здесь.:)
Это работает в Ubuntu 14.04 LTS и 16.04 LTS
Откройте Terminal
su для укоренения
su -
Введите следующее:
nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
К концу файла найдите раздел маркированным:
<action id="org.freedesktop.NetworkManager.settings.modify.system">
В нижняя часть org.freedesktop. Раздел NetworkManager.settings.modify.system, найдите следующую строку кода:
<allow_active>auth_admin_keep</allow_active>
Измените эту строку для чтения следующим образом:
<allow_active>yes</allow_active>
Сохраните использование файла:
^X
Ответ "Сохраняет измененный буфер (ОТВЕЧАЮЩИЙ, "Нет" УНИЧТОЖИТ ИЗМЕНЕНИЯ)?" путем Ввода:
Y
Хит Входит при запросе с:
File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
Перезапуск.
:)
Можно отредактировать файлы конфигурации системы, но это - грубая сила. В первую очередь, как показывает опыт, конфигурация находится под /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 поддерживает понятие о системных соединениях и пользователе. Проблема, апплет создает системные соединения по умолчанию. Таким образом, когда Вы открываете апплет на лотке и нажимаете Select Network, затем выберите тот, с которым Вы хотите соединиться, он просит sudo пользователя, потому что создающие системные соединения только позволяются для администраторов.
НО если Вы откроете приложение Настроек, перейдите к Wi-Fi и нажмите на желаемую сеть, то это легко позволит Вам соединиться без пароля администратора. Обход в парке.
Почему апплет хочет создать системные соединения, по умолчанию вне меня, хотя, тем более, что можно сделать пользовательское соединение системой один в любое время позже. Это - Делать доступный для другой пользовательской опции под свойствами соединения, и когда Вы проверяете, что и нажимают Apply, это сразу попросит sudo пароль, как это должно. Я попытаюсь найти способ заставить апплет создать пользовательские соединения по умолчанию, я обновлю этот ответ, если я понял это.