HTML

Bagoj úr blogja

Kíváncsi Bagoj befigyel a Linux belsejébe, illetve különféle Linux terjesztéseket próbál ki. Ha jó napja van, scriptet ír Neked.

Friss topikok

(Re)boot

2014.02.10. 09:06 bagoj ur

hp_elitebook_6930p_angle1_s.jpgA lényeg tehát, hogy rá tudtam tenni a mancsomat egy jó kis használt notebookra. Ezzel már impresszív sebességértékeket tudok majd reményeim szerint produkálni, és nem kell PIII-as kukázott vackokra telepítenem meg kernelt fordítani. Egyetlen szépséghiba, hogy Bagojnének is igen tetszik. :-) Amíg nem nyúlja le, addig tán van időm az alábbi tesztekre:

  • Debian Wheezy boot idő lefaragás
  • Mini linux körkép 2014-ben
  • Parsix, Manjaro, LMDE kipróbálás, mert megígértem :-)
  • A megkerülhetetlen 2014-es Ubuntu teszt


Mivel most van egy laptop, ami nincs napi igába befogva, ezért szívesen kipróbálok rajta bármit, csak írjátok meg. :-)

Debian Wheezy boot idő lefaragás

Az első projektet már meg is kezdtem egy debian-netinstall ISO letöltésével. Ez a folyamat természetesen eseménytelenül telt, mindössze egy érdekesség volt, mert a WIFI meghajtó szoftverhez szükség van az Intel által gyártott firmware fájlra, és ezt a Debian alapból nem szállítja. A teljesség kedvéért azért leírom, hogy pontosan hogyan is csináltam, hogy lehessen látni, mi változott mondjuk egy évvel ezelőtt óta.

Debian telepítés nem-szabad firmware-rel

hw-detect_load_firmware_0.pngAz alap probléma tehát az, hogy számos hardver létezik, amely nem a saját ROM-ban tárolja a működéshez szükséges firmware kódot, hanem az operációs rendszertől várja, hogy betöltse neki a memóriába. Ezzel egészen odáig nincs gond, amíg az oprendszer gyártója nem mondja azt, hogy a standard telepítő nem tartalmazhat non-free kódot, márpedig a Debian ilyen. A laptopom wifi kártyájához pont kell firmware, a kábelig pedig lusta vagyok elmenni (pontosabban, nehezen hozzáférhető helyen van). Makacs emberként én mégis a Debiant fogom feltelepíteni...

Alapvetően nem nagy a probléma, azt a plusz .deb-et, amely hiányzik, rá kell varázsolni a telepítő USB kulcsra. Ez elég egyszerű, mert biztosítanak is egy kátránylabdát (mármint tarball-t), amit ki kell tömöríteni az USB-kulcs firmware/  könyvtárába. Egyesek még a kátránylabdázást is megspórolják nekünk, és készítenek ilyen ISO-kat:

http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/

Hurrá, én már alapból ilyen ISO-t töltöttem le. Picike probléma, hogy a .tar nincs kitömörítve, abban pedig nem találja meg a telepítő - ki kell tömöríteni, a benne lévő .deb-ekben pedig a telepítő már megtalálja a neki szükséges firmware fájlokat. Ehhez telepítés közben, amikor a fenti képernyő megjelent, leváltottam a kettes konzolra (Alt + F2), majd

mount /cdrom -o remount,rw
cd /cdrom/firmware
tar -xf firmware.tar
mount /cdrom -o remount,ro

A lényeg, hogy férjen el a cucc a pendrive-on kitömörítve is.

Ezen felül a telepítés eléggé a szokott mederben folyt, csak kicsit meglepődtem, hogy egyből a grafikus telepítő indult:

  • Nyelv választás
  • Firmware megkeresés és betöltés
  • Hálózat automatikus beállítása, gépnév megadás
  • Root felhasználó jelszó, illetve az elsődleges felhasználó nevének és jelszavának megadása
  • Partícionálás, formázás, alaprendszer telepítés
  • Főbb komponensek kiválasztása (pl. SSH server stb), csak az alaprendszert választottam
  • GRUB telepítés, reboot

Ez most sem volt túl bonyolult. Ezután jöhetett a szokásos parancssoros majomkodás:

Sudo

Nem tudom, miért ragaszkodik a Debian ahhoz, hogy sudo-t nem rak fel alapból. Szerintem (és sok más ember szerint is) veszélyesebb belépni root felhasználóval, mint csak egy-egy feladatra átlépni privilegizált módba. Ezért jött a sudo feltelepítése, és a saját felhasználóm bepakolása a /etc/group fájlba:

apt-get install sudo
adduser bagoj sudo

Takarítás

Mivel ez egy sima grafikus munkaállomás nyomtatóval nem felszerelt felhasználónak, főként netezni, jópár szolgáltatást kigyomláltam belőle:

apt-get --purge remove exim4-daemon-light exim4-config libsane sane-utils mlocate cups rsyslog nfs-common
apt-get autoremove

Grafikus rendszer telepítés

A szokásos LXDE felület telepítése gyorsan zajlott, egyetlen rendhagyó dolgot végeztem el. Mivel unom már az xDM-es (vagyis gdm, kdm, lightdm, xdm...) belépéseket, illetve az általuk mérhetően okozott boot lassulást, mivel amúgy is egyetlen felhasználó vagyok a rendszeren, úgy gondoltam, hogy egy "NODM" megoldást választok, vagyis login manager nélkül indítom az X felületet. Ez több gondolatot is felvet:

  1. Hogyan indítom el az X-et belépés nélkül
  2. Hogyan fogok kilépni/leállítani
  3. Biztonsági kockázatok

Kezdjük az elején.A grafikus rendszer telepítésére egy szép parancs (mindenki a saját videokártya driverét tegye fel, vagy aká az összeset a video-all csomag telepítésével):

apt-get install pcmanfm evince-gtk lxlauncher lxtask p7zip-rar p7zip-full fuse galculator gksu gnome-bluetooth gnome-keyring gvfs-backends gvfs-daemons gvfs-fuse lxappereance lxde-common lxde-core lxde-icon-theme lxinput lxmenu-data lxpanel lxpolkit lxsession lxsession-edit lxshortcut lxterminal menu menu-xdg notification-daemon ntfs-3g udisks openbox obconf policykit-1-gnome upower ttf-dejavu x11-utils xserver-xorg-input-evdev xserver-xorg-input-mouse xserver-xorg-input-synaptics xarchiver xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-vesa zip xdg-utils xinit chromium-browser flashplugin-nonfree alsa-base
apt-get clean
update-flashplugin-nonfree --install

(A flashplugin-nonfree telepítéshez ne felejtsük el a /etc/apt/sources.list szerkesztését, a "main" után mindenütt legyen "contrib non-free" is (idézőjelek nélkül)).

Mint az látható, nem fullos lxde-t tettem fel, a lényeg, hogy elinduljon, aztán majd lehet variálni. Jöhet az autologin.

Egyik legegyszerűbb, és a Debian fórum által is ajánlott módszer az, hogy az egyik konzol ablakunkat beáldozzuk, és ott nem a bevitelt végző getty programot, hanem valami mást indítunk el. Mivel a Debian alapból 6 darab tty eszközt hoz létre, és egy grafikus rendszer esetén 1-2 elég, én a 3-as konzolt választottam ki erre a célra; a 4-5-6. terminált pedig ki is kapcsoltam. Ehhez mindössze a /etc/inittab fájlt kell megtúrni (rootként persze):

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/bin/login -f bagoj tty3 </dev/tty3 >/dev/tty3 2>&1
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

A kikommentezett sorok egyértelműek, nem kell ennyi terminál. A 3. sorban látható, hogy a getty helyett a /bin/login programot indítjuk el, amelynek a -f paraméterével megadható, hogy melyik felhasználóval lépjen be. Az input és output kezelését rábízzuk a loginra, tehát amit a tty3-ra gépelünk, azt megkapja a shell, és amit a shell visszaír, azt kiírjuk a atty3-ra. Egyszerű az élet a linuxszal.

Természetesen akkor is a login indul el, amikor belépéskor beírjuk a felhasználónevünket (csak akkor kér jelszót is), és az a normál indítási mód.

Az eddigi munkánk annyit csinál tehát, hogy a 3-as terminálon automatikusan bejelentkezik a felhasználónk. Az X indítására ott a remek startx, node hogyan adjuk ki a parancsot? Ragadjuk meg a home könyvtárunkban a .bashrc fájlt és szerkesszük kicsit a végét:

if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty3 ]; then
  startx
    if [ $? == 0 ]; then
        sudo /sbin/halt
    fi
fi

Sima ügy, ha a 3-as terminálról jövünk, indítjuk az X-et, egyébként nyilván nem, hiszen nem tudnánk konzolon belépni (sőt X terminálban sem). Az X-ből való kilépésnél ellenőrzöm, hogy a visszatérési érték 0 volt-e (tehát normál módon lett leállítva az X), ha nem, akkor nagy valószínűséggel valami X probléma van, tehát nem lenne jó azonnal leállítani a gépet. Ha viszont minden rendben volt, akkor halt. (Rebootolni nem lehet. :-))

Bónusz kérdés, hogy vajon egy felhasználó kiadhatja-e a /sbin/halt parancsot? Nyilván nem. Ezért adnunk kell jogot, hogy a parancsot futtathassa külön jelszó megadása nélkül is.

root@anna:/home/bagoj# visudo

... majd egy alkalmas helyre

%sudo ALL=NOPASSWD:/sbin/halt

(Aki a sudo csoport tagja, mindenki jelszó nélkül leállíthatja a gépet. Természetesen alaposan át kell gondolni, hogy mikor engedünk ilyet! Ha vannak távolról bejelentkező felhasználók, akkor ezt nem így kell megoldani.)

Network-Manager és policykit

Van nekünk ez a csodálatos Policykit-ünk, amely alapból nem engedi, hogy az X felületen a felhasználó csatlakozhasson egy wifi hálózathoz. Ehhez létrehoztam egy fájlt az alábbi tartalommal, és voilá:

# vi /etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla

[nm-applet]
Identity=unix-group:netdev
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
ResultInactive=no
ResultActive=yes

A felhasználót ne felejtsük betenni a netdev csoportba (alapból benne van), mert csak azoknak a tagjai, és azok is aktív Consolekit session-nel tudnak minden funkciót elérni az nm-appletben (ami a Network Manager grafikus része).

Most jönnek a problémák:

1) Ha valaki hozzáfér a 3-as konzolhoz, nyomhat egy ctrl+c-t és máris promptot kap, tehát a bejelentkezett felhasználó jogaival rendelkezik, fájljait elérheti stb.

2) Aki legalább a bejelentkezett felhasználó jogait megszerzi, le tudja állítani a gépet

3) Ha bárki elindítja a gépet, kap egy X felületet a felhasználónk jogaival.

4) Az lxsession-logoutban (tehát a kilépéskor) nem működik a hibernate és a suspend. Ezzel kapcsolatban megkapargatjuk a Policykit-et.

Ha valaki olvassa még ezeket a sorokat, várom a tippeket a megoldásra. Persze a továbbiakban közreadom majd, hogy én mire jutottam.

2 komment

Címkék: debian telepítés boot firmware wheezy inittab iwlwifi

A bejegyzés trackback címe:

https://bagojur.blog.hu/api/trackback/id/tr475791464

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

István Szőllősi 2014.02.10. 15:42:41

Szia.
Már 1-2 éve követem a blogod. Nagyszerű írásaid vannak, gratulálok.
Ha lehet ajánlani dolgokat kipróbálásra ajánlom az Antergos linuxot.
Esetleg ha az idődbe belefér egy MATE tesztet, mindegy, hogy milyen rendszeren.
Köszönöm, Isti

bagoj ur 2014.02.11. 17:51:48

@István Szőllősi: Köszi szépen a hozzászólást, szerintem belefér az Antergos is, a MATE is. :-)