* Yeni * WiFi ağına bağlanırken sudo şifresini kaldır


12

Şu anda yönetici olmayan kullanıcım yeni bir WiFi ağına bağlanmaya çalıştığında (örneğin bir kafede) NetworkManager yönetici kullanıcısının şifresini ister. Bunu kapatmanın ve yönetici olmayan kullanıcının istedikleri Wifi ağına bağlanmasına izin vermenin bir yolu var mı?

EDIT: sadece açıklığa kavuşturmak için, gerçekten bilgisayar tarafından daha önce hiç bağlanmayan yeni bir WiFi ağını kastediyorum , bu yüzden mevcut bir kurulan bağlantıda 'Tüm kullanıcılar tarafından kullanılabilir' tıklanması sorunu çözmeyecektir - şu anda yönetici olmayan kullanıcıyla ilgili bir sorun yok ev ağına istedikleri kadar tekrar bağlanır.


/etc/sudoersdüzenlemek için dosyadır, bu yüzden parola istemez
Rinzwind

visudoYönetici olmayan kullanıcının ( sudo apt-get upateörneğin gibi ) birkaç şey yapmasına izin vermek için daha önce kullandım , ancak yeni bir wifi ağına bağlanma konusunda bir parola istenmesini durdurmak için oraya ne koymak zorunda kalacağımdan emin değilim
fpghost

ha beni oraya götürdün. Bellekten bilseydim bir cevap
verirdim

evet, someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFisanırım gerçekten de bu şekilde gidilebiliyorsa, sanırım formda bir şey olmalı .
fpghost

Kesinlikle :) ..
Rinzwind

Yanıtlar:


14

Ubuntu 13.04'te aşağıdaki çözümle başarı buldum:

/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policyKök / sudo ayrıcalıklarıyla açın ve aşağıdaki satırı arayın:

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

Bunun altında birkaç satır şöyle olmalıdır:

<allow_active>auth_admin_keep</allow_active>

Bunu şu şekilde değiştirin:

<allow_active>yes</allow_active>

Dosyayı kaydedin ve bilgisayarınızı yeniden başlatın.


aşağıdaki @ harlemsquirrel'in yanıt darbesine bakın, örneğin bir deb paketi gibi izinlerin toplanmasını çok daha kolay hale getirecektir. Ayrıca yukarıdaki yaklaşım güncelleştirmeler vb. Tarafından sıfırlanmaya yatkındır, çünkü dpkg tarafından yönetilen bir dosyayı düzenleme.
vidstige

1
Sağlam tavsiyeler, ancak sudo service network-manager restart üzerinden ağı yeniden başlatmanız yeterlidir.
mengene

4

Hata Nasıl Çözülür: Sistem ilkesi, tüm kullanıcılar için ağ ayarlarının değiştirilmesini önler

Yukarıdaki bir cevapta eksik olan kritik bir adım var, bu yüzden buraya ekliyorum. :)

Bu Ubuntu'da çalışır 14.04 LTS ve 16.04 LTS

  1. Terminali

  2. su için root

    su -
    
  3. Tip aşağıdakileri:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Dosyanın sonuna doğru, etiketli bölümü bulun :

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. Org.freedesktop.NetworkManager.settings.modify.system Bölümünün alt kısmında , aşağıdaki kod satırını bulun :

    <allow_active>auth_admin_keep</allow_active>
    
  6. Bu satırı aşağıdaki gibi okumak için değiştirin :

    <allow_active>yes</allow_active>
    
  7. Dosyayı aşağıdakileri kullanarak kaydedin :

    ^X
    
  8. Cevap "Değiştirilmiş arabelleği kaydet ( CEVAP " Hayır "HEDEF DEĞİŞİKLİĞİ OLACAK? tarafından Yazma :

    Y
    
  9. İstendiğinde Enter tuşuna basın :

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. Yeniden başlat .

:)


3

Bunun için yerel bir politika da oluşturabilirsiniz

[Kullanıcı öğrencinin ağ için sistem ayarlarını değiştirmesine izin ver]
Kimlik = Unix kullanıcı: öğrenci
Eylem = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = no
ResultInactive = hayır
ResultActive = yes

adlı bir dosyada /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

Buradaki avantaj, bu tek bir komut olabilir ve bir komut dosyasında kullanılabilir!

printf "[Kullanıcı öğrencinin ağ için sistem ayarlarını değiştirmesine izin ver] \ nIdentity = unix-user: pupil \ nAction = org.freedesktop.NetworkManager.settings.modify.system \ nResultAny = hayır \ nResultInactive = hayır \ nResultActive = evet" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla

Referans: Ubuntu Manpage: pklocalauthority


bu doğru çözüm
vidstige

2

Bu gerçekten umduğum düzeltme değil ama bulduğum bir çözüm sadece birlikte devre dışı bırakmak NetworkManagerve bunun yerine kullanımı Wicd.

NetworkManagerBaşlangıçta çalışmayı ilk durdurma :

sudo gedit /etc/NetworkManager/NetworkManager.conf

sonra # managedsatır. Ayrıca # üzerinden #start on (local-filesystems and started dbus)gelen /etc/init/network-manager.conf. Sonra sadece iki kat emin olmak için

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  

Şimdi sadece kullanabilirsiniz Wicdve hiçbir şifre istemi gerekli görünüyor.


1

Sistem yapılandırma dosyalarını düzenleyebilirsiniz, ancak bu kaba kuvvettir. Genel bir kural altında yapılandırma kahntılannin olarak, her şeyden önce /etcdeğil, /usrya /varveya başka bir yerde. HarlemSquirrel , varsayılan politikada nasıl uygun bir değişiklik yapılacağını açıkladı . Altında dosyaları düzenlemenin /usr, er ya da geç yüzünüzde patlaması garanti edilir, çünkü bu dosyalar sonunda güncellenecek / değiştirilecek sistem paketleri tarafından sağlanır.

Ancak daha büyük sorun, bu değişikliklerin en azından 18.04'ten itibaren tamamen gereksiz olmasıdır. Bu bir "yanlış tutuyorsun" sorunudur. Aslında, NM uygulamasında bir kullanılabilirlik sorunu, ama yine de. Şuna bir göz atın /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>

Yani kullanıcılar bağlantı kuramazlar, değil mi? Yanlış! İleriye bak:

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

Gördüğünüz gibi NetworkManager kullanıcı ve sistem bağlantıları kavramını desteklemektedir. Sorun, uygulamanın varsayılan olarak sistem bağlantıları oluşturmasıdır. Uygulamayı tepside açıp Ağ Seç'i tıklattığınızda , bağlanmak istediğinizi seçin, sudo kullanıcısı ister, çünkü sistem bağlantıları oluşturmaya yalnızca yöneticiler için izin verilir.

AMA Ayarlar uygulamasını açarsanız, Wi-Fi'ye gidip istediğiniz ağa tıklarsanız, yönetici şifresi olmadan kolayca bağlanmanıza izin verir. Parkta yürümek.

Uygulamanın neden varsayılan olarak sistem bağlantıları oluşturmak istediğini bilemiyorum , özellikle de bir kullanıcı bağlantısını istediğiniz zaman bir sisteme bağlayabildiğiniz için. Bu var diğer kullanıcıların kullanımına yap bağlantısı özelliklerini altında seçeneği ve söz konusu kontrol edip tıkladığınızda uygula olması gerektiği gibi, hemen, sudo şifre isteyeceğiz. Uygulamanın varsayılan olarak kullanıcı bağlantıları oluşturmasını sağlamak için bir yol bulmaya çalışacağım, anladım, bu cevabı güncelleyeceğim.


OMG bu bilgi için teşekkürler, bu beni çok uzun süredir rahatsız ediyor. Az önce bir hata raporu gönderdim: bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/…
gpothier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.