Strona 1 z 1

Xorg na zwykłym użytkowniku

: 2016-01-30, 13:44
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.

Re: Xorg na zwykłym użytkowniku

: 2016-01-30, 18:52
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.

Re: Xorg na zwykłym użytkowniku

: 2016-02-02, 16:05
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.

Re: Xorg na zwykłym użytkowniku

: 2016-04-09, 21:51
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.
:(