Hapus kata sandi sudo saat menghubungkan ke * baru * jaringan WiFi

12

Jadi saat ini ketika pengguna non-admin saya mencoba untuk terhubung ke jaringan WiFi baru (misalnya di warnet katakan) NetworkManager meminta kata sandi pengguna admin. Apakah ada cara untuk mematikan ini dan memungkinkan pengguna non-admin untuk terhubung ke jaringan Wifi apa pun yang mereka suka?

EDIT: hanya untuk memperjelas, maksud saya jaringan WiFi baru yang tidak pernah terhubung sebelumnya oleh komputer, jadi mengklik 'Tersedia untuk semua pengguna' pada koneksi yang ada tidak akan menyelesaikan masalah - karena saat ini tidak ada masalah dengan pengguna non-admin menghubungkan kembali sebanyak yang mereka suka ke jaringan rumah.

fpghost
sumber
/etc/sudoersadalah file yang akan diedit sehingga tidak meminta kata sandi: help.ubuntu.com/community/Sudoers
Rinzwind
Saya telah menggunakan visudosebelumnya untuk memungkinkan pengguna non-admin untuk melakukan beberapa hal (seperti sudo apt-get upatemisalnya) tetapi saya tidak yakin apa yang harus saya masukkan ke sana untuk menghentikan mereka dimintai kata sandi untuk menghubungkan ke jaringan wifi baru
fpghost
ha kau membuatku di sana. Saya akan menjawabnya jika saya tahu itu dari ingatan (sudah mencari sedikit tetapi belum menemukannya: D)
Rinzwind
ya, pasti sesuatu dari bentuk yang someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFisaya anggap, jika ini memang cara untuk pergi.
fpghost
Itu pasti :) ..
Rinzwind

Jawaban:

14

Saya menemukan kesuksesan dengan solusi berikut di Ubuntu 13.04:

Buka /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policydengan root / sudo privilege dan cari baris berikut:

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

Beberapa baris di bawah ini seharusnya:

<allow_active>auth_admin_keep</allow_active>

Ubah ke:

<allow_active>yes</allow_active>

Simpan file dan mulai ulang komputer Anda.

Kyle Spencer
sumber
lihat jawaban pukulan oleh @harlemsquirrel di bawah ini, itu akan membuatnya lebih mudah untuk mengemas izin di dalam misalnya paket deb. Juga pendekatan di atas rentan untuk diatur ulang oleh pembaruan, dll, karena Anda mengedit file yang dikelola oleh dpkg.
vidstige
1
Nasihat yang solid, tetapi Anda hanya perlu me-restart jaringan melalui sudo service network-manager restart
catok
4

Cara Mengatasi Kesalahan: Kebijakan sistem mencegah modifikasi pengaturan jaringan untuk semua pengguna

Ada langkah penting yang hilang dari jawaban di atas, jadi saya memasukkannya di sini. :)

Ini berfungsi di Ubuntu 14.04 LTS & 16.04 LTS

  1. Buka Terminal

  2. su untuk root

    su -
    
  3. Ketikkan yang berikut ini:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Menjelang akhir file, temukan bagian yang berlabel:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. Di bagian bawah bagian sistem org.freedesktop.NetworkManager.settings.modify.s , temukan baris kode berikut:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Ubah baris ini untuk dibaca sebagai berikut:

    <allow_active>yes</allow_active>
    
  7. Simpan file menggunakan:

    ^X
    
  8. Jawab "Simpan buffer yang dimodifikasi (JAWABAN" Tidak "AKAN MENGHANCURKAN PERUBAHAN)?" dengan Mengetik :

    Y
    
  9. Tekan Enter saat diminta dengan:

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. Mulai ulang .

:)

bu11etpr00f
sumber
3

Anda juga dapat membuat kebijakan lokal untuk ini

[Biarkan murid pengguna memodifikasi pengaturan sistem untuk jaringan]
Identity = unix-user: pupil
Action = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = tidak
ResultInactive = tidak
ResultActive = ya

dalam sebuah file bernama /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

Keuntungannya di sini adalah ini bisa menjadi perintah tunggal dan dapat digunakan dalam skrip!

printf "[Biarkan siswa memodifikasi pengaturan sistem untuk jaringan] \ nIdentity = unix-user: pupil \ nAction = org.freedesktop.NetworkManager.settings.modify.system \ nResultAny = tidak \ nResultInaktif = tidak \ nResultActive = ya" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla

Referensi: Ubuntu Manpage: pklocalauthority

HarlemSquirrel
sumber
ini adalah solusi yang tepat
vidstige
2

Ini sebenarnya bukan perbaikan yang saya harapkan tetapi satu solusi yang saya temukan hanyalah untuk menonaktifkan NetworkManagersemua-bersama dan sebagai gantinya digunakan Wicd.

Pemberhentian pertama NetworkManagerberjalan pada saat startup:

sudo gedit /etc/NetworkManager/NetworkManager.conf

lalu # keluar managedgaris. Juga # keluar #start on (local-filesystems and started dbus)dari /etc/init/network-manager.conf. Kemudian hanya untuk memastikan ganda

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  

Sekarang bisa saja menggunakan Wicddan sepertinya tidak ada kata sandi yang diminta.

fpghost
sumber
0

Anda dapat mengedit file konfigurasi sistem, tetapi itu brutal. Pertama-tama, sebagai aturan praktis, tinggal konfigurasi di bawah /etc, tidak /usratau /varatau di mana pun. HarlemSquirrel menjelaskan cara melakukan perubahan yang tepat ke kebijakan default. Mengedit file di bawah /usrdijamin akan meledak di wajah Anda cepat atau lambat, karena file-file itu disediakan oleh paket sistem, yang pada akhirnya akan diperbarui / diganti.

Tetapi masalah yang lebih besar adalah bahwa perubahan ini sama sekali tidak perlu, setidaknya pada 18,04. Ini adalah masalah "Anda salah paham". Sebenarnya, ini masalah kegunaan pada bagian applet NM, tapi bagaimanapun. Lihatlah /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>

Berarti pengguna tidak dapat membuat koneksi, kan? Salah! Lihat lebih jauh:

  <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>

Seperti yang Anda lihat, NetworkManager mendukung konsep koneksi pengguna dan sistem. Masalahnya adalah, applet membuat koneksi sistem secara default. Jadi ketika Anda membuka applet pada baki dan klik Select Network , lalu pilih yang ingin Anda sambungkan, ia meminta pengguna sudo, karena membuat koneksi sistem hanya diperbolehkan untuk admin.

TETAPI jika Anda membuka aplikasi Pengaturan , pergi ke Wi-Fi dan klik pada jaringan yang diinginkan, itu akan dengan mudah membiarkan Anda terhubung tanpa kata sandi admin. Berjalan di taman.

Mengapa applet ingin membuat koneksi sistem secara default adalah di luar saya, terutama karena Anda dapat membuat koneksi pengguna sebagai sistem kapan saja nanti. Ini adalah opsi Jadikan tersedia untuk pengguna lain di bawah properti koneksi, dan ketika Anda memeriksanya dan mengklik Terapkan , itu akan segera meminta kata sandi sudo, sebagaimana seharusnya. Saya akan mencoba menemukan cara untuk membuat applet membuat koneksi pengguna secara default, saya akan memperbarui jawaban ini jika saya menemukannya.

bviktor
sumber