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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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ć
su
i zalogować się na roota, a następnie wpisać
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
man gksu man kdesu
Offline
[quote=yossarian]
man gksu man kdesu
[/quote]
nie bardzo rozumiem o co ci chodzi, ja podałem sposób, nie prosiłem o niego
Offline
Kolega [b]yossarian[/b] podał ci inny - właściwy sposób:
kdesu program gksu program
Ostatnio edytowany przez marcin'82 (2013-05-31 22:14:00)
Offline
albo zainstalować sux
Offline
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:
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:
export XAUTHORITY=/home/usersname/.Xauthority kwrite
Poza tym, rozważając xhost czy xauth. W powyższym linku jest taka informacja:
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
Sudo wymiata:
aptitude install sudo gksudo
Ddodać się do grupy sudo:
gpasswd -a {pacjent} sudo
wylogować, albo restart kompa.
Działa ;)
Konfiguracja?
Jakiś niezawdony edytor, najlepiej programistyczny (gedita nie polecam), jak radzę geany:
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):
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
/etc/aliases
Potem wsadzić do visudo:
Defaults mail_badpass
Albo np użyć
Defaults mail_no_perms
Pozdrawiam
Ostatnio edytowany przez Jacekalex (2013-06-03 16:17:57)
Offline
[quote=theNightcore98][quote=yossarian]
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
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 geanyale 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
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
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00091 | 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='18.188.76.209' WHERE u.id=1 |
0.00065 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.188.76.209', 1732620423) |
0.00053 | SELECT * FROM punbb_online WHERE logged<1732620123 |
0.00063 | 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.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00162 | 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.00086 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23637 |
Total query time: 0.00538 s |