Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-05-31 19:00:54

  theNightcore98 - Nowy użytkownik

theNightcore98
Nowy użytkownik
Zarejestrowany: 2013-05-31

uruchamianie aplikacji X jako root

Witam. Jestem nowym użytkownikiem debiana i nowym użytkownikiem forum.

Po instalacji kde na moim debianie zauważyłem że nie mogę odpalać większośći zwykłych(nie konsolowych) aplikacji jako root(poprzez komendę su).
Szperając w google dowiedziałem sie że to się dzieje za sprawą braku dostępu roota do serwerów X, czy jakoś tak.
Poszperałem więc dalej i znalazłem rozwiązanie tego które działa na stałe(nie trzeba tego wpisywać za każdym razem) i jest proste w użyciu.

wystarzczy w konsoli wpisać

Kod:

su

i zalogować się na roota, a następnie wpisać

Kod:

xhost +local:root

i zrestartować konsolę.
po tej operacji , po użyciu komendy su możemy odpalać dowolne aplikacje.

Mam nadzieję że pomogłem. Jeżeli taki temat już był to proszę o usunięcie, ale nie karanie mnie za to, bo szukałem takiego tematu zanim ten napisałem.

Offline

 

#2  2013-05-31 19:16:27

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: uruchamianie aplikacji X jako root

Kod:

man gksu
man kdesu

Offline

 

#3  2013-05-31 20:39:25

  theNightcore98 - Nowy użytkownik

theNightcore98
Nowy użytkownik
Zarejestrowany: 2013-05-31

Re: uruchamianie aplikacji X jako root

[quote=yossarian]

Kod:

man gksu
man kdesu

[/quote]
nie bardzo rozumiem o co ci chodzi, ja podałem sposób, nie prosiłem o niego

Offline

 

#4  2013-05-31 22:04:27

  marcin'82 - Użytkownik

marcin'82
Użytkownik
Skąd: Sosnowiec
Zarejestrowany: 2011-10-02

Re: uruchamianie aplikacji X jako root

Kolega [b]yossarian[/b] podał ci inny - właściwy sposób:

Kod:

kdesu program
gksu program

Ostatnio edytowany przez marcin'82 (2013-05-31 22:14:00)


marcin'82

Offline

 

#5  2013-05-31 22:05:31

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: uruchamianie aplikacji X jako root

albo zainstalować sux

Offline

 

#6  2013-06-01 10:13:21

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: uruchamianie aplikacji X jako root

theNightcore98 -- tutaj masz kilka sposobów na to: https://wiki.archlinux.org/index.php/Running_X_apps_as_root

Ja na debianie korzystam z "su -" ale nie pamiętam jak to miało działać, poza tym używam roota głównie do 2 graficznych aplikacji -- geany i gparted. Można sobie zrobić aliast w ~/.bashrc dla wygody:

Kod:

alias su='su -'

Poza tym skoro już ktoś zaczął ten wątek, to co root może zrobić w graficznej aplikacji czego nie może zrobić przez konsole? Niby zrozumiałe jest to w przypadku przeglądarek lub programów o niewiadomym pochodzeniu ale jak może wpłynąć na bezpieczeństwo systemu używanie w trybie graficznym edytora textu? Piję np do:

Kod:

export XAUTHORITY=/home/usersname/.Xauthority kwrite

Poza tym, rozważając xhost czy xauth. W powyższym linku jest taka informacja:

Kod:

These methods will allow root to connect to a non-root user's X server, but present varying levels
 of security risks, especially if you run ssh. If you are behind a firewall, you may consider them to be safe
 enough for your requirements.

Jeśli ktoś ma dostęp do konta root przez ssh, to co za różnica czy może odpalać graficzne aplikacje czy też nie?

Offline

 

#7  2013-06-01 10:48:55

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: uruchamianie aplikacji X jako root

Sudo wymiata:

Kod:

aptitude install sudo gksudo

Ddodać się do grupy sudo:

Kod:

gpasswd -a {pacjent} sudo

wylogować, albo restart kompa.
Działa ;)

Konfiguracja?

Jakiś niezawdony edytor, najlepiej programistyczny (gedita nie polecam), jak radzę geany:

Kod:

aptitude install geany
env EDITOR="/usr/bin/geany"  visudo

A tutaj conieco o opcjach konfiguracyjnych:
http://www.gentoo.org/doc/pl/sudo-guide.xml
Opcje sudoers?
http://www.sudo.ws/sudoers.man.html

Warto też nauczyć sudo, zeyb wolal o haslo roota a nie użytkownika:
wystarczy w visudo ustawić (w konfigu):

Kod:

Defaults       rootpw
Defaults     passwd_tries="1"

jest też opcja, żeby system zawiadamial o błędnie wprowadzonym haśle mailem, w tym celu trzeba skonfiguować wysyłanie poczty systemowej z kompa, np przy pomocy [b]esmtp[/b],
i ustawić alias pocztowy dla roota w

Kod:

/etc/aliases

Potem  wsadzić do visudo:

Kod:

Defaults    mail_badpass

Albo np użyć

Kod:

Defaults  mail_no_perms

Pozdrawiam

Ostatnio edytowany przez Jacekalex (2013-06-03 16:17:57)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2013-06-01 13:16:54

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: uruchamianie aplikacji X jako root

[quote=theNightcore98][quote=yossarian]

Kod:

man gksu
man kdesu

[/quote]
nie bardzo rozumiem o co ci chodzi, ja podałem sposób, nie prosiłem o niego[/quote]
Napisałeś tak:

Po instalacji kde na moim debianie zauważyłem że nie mogę odpalać większośći zwykłych(nie konsolowych) aplikacji jako root(poprzez komendę su).
Szperając w google dowiedziałem sie że to się dzieje za sprawą braku dostępu roota do serwerów X, czy jakoś tak.
Poszperałem więc dalej i znalazłem rozwiązanie tego które działa na stałe(nie trzeba tego wpisywać za każdym razem) i jest proste w użyciu.[/quote]
Są prostsze i lepsze metody. Jedną z nich podałem.
Masz też kilka innych.

Offline

 

#9  2013-06-03 15:45:13

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: uruchamianie aplikacji X jako root

Zgłębiając temat, znalazłem takie ciekawe info:

> 1)does xhost set the DISPLAY variable ?

No, in fact, xhost needs the DISPLAY variable already set so that it
knows which display to try and connect to to change access control.
xhost needs some way to authenticate itself to the X server so X can
trust that it's a legit user trying to change the access control.  If
you open up X to all local users by using something like xhost
+localhost or xhost local: then any local user could take over your
display and use xhost to disable your access to it.

> 2)does xhost local: also uses the tcp thingie or use it the x socket thingie ?

local: allows anyone to access the X server through unix domain sockets.
+localhost allows all local programs to access X though tcp sockets.
Normally tcp sockets are only used for remote connections since they are
slower than unix sockets, but unix sockets only work on the same
machine.

> 3)what must i put in the .Xauthority file to make the screensaver work
> with having to use xhost ?

When X first logs in to a user, it creates the .Xauthority file in that
users home directory and fills it with a random string called a
MIT-MAGIC-COOKIE.  Any X client, by default, reads that file to see what
the cookie is then sends it to the X server to authenticate itself.
Anyone who can read that file can access the display so that file is
normally only readable by the user who logged in, though root can always
read it because root is god.  When you run an X program as a different
user, it will look in that users home directory for the .Xauthority
file and so won't be able to find the right cookie unless you used the
xauth command to give that user the cookie ahead of time.  By setting
the XAUTHORITY environment variable to some other file, it will check that
file for the magic cookie instead of the current users home directory.
This is useful when running a command as root that you want to access a
normal users X server.  This is a much more secure way to allow access
to X than using xhost since you know what users are able to access X,
not just which computers, which may have multiple users on them.

In summary, don't touch xhost, just use:

XAUTHORITY=/home/user/.Xauthority xscreensaver

or you can use xauth to extract the magic cookie and then import it into
the correct users .Xauthority file.  As the user of the X server:

xauth extract my-cookie-file $DISPLAY

Saves the magic cookie to a file called my-cookie-file for the current
display.  Then as the user who want to access the X display:

xauth merge my-cookie-file

Adds the cookie stored in my-cookie file to the current users
.Xauthority file.  Now user B can open an X application on A's X server.

Oh, and don't run xscreensaver as root EVER!  Instead, if you're really
paranoid about security, make a user who can access any of your files
whose sole purpose is to run xscreensaver then use that user to run it.
This is still not that much more secure since any user that can access
an X server can essentially take it over and control your mouse and
keyboard doing what ever they want, like openning an xterm on your
display and running the passwd command to change your passwd.  Now they
just gained access to all your files as well.[/quote]
http://lists.freebsd.org/pipermail/freebsd-questions/2005-February/075394.html

Próbowałem dopisać sobie w /etc/profile :

Kod:

export XAUTHORITY=/home/morfik/.Xauthority geany

ale to kompletnie nie wpływa na to jaką aplikację mogę odpalić — można wszystkie, a dopisek "geany" na nic nie wpływa — zachowuje się tak samo jakby go nie było. Ale pomijając ten szkopuł to działa dobrze ale tylko w przypadku gdy istnieje jeden user, ten wymieniony w ścieżce. Gdy chciałem utworzyć morfik2 i zalogować się tylko do systemu przez lightdm, to już mnie system nie chciał przepuścić. Po zakomentowaniu tego wpisu, bez problemu mogłem się zalogować.

Dodając powyższy wpis w /root/.zshrc (może być i .bashrc, jestem w trakcie zmiany shella) userzy mogą się logować bezproblemowo, obaj mogą się logować na roota, przy czym tylko jeden z nich może odpalać aplikacje graficzne. Niby fajna rzecz, tylko pytanie, a gdybym tak miał 100 użytkowników w systemie i 2 adminów? Jak 2+ użytkownikom zezwolić na używanie graficznych appsów na roocie?

Próbowałem też użyć do tego celu xauth z extract i merge i niby jest ok. Problem w tym, że tylko na czas zalogowania się. Widać ten cookie jest tworzony przy każdym zalogowaniu się na x-y przez jakiegoś usera i by mieć możliwość odpalania graficznych aplikacji z roota, trzeba by ciągle powtarzać kroki z wydobywaniem ciasteczka i dodawaniem go do .Xauthority w katalogu roota. Da radę to jakoś zautomatyzować?

Oczywiście to wszystko jest przy założeniu, że na roota loguję się za pomocą "su -".

Offline

 

#10  2013-06-03 17:26:55

  dominbik - Członek DUG

dominbik
Członek DUG
Zarejestrowany: 2011-07-25

Re: uruchamianie aplikacji X jako root

generalnie jaki jest sens odpalać aplikacje graficzne z roota? już lepiej użyć policykit czy te gksu. ja miałem kiedyś inny problem - niech ktoś z was spróbuję przy pomocy np. crona albo jakiegoś skryptu z roota uruchomić aplikację graficzną lub taką, która wymaga Xów (chociażby synclient czy notify-send) w sesji zalogowanego usera. Obecnie załatwiam to na szybko takim skryptem http://pastebin.com/raw.php?i=cBraejLF i np. mam regułki udeva, że gdy podłączam myszkę wszystkim sesją w Xach wyskakuje ładne powiadomienie przez notify-send a synclient wyłącza touchpada. itd... przydatna sprawa


[img]http://img34.imageshack.us/img34/5092/zw9m.png[/img] [img]http://img29.imageshack.us/img29/219/pibw.png[/img]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.012 seconds, 12 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00092 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.149.254.25' WHERE u.id=1
0.00077 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.149.254.25', 1732922620)
0.00041 SELECT * FROM punbb_online WHERE logged<1732922320
0.00060 DELETE FROM punbb_online WHERE ident='18.188.113.185'
0.00067 SELECT topic_id FROM punbb_posts WHERE id=233784
0.00095 SELECT id FROM punbb_posts WHERE topic_id=23637 ORDER BY posted
0.00061 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=23637 AND t.moved_to IS NULL
0.00011 SELECT search_for, replace_with FROM punbb_censoring
0.00174 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=23637 ORDER BY p.id LIMIT 0,25
0.00220 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23637
Total query time: 0.00913 s