Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem su - automaticke zadanie hesla

linuxaci, potrebujem od vas pomoc. napisal som flegovi script na ziskanie jeho strateneho rootovskeho hesla, ale neviem urobit jednu banalnu vec. chcem zadat priamo su heslo ako jeden prikaz a nie najprv su a potom heslo, ako sa to robi standardne. skusal som to robit cez pipe: echo heslo | su a aj pomocou suboru su < password.file, ale bez vysledku. vie niekto poradit ako nato, nie som moc linux guru?

Předmět Autor Datum
Janewim.
anarchist 21.03.2006 02:13
anarchist
jatiez:-p
IgorK 21.03.2006 02:13
IgorK
tak co linux guruovia, nenajde sa tu ani jeden co to vie? :-p p.s.:mam pocit, ze to ani nie je mozne…
IgorK 21.03.2006 11:48
IgorK
mas spravny pocit:-D este ma napadlo sudo,ale nevie ako ho tam zakomponovat:-(
boby 21.03.2006 12:27
boby
toto nepomoze?:setuid-skripty
boby 21.03.2006 12:33
boby
to by tam najprv fleg sudo musel mat. :-p
IgorK 21.03.2006 13:05
IgorK
Já se obávám, že při SU (nebo SUDO) nepomůže žádné přesměrování, že to heslo se musí ručně naklofat.…
Rce 21.03.2006 12:59
Rce
jj, tak to naozaj vyzera. :-/ potom uz ozaj pomoze len live CD linuxu a ist ku tomu compu osobne. :-…
IgorK 21.03.2006 13:07
IgorK
este ma napadlo, ci by to neslo cez su -c ... simulovat terminal. kur^a, asi sa musim zacat tomu lin…
IgorK 21.03.2006 13:11
IgorK
Myšlenka je to správná. su opravdu vyžaduje terminál. Naštěstí existuje program expect, který mu ter…
michich 21.03.2006 13:23
michich
super michich, toto presne som potreboval. mas u mna 10 virtualnych :beer: a ked budeme niekedy spol…
IgorK 21.03.2006 13:29
IgorK
ok, tak asi nic. toto sa moze zist v buducnosti, ale fleg tam ma dost okliesteneu verziu linuxu a ex…
IgorK 21.03.2006 13:43
IgorK
send je příkaz expectího jazyka, takže stačí ten expect :-)
michich 21.03.2006 13:47
michich
ok, zas som o nieco mudrejsi. ;-)
IgorK 21.03.2006 13:56
IgorK
ale to je nepěkné podběhnutí laťky! :-D
touchwood 21.03.2006 21:43
touchwood
:>:http://poradna.net/beta/thread.php?qst=20179#re-203 04
touchwood 21.03.2006 21:50
touchwood
to uz je v pohode, ja som si vytvoril vlastny perl script attacker. :-)
IgorK 21.03.2006 21:57
IgorK
skusal som tam dostat ten expect. bohuzial potreboval tcl. tcl standardne neslo instalnut tak som ho…
fleg 22.03.2006 09:30
fleg
Myslím, že těmi CFLAGS jsi do toho vnesl trošku chaos, ale nebyl to hlavní problém. Spíše to chtělo…
michich 22.03.2006 10:30
michich
tak som to cele prekompiloval a nasiel si v instalacke! (rozbalenej) ten subor...po skopceni prebehn…
fleg 22.03.2006 10:47
fleg
Tcl zrejme pri "make install" nenainstalovalo vsechny hlavickove soubory. Zkus jeste navic "make ins…
michich 22.03.2006 11:17
michich
nie nie v tom to nebude...aj ked pre istotu som to skusil. tu mas pre istotu cely chybovy vypis. exp…
fleg 22.03.2006 11:46
fleg
tak to vyzera, ze tam nemas vsetko. vsak tu to jasne pise: tcl.h: No such file or directory
IgorK 22.03.2006 14:35
IgorK
testni ten perl modul ci ide
fleg 22.03.2006 15:05
fleg
Tak jsem si to schvalne zkusil. Muj postup: Stahnul jsem tcl8.4.12-src.tar.gz a expect.tar.gz rozbal…
michich 22.03.2006 23:47
michich
ja som nemal na konci --prefix...z neznamych pricin poslední
fleg 23.03.2006 00:49
fleg
expect_tcl.h:49: error: syntax error before "void" expect_tcl.h:49: error: syntax error before "_ANS…
fleg 22.03.2006 11:47
fleg

Já se obávám, že při SU (nebo SUDO) nepomůže žádné přesměrování, že to heslo se musí ručně naklofat. Kdyby si totiž mohl heslo ze skriptu kdokoliv přečíst, je pak na prd, že. Teď jsem asi to půl hodiny zkoušel trápit, leč bez napsání hesla se mi to též nepovedlo.

Myšlenka je to správná. su opravdu vyžaduje terminál. Naštěstí existuje program expect, který mu terminál umí poskytnout. Skript pro expect by mohl vypadat treba takto:

#!/usr/bin/expect -f
set username [lindex $argv 0]
set pass [lindex $argv 1]

spawn su "$username"
sleep 1
expect "Password: "
send "$pass\r"
expect {
"*Authentication failure" {exit 1}
"*# " {puts "OK! Password is $pass\n"; exit 0}
}

Pojmenuj ho třeba "autosu" a volej ho se dvěma parametry: jménem uživatele a heslem:
./autosu root pokus_o_heslo
Návratový kód skriptu je 0 v případě úspěchu, jinak 1.

skusal som tam dostat ten expect. bohuzial potreboval tcl. tcl standardne neslo instalnut tak som ho skusil picnut to homediru. tam sa mi to podarilo cez ./configure --prefix=~/opt ale expect pri instalacii najprv hladal jednu kniznicu. to som vyriesil cez CFLAGS='-L/home/fleg/opt/lib/' ./configure --with-tcl=/home/fleg/opt/lib/ ale skoncil som na chybe ze hladal nejaky header (checking for Tcl private headers... checking for tclInt.h... no
configure: error: Can't find Tcl private headers). po googleni som zistil ze problem je asi vo verziach tcl8.4 vs 8.3 tak som sa na to cele vykaslal a skusil ist cestou perlovskeho expect (8.4 uz teno header vobec nema).
otazka znie ci perlovsky modul funguje aj bez nainstalovaneho klasickeho pripadne preco zlyhali moje pokusy;o)

tak som to cele prekompiloval a nasiel si v instalacke! (rozbalenej) ten subor...po skopceni prebehne configure ok ale make uz nie.
len namatkovo
expect_comm.h:59: error: syntax error before "char"
expect_comm.h:62: error: syntax error before "int"
In file included from exp_main_exp.c:13:
expect_tcl.h:25: error: syntax error before "int"
expect_tcl.h:26: error: syntax error before "int"
.....
......
skusal som configure aj bez CFLAGS prebehne tiez ok ale zastavi ma make

nie nie v tom to nebude...aj ked pre istotu som to skusil. tu mas pre istotu cely chybovy vypis.
exp_main_exp.c:12:17: tcl.h: No such file or directory
In file included from expect_tcl.h:15,
from exp_main_exp.c:13:
expect_comm.h:59: error: syntax error before "char"
expect_comm.h:62: error: syntax error before "int"
In file included from exp_main_exp.c:13:
expect_tcl.h:25: error: syntax error before "int"
expect_tcl.h:26: error: syntax error before "int"
expect_tcl.h:27: error: syntax error before "FILE"
expect_tcl.h:28: error: syntax error before "char"
expect_tcl.h:29: error: syntax error before "int"
expect_tcl.h:30: error: syntax error before "int"
expect_tcl.h:32: error: syntax error before "int"
expect_tcl.h:34: error: syntax error before "Tcl_Interp"
expect_tcl.h:34: warning: data definition has no type or storage class
expect_tcl.h:37: error: syntax error before "int"
expect_tcl.h:38: error: syntax error before "void"
expect_tcl.h:39: error: syntax error before "int"
expect_tcl.h:40: error: syntax error before "int"
expect_tcl.h:41: error: syntax error before "int"
expect_tcl.h:42: error: syntax error before "void"
expect_tcl.h:44: error: syntax error before "char"
expect_tcl.h:44: error: syntax error before "_ANSI_ARGS_"
expect_tcl.h:46: error: syntax error before "void"

Tak jsem si to schvalne zkusil. Muj postup:
Stahnul jsem tcl8.4.12-src.tar.gz a expect.tar.gz rozbalil je. Napred jsem nainstaloval Tcl:

cd tcl8.4.12/unix
sed -i -e "s/relid'/relid/" configure
# byla v nem totiz syntakticka chyba
./configure --prefix=/home/michich/opt
make
make install
make install-private-headers

Pak jsem nainstaloval expect:

cd ../../expect-5.43
./configure --with-tcl=/home/michich/opt/lib --with-tclinclude=/home/michich/opt/include --prefix=/home/michich/opt
make
make install

expect_tcl.h:49: error: syntax error before "void"
expect_tcl.h:49: error: syntax error before "_ANSI_ARGS_"
expect_tcl.h:50: error: syntax error before "void"
expect_tcl.h:52: error: syntax error before "void"
expect_tcl.h:52: error: syntax error before '(' token
exp_main_exp.c: In function `main':
exp_main_exp.c:23: error: `Tcl_Interp' undeclared (first use in this function)
exp_main_exp.c:23: error: (Each undeclared identifier is reported only once
exp_main_exp.c:23: error: for each function it appears in.)
exp_main_exp.c:23: error: `interp' undeclared (first use in this function)
exp_main_exp.c:26: error: `TCL_ERROR' undeclared (first use in this function)
exp_main_exp.c:40: error: `Tcl_Obj' undeclared (first use in this function)
exp_main_exp.c:40: error: syntax error before ')' token
make: *** [exp_main_exp.o] Error 1

Zpět do poradny Odpovědět na původní otázku Nahoru