Autologon

Roman Rohr Roman.Rohr na uhk.cz
Středa Říjen 11 16:03:40 CEST 2000


On Tue, Oct 10, 2000 at 11:01:05PM +0200, Alexandr Malusek wrote:

> > Mno a co takhle dat do inittabu neco jineho misto mingetty, treba
> > bash, tim padem se vam "prihlasi" root

S X vám neporadím, neboť je zatím nepoužívám. Až bude dobrý www browser,
tak si je snad nainstaluji, to je jediné, co mi na té konzoli pořádně
nejde.

Teď k věci. Nejsem žádný guru, takže zkusím jenom předložit nápad.
V /etc/inittab mám:
1:2345:respawn:/sbin/getty 38400 tty1 -n -l /usr/local/bin/log

-n znamená neptej se na login name
-l /usr/local/bin/log říká toto použij místo /bin/login

/usr/local/bin/log je můj prográmek:

#include<unistd.h>
int main (void){
char *parms[4];
  parms[0] = "/bin/login";
  parms[1] = "-f";
  parms[2] = "roman";
  parms[3] = NULL;
  execv("/bin/login", parms);
}

Omlouvám se za ten zdroják, je to nejslabší část celého postupu. V C jsem
samouk a již dlouho v něm nepíšu, protože na moje hraní jsou lepší scripty.
Ale třeba mně někdo napíše, jak se to má dělat podle učebnice. Každopádně
ale když udělám gcc -o log log.c, tak mi to vyrobí prográmek, který
potřebuji.

Který dělá to, že pustí program /bin/login s parametry -f roman, kde
-f znamená neautentikuj uživatele, už je, a roman je login name, které se
má přihlásit. 

A to je vše. Takže stručné shrnutí:
getty řeknu, ať nečeká na zadání login name a loginu řeknu, že od uživatele
nemá chtít heslo a navíc řeknu, jako koho ho má přihlásit. A protože nevím,
jak říct getty, aby to loginu poslal, tak jsem napsal prográmek, který to
dělá. Výhodou tohoto řešení je, že mám /dev/tty, záznam v utmp, nastavený
environment, tj. proběhnul mi /etc/profile.

Asi to není dokonalé, ale třeba to někdo vylepší.

Roman Rohr


Další informace o konferenci Linux