Xorg na zwykłym użytkowniku

W tym miejscu zapraszamy Was do współpracy. Czekamy na propozycje, sugestie i rady.
Moderatorzy zatroszczą się o to, by najlepsze teksty trafiły do FAQ.

Moderatorzy: Moderatorzy, Administratorzy

PITbull
Użytkownik
Posty: 158
Rejestracja: 2004-10-19, 18:50

Xorg na zwykłym użytkowniku

Post autor: PITbull »

Od wersji 1.16 server xorg możęmy uruchamiać z uprawnieniami zwykłego użytkownika.
W Slackware 14.2 mamy już xorg w wersji 1.18 wiec zaczynamy.

1.Dodajemy użytkownika do grupy input.
Bez tego nie będziemy mogli używać klawiatury, myszki etc...

Kod: Zaznacz cały

usermod -a -G input user
2.Tworzymy w katalogu /etc/X11/ plik Xwraper.config
dodajemy jedną linię :

Kod: Zaznacz cały

allowed_users=anybody
3.Zdejmujemy SUID bit z binarki xorga:

Kod: Zaznacz cały

chmod u-s /usr/libexec/Xorg 
4. startujemy X-y podając terminal, na którym wcześniej się zalowaliśmy.

Kod: Zaznacz cały

startx -- vt01
5. Sprawdzamy uprawnienia z jakimi działa xorg:

Kod: Zaznacz cały

[13:48:12 --> bull in ~]$ top | grep Xorg 

991 bull 20 0 216944 43208 28216 S 1,7 1,1 2:26.01 Xorg



To na tyle.

NA koniec kilka kwestii:

1.Działa na runlevelu 3, jeżeli posiadamy graficzny menadźer startowany z runlewel 4 /root/ może i pewnie nie zadziała lub zadziała normalnie z uprawnieniami roota.Nie sprawdzałem . Nie używam grafiki do logowania.
2. Testowane na grafice INTELa HD 4000.NA innych nie wiem. Ale powinno działać na sterownikach w trybie KMS.Co do zamkniętych sterowników nie testowałem. Na pewno nie zadziała na żadnym w trybie UMS.
3. Jeżeli podamy inną konsolę niż ta z logowania nie zadziała z powodu uprawnień .
Z tego samego powodu podanie samej komendy startx nie powiedzie się bo defoultowo X-y startują z konsoli 7.
Autologin poprzez su /jeżeli ktoś używa/ też nie zadziała.. W jakiś sposób su nie chce zwolnić terminala .
4. Xorg0.log znajduje się w katalogu /home/user/.local/share/xorg/
5. W środowisku wielu użytkowników wcale nie wiem czy dodanie userów do grupy input jest bezpieczne.

UPDATE:

Ponieważ niepokoiła mnie sytuacja wskazana w pk5 czyli dodanie userów do grupy input co raczej nie jest całkiem bezpieczne.
Dla pewnych sytuacji jest to podobne z powiedzeniem "zamienił stryjek siekierkę na kijek" :-)
Podaje dość zgrabne wyjście z tej sytuacji.

W punkcie pierwszym zamiast dodawać usera do grupy zmieniamy ustawienia grupy dla Xorga z root na input:

Kod: Zaznacz cały

chgrp input /usr/libexec/Xorg
a następnie ustawiamy bit SGID na grupę

Kod: Zaznacz cały

chmod g+s /usr/libexec/Xorg
W ten sposób zamiast mieć bezpośredni dostęp do tych urządzeń z wersji pierwszej możemy z nich korzystać poprzez Xorg , który potem zrzuca te uprawnienia.

Pozostałe kroki bez zmian.
Ostatnio zmieniony 2016-02-07, 21:23 przez PITbull, łącznie zmieniany 1 raz.
Awatar użytkownika
webster
Użytkownik
Posty: 1269
Rejestracja: 2009-10-06, 11:58
Lokalizacja: Gdańsk
Kontakt:

Re: Xorg na zwykłym użytkowniku

Post autor: webster »

Może nie qmam. Ale po co to robić?

W run lvl mam 3, loguję się na usera daję "startx" i też leci. Xorg wstaje na rootcie, a xinit na prawa usera.
††† Chaos Of The Mirror - Valheru †††
††† I ♥ SlackWare RuLeZ †††

Slackware Poland FaceBook
PITbull
Użytkownik
Posty: 158
Rejestracja: 2004-10-19, 18:50

Re: Xorg na zwykłym użytkowniku

Post autor: PITbull »

To ja lepiej :
Loguje sie na konsoli jako root wpisuje startx i wszędzie ma roota nie tylko Xorg i też jest OK. ;-)
Tylko nie o to chodzi
Po kiego Xorgowi root skoro i tak go zrzuca dla potomnych pozostając samotnie jak ostatnia twierdza , a jest bezbolesny sposób pozbycia się go przynajmniej w dużej części przypadków . NIe widze w tym żadnego wstecznictwa tylko pewną racjonalność nie wspominając o możliwości wyboru, nie nakazując przy tym niczego.
Awatar użytkownika
mina86
Moderator
Posty: 3343
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 5.x x86_64
Kontakt:

Re: Xorg na zwykłym użytkowniku

Post autor: mina86 »

Kod: Zaznacz cały

[   449.558] (EE) modeset(0): drmSetMaster failed: Permission denied
[   449.558] (EE) 
Fatal server error:
[   449.558] (EE) AddScreen/ScreenInit failed for driver 0
[   449.558] (EE) 
[   449.558] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[   449.558] (EE) Please also check the log file at "/home/mina86/.local/share/xorg/Xorg.0.log" for additional information.
[   449.558] (EE) 
[   449.714] (EE) Server terminated with error (1). Closing log file.
:(
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
ODPOWIEDZ