staticky zkompilovane scp neidentifikuje usera a exitne s 255

Martin Kraus martin.kraus na infonet.cz
Úterý Březen 8 12:11:19 CET 2005


On Tue, Mar 08, 2005 at 10:48:03AM +0000, Petr Pisar wrote:
> Martin Kraus napsal(a):
> >zdravim,
> >  delam pristup k webspacu pres scp v chrootovanem adresari.
> >bude pro pristup zakazniku pomoci winscp. to vyzaduje par programku
> >v nainstalovanych v tom chrootovanem adresari, mezi jinymi i scp.
> Asi sshd?
jo, scp pouziva sshd 
> 
> >zkompiloval jsem scp staticky, jenomze kdyz ho spustim tak z nejakeho
> >duvodu exitne kodem 255 a hlaskou:
> >
> >"unknown user 3003".
> klient nebo server(sshd)?
tohle hlasil klient na serveru:)
> 
> >
> >user 3003 je ten, ktereho pouzivam. mam ho v /etc/passwd v tom chrootovanem
> >adresari.  kdyz tuhle kopii scp spustim bez toho, aby byla zamcena v tom 
> >chrootu, tak jede v pohode. vypada to, ze nejak nemuze precist tu kopii 
> >passwd.
> >na zbytek utilit pouzivam busybox, a treba ls z neho dokaze ty user najit 
> >bez
> >problemu. nevite co potrebuje scp aby to bezelo? mel jsem pocit, ze kdyz 
> >to zkompiluju staticky, tak se vyhnu problemum se zavislosti na dalsich 
> >knihovnach.
> >evidentne asi ne. 
> Zapni u serveru vetsi ukecanost (sshd -D -ddd), pripadne jej pust pres 
> strace. Taky se podivej do zdrojaku na kontext hlasky "unknown user %d".
nakonec jsem to stracoval a po nekolika hodinach jsem do chrootu k te staticke
binarce proste nakopal libc, libnss_compat, libutil, libdl,
libnsl,ld-linux,libcrypto,libz, do /etc  jsem dal nsswitch.conf a jelo to.
kolabovalo to na tom, ze getpwuid() vracela NULL a scp(potazmo ssh) me vykoplo.
fakt nejsem programator a o kompilovani znam akorat ./configure && make &&
make install, ale mel jsem vzdy za to, ze kdyz zkompiluju neco jako statickou
binarku, tak se tam prilinkuje vse co je potreba. asi se budu muset nekdy
naucit jak to vsechno funguje. nenapada nehoko nejaky penky howto v tomhle
smeru(gcc,ld atd. pro zacinajici, neco uptodate?)

s pozdravem

martin kraus


Další informace o konferenci Linux