Uruchom jako root?

5 marca, 2010 (12:47) | linux | By: konrad

Do mojego nowego openSUSE doinstalowałem sobie Wiresharka. Niestety, po uruchomieniu programu okazało się, że nie jestem w stanie zrobić nic sensownego, ponieważ lista interfejsów sieciowych jest… pusta. No tak, nie jestem root‚em, więc takie ograniczenie jest dość oczywiste. Tylko co zrobić, żeby program zadziałał na moim istniejącym profilu?

Pierwszym pomysłem było sudo (które jest przeze mnie intensywnie wykorzystywane w pracy konsolowej). Niestety, samo sudo nie wystarczy:

kbechler@nx9005:~> sudo wireshark
root's password:

(wireshark:27537): Gtk-WARNING **: cannot open display:
kbechler@nx9005:~> 

Problemem jest tu zmienna DISPLAY, która znika podczas zmiany użytkownika. Rozwiązaniem, które udało mi się na szybko zlepić jest trywialny, jednolinijkowy skrypcik:

kbechler@nx9005:~> cat ./wrapper.sh
#!/bin/bash
xterm -e sudo sh -c "export DISPLAY=${DISPLAY}; $1 $2 $3 $4"
kbechler@nx9005:~> 

Trzeba tylko odpowiednio przerobić skrót do programu:
I powinno działać. Po kliknięciu najpierw pojawi się brzydkie okno xterma z pytaniem o hasło root’a (jeżeli nie dopisaliśmy naszego użytkownika do /etc/sudoers z flagą NOPASSWD), a potem system uruchomi Wireshark’a z prawami root’a.

Uzupełnienie: Co ciekawe, w CentOSie sam Wireshark znajduje się w katalogu /usr/sbin, natomiast /usr/bin/wireshark jest dowiązaniem symbolicznym do (odpowiedni skonfigurowanego) consolehelpera. Całkiem miłe :-)

Trackback URL: http://konrad.bechler.pl/2010/03/uruchom-jako-root/trackback/

«

»

Write a comment





*