Linux E X P R E S

Facebook

Jak v Ubuntu nastavíte profily pro připojení k síti

thinkpad_perex.jpg

Ubuntu 12.04 má jednu nepříjemnou vlastnost – k vytvoření profilu pro připojení k síti (např. k wifi) vyžaduje heslo správce. Nepříjemné to je hlavně u notebooku. Jestliže uživatel je ve skupině users a často cestuje, ale nemá práva administrátora, je to problém. Návod na zprovoznění sítě poslal pan David Dvořák ze ZŠ J. Valčíka v Ostravě-Porubě.


Nepříjemná situace

Typická situace – nainstalujete Ubuntu kamarádovi na notebook, práva administrátora mu raději nedáte, neboť je to pouze uživatel počítače a nemá příliš rozsáhlé znalosti. Případně je z Windows zvyklý na postup „next → next → OK“ … a pak volá, že je to nějaký pomalý, zavirovaný... Že si tímto postupem nainstaloval mnoho programů, které mu běží na pozadí, mu jaksi uniká.

Zpátky k tématu. Uživatel je ve skupině users (nemá admin/sudo práva), přijde s notebookem do své oblíbené hospůdky a chce se připojit k tamní wifi. Ovšem systém chce heslo administrátora na vytvoření profilu pro připojení k síti. Nebo přijde k jinému kamarádovi si zahrát hry, ale pro nastavení konkrétní IP adresy na ethernetovém portu NetworkManager opět vyžaduje autorizaci správce. Stejná situace nastane, pokud by se chtěl připojit pomocí mobilního připojení např. USB modemu od O2.

Kde je chyba

NetworkManager se ve výchozím nastavení snaží vytvořit profil pro připojení k síti pro všechny uživatele s příznakem automatického připojení a získáním IP adresy z DHCP serveru. Ovšem obyčejný uživatel si může nastavit jakýkoliv atribut, ale pouze u svého profilu pro připojení k síti. Nemůže svůj profil uložit, aby byl dostupný pro všechny uživatele.

Je několik způsobů jak situaci vyřešit, aniž bychom museli uživateli sdělovat heslo správce, nebo ho mezi správce zařadit:

  1. Naučit uživatele vytvářet profil pro připojení k síti jen pro sebe. Jde to ale velmi těžko.
  2. Vytvořit systémovou skupinu např. NETMASTER a členům této skupiny povolit provádění změn v profilech pro připojení k síti. Je to elegantní řešení, které zachovává možnost nedovolit některým uživatelům tyto profily vytvářet/upravovat.
  3. Zrušit pro operace v NetworkManageru povinnost být správcem. Opět je to elegantní řešení, ovšem vytvářet profily pro připojení k síti pak má každý uživatel notebooku.
  4. Vytvořit tzv. „sudo profil“ pro operace v NetworkManageru a pak ho přiřadit konkrétnímu uživateli/skupině. Má celkem nepraktické ovládání; uvádím zde jen jako teoretickou možnost.

Nyní k jednotlivým možnostem podrobněji:

1. Naučit uživatele vytvářet profil

Jak jsem již uvedl, problém je v tom, že se NetworkManager snaží vytvořený profil pro připojení k síti uložit jako Dostupný pro všechny uživatele a vyžaduje práva administrátora. Uživatel si ale může vytvořit svůj profil pro připojení k síti; bohužel nikoliv pouhým poklepáním na název dostupné wifi sítě.

Postup v imaginární hospůdce U Matesa, kde mají wifi MATES, by byl následující :

  • Zapamatujte si název sítě MATES (tzv. SSID, ke kterému se chcete připojit).
  • Pokud se jedná o zabezpečenou síť, musíte znát heslo a o jaký mechanismus zabezpečení se jedná (WEP/WPA).
  • V horní liště klepnete na ikonku (wifi) připojení a vyberete poslední nabídku Upravit připojení.
  • Vyberete záložku Bezdrátová a zvolíte Přidat.
  • Vyplníte:
    • Název připojení např. AP U Matesa. Jedná se o název profilu pro připojení k síti.
    • Zaškrtávací pole Připojit automaticky necháte zaškrtnuté.
    • SSID – v našem virtuálním případě vyplníte MATES.
    • Zrušíte zaškrtnuté pole Dostupné pro všechny uživatele. Odškrtnutí volby se ale umožní až po vyplnění SSID, do té doby je zatržené políčko zašedlé.
    • Pokud se jedná o zabezpečenou wifi síť, pak na kartě Bezdrátové zabezpečení zvolíte druh zabezpečení a vepíšete příslušné heslo.
    • Tlačítkem Uložit vytvořený profil pro připojení k síti uložíte.

Pokud jste vše zadali správně, tak volba Připojit automaticky, kterou jste nechali zaškrtnutou, se postará o to, že se notebook automaticky k síti MATES připojí. Tento profil je ovšem dostupný jen pro toho uživatele, který jej vytvořil. Na druhou stranu bude použit i při další návštěvě hospůdky U Matesa. Jak jsem psal – jde to (bez zásahu do systému), ale velmi těžko.

Vytvořené připojení k síti MATES a možnost úpravy vybraného připojení Vytvořené připojení k síti MATES a možnost úpravy vybraného připojení

Okno a volba pro přidání dalšího připojení Okno a volba pro přidání dalšího připojení

Zaškrtněte nebo odškrtněte potřebná pole Zaškrtněte nebo odškrtněte potřebná pole

Vyplněná karta Bezdrátové zabezpečení Vyplněná karta Bezdrátové zabezpečení

2. Vytvořit systémovou skupinu

Druhé řešení spočívá v tom, že pouze určité skupině povolíte provádět operace s NetworkManagerem. Samozřejmě, dotyčný uživatel musí pak být členem této skupiny.

  • Jako správce vytvoříte systémovou skupinu např. netmaster příkazem:
sudo addgroup --system netmaster
  • Již vytvořeného uživatele (např. Franta) začleníte do této skupiny příkazem:
sudo adduser franta netmaster
  • V /etc/polkit-1/localauthority/ vytvoříte složku 55-networkmanager.d:
sudo mkdir /etc/polkit-1/localauthority/55-networkmanager.d
  • V /etc/polkit-1/localauthority/55-networkmanager.d vytvoříte soubor 10.org.freedesktop.networkmanger.pkla s příslušným obsahem. Nejprve vytvoření souboru:
sudo nano /etc/polkit-1/localauthority/55-networkmanager.d/10.org.freedesktop.networkmanger.pkla

Do souboru vložte tento text:

# Configuration file for the PolicyKit Local Authority. 
[Normal User Permissions] 
Identity=unix-group:netmaster 
Action=org.freedesktop.NetworkManager.settings.modify.system 
ResultAny=no 
ResultInactive=no 
ResultActive=yes 

Soubor uložte. Po restartu a přihlášení uživatele Franta bude tomuto uživateli (a dalším ze skupiny netmaster) umožněno připojit se pouhým poklepáním na název dostupné bezdrátové wifi sítě. Takto automaticky vytvořený profil pro připojení k síti bude pak dostupný všem uživatelům daného notebooku. Uživatelé nezařazení do skupiny netmaster si mohou vytvořit vlastní profil podle podnadpisu s číslem 1, nebo požádat o přidání svého účtu do skupiny netmaster.

3. V NetworkManageru zrušit povinnost být správcem

Tato možnost spočívá v editaci jediného souboru org.freedesktop.NetworkManager.policy, který je umístěn v adresáři /usr/share/polkit-1/actions/. Jedná se o nejjednodušší úpravu. Otevřeme soubor příkazem:

sudo nano /usr/share/polkit-1/actions/ org.freedesktop.NetworkManager.policy

Pak vyhledáme tuto sekci:

‹action id="org.freedesktop.NetworkManager.settings.modify.system"›

Sekce obsahuje:

‹message›System policy prevents modification of network settings for all users‹/message›

Na konci této sekce najdeme :

‹defaults›
	‹allow_inactive›no‹/allow_inactive›
	‹allow_active>auth_admin_keep‹/allow_active›
‹/defaults›
‹/action›

Změníme ji na:

‹defaults›
	‹allow_inactive›no‹/allow_inactive›
	‹allow_active›yes‹/allow_active›
‹/defaults›
‹/action›

Toť vše - soubor jen uložíme (Ctrl+o) a zavřeme editor (Ctrl+x). Po restartu se může každý uživatel připojovat k dostupným wifi sítím, resp. vytvářet profily pro připojení k síti, které budou dostupné pro všechny uživatele. Jinými slovy – pro manipulaci s profily pro síťové připojení má uživatel možnosti, jako by byl správce počítače. Ostatní oprávnění se uživatelům, samozřejmě, nemění.

4. Vytvořit „sudo profil“

Zbývá řešení, které nemá asi praktické použití, nicméně je to jedno z možných. Spočívá v tom, že pro uživatele nebo skupinu uživatelů vytvoříme „sudo profil“ s oprávněním spouštět potřebné programy jako správce bez zadání hesla. Nepraktické to je proto, že tímto vybraným uživatelům neumožníme vytvářet profily pro síťové připojení pouhým poklepáním na název dostupné wifi sítě. Ba co víc, vybraní uživatelé nemohou vyvolávat úpravy připojení z nabídky v horní liště, ale spouštěčem umístěným třeba na ploše. Jinými slovy – postupují stejně jako v podnadpisu 1, jen si možnost Upravit připojení spouští svým spouštěčem. Jako odměna pak pro ně bude fakt, že takto vytvořené profily pro připojení k síti budou (resp. mohou být) dostupné pro všechny uživatele, nejen pro ně samotné.

Jen v bodech a stručně. Nejprve se přihlásíte jako root:

spravce@notebook:/$ sudo bash
root@notebook:/$ visudo

Přidáte :

Cmnd_Alias NETMASTER = /usr/bin/nm-applet, /usr/bin/nmcli, \
				  /usr/bin/nm-connection-editor, /usr/bin/nm-online, \
				  /usr/bin/nm-tool, /usr/sbin/NetworkManager

# Allow members of group netmaster to execute command 
%netmaster  ALL=NOPASSWD: NETMASTER

Uložíte (Ctrl+o) a ukončíte (Ctrl+x). Ukončíte sezení roota:

root@notebook:/$ exit

Vytvoříte uživateli Franta na ploše spouštěč:

cd /home/franta/Plocha
sudo nano Netmaster.desktop

Do souboru napíšete:

[Desktop Entry] 
Name=NetMaster 
Comment=NetMaster - nastavení sítě 
Icon=/usr/share/pixmaps/gnome-nettool.xpm 
Exec=gksudo nm-connection-editor 
Terminal=false 
Type=Application 
Categories=GNOME;GTK;Settings;X-GNOME-NetworkSettings; 

StartupNotify=true 
X-GNOME-Bugzilla-Bugzilla=GNOME 
X-GNOME-Bugzilla-Product=NetworkManager 
X-GNOME-Bugzilla-Component=general 
NotShowIn=KDE; 
X-Ubuntu-Gettext-Domain=nm-applet

Uložíte (Ctrl+o) a ukončíte (Ctrl+x). Nakonec nastavíte příznak spouštění:

sudo chmod a+x Netmaster.desktop

Diskuze (6) Nahoru