używanie sudo w aplikacjach GUI

10

Kiedy korzystałem z kubuntu, zawsze mogłem sudo katena przykład otwierać aplikacje X za pomocą sudo . Teraz, kiedy przełączyłem się na arch, to nie działa. Wiem, że zawsze mówiono mi o używaniu kdesu, ale jakie ustawienie jest w kubuntu, które pozwala mi używać sudo w aplikacjach X, co uniemożliwia mi robienie tego na łuku?

Edycja :
Przepraszam, zrobiłem sobie to, czego tak bardzo nienawidzę> _ <

Oto co próbuję zrobić:

[falmarri @ falmarri-z-arch Pliki do pobrania] $ sudo kate
Hasło: 
Nie określono protokołu
kate: nie można połączyć się z serwerem X: 0.0

Uwaga: jest to zwykła sesja terminalowa przy użyciu konsoli, nie używam SSH

/ etc / sudoers :

Plik ## sudoers.
##
## Ten plik MUSI być edytowany za pomocą polecenia „visudo” jako root.
## Nieużywanie „visudo” może powodować błędy składniowe lub uprawnienia do plików
##, które uniemożliwiają uruchomienie sudo.
##
## Zobacz stronę podręcznika sudoers, aby uzyskać szczegółowe informacje na temat pisania pliku sudoers.
##

##
## Specyfikacja aliasu hosta
##
## Grupy maszyn. Mogą to być nazwy hostów (opcjonalnie z symbolami wieloznacznymi),
## Adresy IP, numery sieci lub grupy sieciowe.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## Specyfikacja aliasu użytkownika
##
## Grupy użytkowników. Mogą się one składać z nazw użytkowników, UID, grup Unix,
## lub netgroups.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Cmnd alias specyfikacji
##
## Grupy poleceń. Często używany do grupowania powiązanych poleceń.                                                               
# Cmnd_Alias ​​PROCESSES = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## Domyślna specyfikacja                                                                                                            
##                                                                                                                                   
## Możesz zachować niektóre z następujących zmiennych środowiskowych                                                                  
## podczas uruchamiania poleceń przez sudo.                                                                                                   
##                                                                                                                                   
## Ustawienia regionalne                                                                                                                   
# Domyślne env_keep + = "LANG LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## Uruchamiaj aplikacje X przez sudo; HOME służy do wyszukiwania                                                                         
Plik ## .Xauthority. Pamiętaj, że inne programy używają HOME do wyszukiwania                                                                      
## pliki konfiguracyjne, co może prowadzić do eskalacji uprawnień!                                                                    
 Domyślne env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## X11 ustawienia ścieżki zasobów                                                                                                        
 Domyślne env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## Ustawienia ścieżki pulpitu                                                                                                             
 Domyślne env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## Pozwól, aby polecenia sudo-run dziedziczyły sesję ConsoleKit dzwoniącego
# Domyślne env_keep + = "XDG_SESSION_COOKIE"
##
## Uncomment, aby włączyć specjalne metody wprowadzania danych. Należy zachować ostrożność, ponieważ
## może to pozwolić użytkownikom na obalenie polecenia uruchamianego przez sudo.
 Domyślne env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Odkomentuj, aby włączyć rejestrowanie danych wyjściowych polecenia, z wyjątkiem
## sudoreplay i uruchom ponownie. Użyj sudoreplay, aby odtworzyć zarejestrowane sesje.
# Domyślne log_output
# Domyślne! / Usr / bin / sudoreplay! Log_output
# Domyślne! / Usr / local / bin / sudoreplay! Log_output
# Domyślne! / Sbin / reboot! Log_output

##
## Specyfikacja aliasu Runas
##


Domyślnie: falmarri timestamp_timeout = 10

##
## Specyfikacja uprawnień użytkownika
##
root ALL = (ALL) ALL

## Odkomentuj, aby umożliwić członkom koła grupy wykonanie dowolnego polecenia
% koło WSZYSTKO = (WSZYSTKO) WSZYSTKO

## To samo bez hasła
#% koło WSZYSTKO = (WSZYSTKO) NOPASSWD: WSZYSTKO

## Odkomentuj, aby umożliwić członkom sudo grupy wykonanie dowolnego polecenia
#% sudo ALL = (ALL) ALL

## Odkomentowanie, aby każdy użytkownik mógł uruchomić sudo, jeśli zna hasło
## użytkownika uruchamiają polecenie jako (domyślnie root).
# Domyślne targetpw # Zapytaj o hasło użytkownika docelowego
# WSZYSTKO WSZYSTKO = (WSZYSTKO) WSZYSTKO # OSTRZEŻENIE: używaj tego tylko razem z 'Defaults targetpw'

## Czytaj pliki drop-in z /etc/sudoers.d
## („#” tutaj nie oznacza komentarza)
#includedir /etc/sudoers.d

Falmarri
źródło
Zdefiniuj „nie działa”. Jaki masz błąd? Czy sudopoprawnie skonfigurowałeś ? Czy możesz uruchomić aplikacje inne niż GUI sudo?
sepp2k,
ps. możesz także wypróbować aplikację o nazwie sux„su with X”
ksenoterracid

Odpowiedzi:

6

To wygląda na celową konfigurację w Arch Linux. Zobacz to do dyskusji z linkami do rozwiązań.

Najlepszą wskazówką jest dodanie „DISPLAY XAUTHORITY” do domyślnych ustawień „env_keep” w /etc/sudoers.

Fedora ma /etc/sudoersnastępujące informacje, co pozwala sudo somexapp odnieść sukces.

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
fschmitt
źródło
Przeczytałem plik / etc / sudoers i wspomniałem, że była to funkcja. Nie skomentowałem linii, które mi powiedział, ale wciąż nie działa. W moim pytaniu opublikowałem plik / etc / sudoers.
Falmarri,
Do mojej odpowiedzi dodałem ustawienia Fedory. Myślę, że nadal brakuje DISPLAY i XAUTHORITY w opublikowanym pliku.
fschmitt,
Właściwie wydaje się, że teraz działa. Nie jestem pewien, czy zapomniałem coś zapisać. Dzięki =]
Falmarri,
9

Programy graficzne nie powinny być uruchamiane z sudo. Prawidłowym sposobem jest użycie kdesudow KDE do uruchamiania programów GUI jako root lub gksuw GNOME.

Uruchamianie programów graficznych jako root może powodować poważne problemy, dlatego dostarczane są opakowania. Przeczytaj ten wątek na liście mailowej Arch, aby dowiedzieć się o poważnym problemie, który możesz napotkać podczas próby sudouruchomienia aplikacji GUI.

andrews coś
źródło
Nie wiem, co mówił ten wątek. Czy to tylko problem podczas uruchamiania X jako root? Nigdy nie miałem problemu z uruchomieniem sudo z sesji X
Falmarri,
3
Uruchamianie aplikacji GUI jako root z sudo może potencjalnie zmienić pliki, które mają być własnością root. Jednym ze szczególnie nieprzyjemnych plików, które może się zdarzyć, jest ~/.ICEauthority. Może to uniemożliwić zalogowanie się. Google „ICEauthority”, a zobaczysz, że wyniki są pełne ludzi, którzy nie mogą zalogować się do swoich systemów, ponieważ plik stał się własnością root. Właśnie wybrałem ten taki, jaki jest w Arch, systemie operacyjnym użytkownika.
andrewsomething