ลบรหัสผ่าน sudo เมื่อเชื่อมต่อกับเครือข่าย * ใหม่ * WiFi


12

ดังนั้นในปัจจุบันเมื่อผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบของฉันพยายามเชื่อมต่อกับเครือข่าย WiFi ใหม่ (เช่นที่ร้านกาแฟ) NetworkManager จะแจ้งให้ใส่รหัสผ่านของผู้ดูแลระบบ มีวิธีปิดหรือไม่และอนุญาตให้ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบสามารถเชื่อมต่อกับเครือข่ายไร้สายใดก็ได้ที่พวกเขาต้องการ?

แก้ไข: เพื่อชี้แจงฉันหมายถึงเครือข่าย WiFi ใหม่ที่ไม่เคยเชื่อมต่อกับคอมพิวเตอร์มาก่อนดังนั้นการคลิก 'พร้อมใช้งานสำหรับผู้ใช้ทั้งหมด' บนการเชื่อมต่อที่มีอยู่แล้วจะไม่สามารถแก้ปัญหาได้ - เนื่องจากปัจจุบันไม่มีปัญหากับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ เชื่อมต่อใหม่หลายครั้งตามที่ต้องการกับเครือข่ายในบ้าน


/etc/sudoersเป็นไฟล์ที่จะแก้ไขดังนั้นจึงไม่ขอรหัสผ่าน: help.ubuntu.com/community/Sudoers
Rinzwind

ฉันเคยใช้มาvisudoก่อนเพื่ออนุญาตให้ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบทำบางสิ่ง (เช่นsudo apt-get upateเช่น) แต่ฉันไม่แน่ใจว่าจะต้องใส่อะไรเพื่อหยุดพวกเขาจะถูกถามรหัสผ่านในการเชื่อมต่อกับเครือข่าย wifi ใหม่
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ด้วยสิทธิ์ใช้งานรูท / 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 ด้านล่างมันจะทำให้ง่ายขึ้นมากที่จะแพ็คการอนุญาตขึ้นภายในเช่นแพคเกจ deb นอกจากนี้วิธีการดังกล่าวอาจถูกรีเซ็ตด้วยการปรับปรุงและอื่น ๆ เนื่องจากการแก้ไขไฟล์ของคุณจัดการโดย dpkg
vidstige

1
คำแนะนำที่ชัดเจน แต่คุณควรรีสตาร์ทเครือข่ายผ่าน sudo service network-manager restart
หนีบ

4

วิธีแก้ไขข้อผิดพลาด: นโยบายระบบป้องกันการแก้ไขการตั้งค่าเครือข่ายสำหรับผู้ใช้ทั้งหมด

มีขั้นตอนสำคัญที่ขาดหายไปจากคำตอบข้างต้นดังนั้นฉันจึงรวมมันไว้ที่นี่ :)

สิ่งนี้ใช้ได้ใน Ubuntu 14.04 LTS และ 16.04 LTS

  1. เปิดTerminal

  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. ตอบ "บันทึกบัฟเฟอร์ที่แก้ไขแล้ว (ตอบ" ไม่ "จะทำลายการเปลี่ยนแปลงได้หรือไม่)" โดยการพิมพ์ :

    Y
    
  9. กด Enterเมื่อได้รับแจ้งด้วย:

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. เริ่มต้นใหม่

:)


3

คุณยังสามารถสร้างนโยบายท้องถิ่นสำหรับสิ่งนี้

[ให้นักเรียนผู้ใช้แก้ไขการตั้งค่าระบบสำหรับเครือข่าย]
ตัวตน = ยูนิกซ์ผู้ใช้: นักเรียน
Action = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = ไม่มี
ResultInactive = ไม่มี
ResultActive = yes

/etc/polkit-1/localauthority/50-local.d/10-network-manager.pklaในไฟล์ที่เรียกว่า

ข้อได้เปรียบที่นี่คือนี่อาจเป็นคำสั่งเดียวและสามารถใช้งานได้ในสคริปต์!

printf "[ให้ผู้ใช้ของนักเรียนปรับเปลี่ยนการตั้งค่าระบบสำหรับเครือข่าย] \ nIdentity = ผู้ใช้ unix: pupil \ nAction = org.freedesktop.NetworkManager.settings.modify.system \ nResultAny = ไม่ \ nResultActive = ใช่" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla

การอ้างอิง: Ubuntu Manpage: pklocalauthority


นี่คือทางออกที่ถูกต้อง
vidstige

2

นี้ไม่ได้จริงๆการแก้ไขที่เราหวัง แต่หนึ่งในการแก้ปัญหาที่ฉันได้พบเป็นเพียงการปิดการใช้งานทั้งหมดร่วมกันและแทนการใช้งานNetworkManagerWicd

หยุดแรก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และไม่จำเป็นต้องมีการแจ้งรหัสผ่าน


0

คุณสามารถแก้ไขไฟล์การกำหนดค่าระบบ แต่นั่นเป็นแรงเดรัจฉาน ประการแรกการกำหนดค่าอยู่ภายใต้/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 ทันทีตามที่ควร ฉันจะพยายามหาวิธีที่จะทำให้แอปเพล็สร้างการเชื่อมต่อผู้ใช้โดยค่าเริ่มต้นฉันจะอัปเดตคำตอบนี้ถ้าฉันคิดออก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.