Į linux sistemą vartotojas gali įsiloginti arba naudodamas grafinį display menedžerį kaipo gdm, arba logintis konsolėje, kur getty programa duoda tekstinį priminimą įvesti vartotojo vardą ir slaptažodį.
Kaip geriau?
Na jei naudojatės grafine aplinka, ir turite daug vartotojų kompiuteryje gal gerai naudoti *dm programą?
bet net jei ir naudojate grafinę aplinką tačiau kompiuteryje yra tik vienas "darbinis" vartotojas, gal būt užtenka logintis ir konsolėje, o tuomet:
% startx
Vistik ne kuriem vartotojam yra poreikis kad sistema automatiškai įlogintų "darbo" vartotoją, neklaususi slaptažodžio ir užkrautų tam vartotojui X.
tai galima padaryti su gdm ar kdm, bet klausimas: ar man reikia tų programų monstrų jei naudoju tik minimalistinę windowmaker, icewm, ar *box grafinę aplinką?
Iš principo automatiškai įsiloginti galima ir iš konsolės - dėstau kaip.
Dugumoje linux distribucijų konsolėje logintis nustatyta būna programa getty arba agetty arba mingetty
žinau kaip padaryti auto-login tik su mingetty, todėl reiks susiinstaliuoti šia programą.
poto
tam kad sistema naudotų šią programą loginui koreguosime failą /etc/inittab,
reikia rasti eilutes panašias į:
# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
čia aprašoma kaip vyksta loginimasis į kiekviena virtualią konsolę kurios pasiekiamos per ctrl+alt+F# (kai 1 <= # <= 6)
Šios elutės gali skirtis konkrečiose distrose, pas mane ant gentoo atrodo būtent taip.
pakeičiame pirmos kosolės aprašyme leidžiamą komandą iš '/sbin/agetty 38400 tty1 linux' į 'respawn:/sbin/mingetty --noclear --autologin useris tty1'
kitaip sakant gauname kažką tokio:
# TERMINALS
c1:12345:respawn:/sbin/mingetty --noclear --autologin useris tty1
#c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
reikia turėt omeny kad tai skirtinga atskirose distrose
pvz, pas debiana kažkas taip:
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
todėl pažiųrėkit ar ten pas jus 'tty1' kur pas mane 'tty1'
ar '12345' kur '12345' irpadarykit aknalogiškai pagal save.
viskas, kraudamasi sistema pirmoje virtualioje konsolėje turėtų įlogint userį 'useris'.
toliau - kaip padaryti kad įlogintam useriui būtų paleistas X?
teoriškai ant slackware pvz išeitų pakeitus default runlevel
tame pačiame faile:
# Default runlevel.
id:3:initdefault:
pakeisti į:
# Default runlevel.
id:5:initdefault:
na bet pas mane pvz tie runleveliai visiškai nieko nedaro taigi pasiderinau
~/.bashrc - tai toks failas kuris vykdomas iš karto įsiloginus.
#automatiskai krauti x
case `/usr/bin/tty` in /dev/vc/[0-9]*)
XPID=$(/bin/pidof xinit)
if [ -z "$XPID" ] ; then
startx ; #exit
fi
esac
kitose distrose kitokia /dev struktūra ir 'pidof' failo kelias todėl skriptas gali atrodyt ir maždaug taip:
#automatiskai krauti x
case `/usr/bin/tty` in /dev/tty[0-9]*)
XPID=$(/sbin/pidof xinit)
if [ -z "$XPID" ] ; then
startx ; #exit
fi
esac
čia jau reik prasitikrint ant kokiu devaiso pavadinimu žymimos virtualos konsolės, ir 'whereis pidof'
čia tas skriptas apsaugo nuo startx komandos vykdymo tik atidarius xterm langą kuris neturi virtualios konsolės devaiso.
P.S. pats vistik naudoju gdm sykis jau naudoju gnome. bet vistik palikau automatini isiloginima i pirma virtualia konsole kad netiketai pakibus X'am galėčiau ctrl+alt+f1 ir kilint programą kuri užlaužė X, neprašomas slaptažodžio.