abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 17:02 | Pozvánky

Přijďte si popovídat o open source obecně a openSUSE konkrétně s dalšími uživateli a vývojáři. Oslava nového vydání openSUSE Leap se uskuteční 16. prosince od 17:00 v nových prostorách firmy SUSE v Praze. K dispozici bude nějaké občerstvení a DVD pro ty, kdo je sbírají nebo ještě mají mechaniku. Po párty v kanceláři se bude pokračovat v některé z hospod v okolí.

Miška | Komentářů: 7
včera 14:55 | Zajímavý software

Byla vydána verze Alpha 1.0 otevřeného operačního systému pro chytré hodinky AsteroidOS. Podporovány jsou hodinky LG G Watch, LG G Watch Urbane, Asus ZenWatch 2 a Sony Smartwatch 3. Ukázka ovládání hodinek na YouTube. Jaroslav Řezník přednášel o AsteroidOS na chytrých hodinkách (videozáznam) na letošní konferenci OpenAlt.

Ladislav Hagara | Komentářů: 0
včera 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
včera 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
9.12. 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
9.12. 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
9.12. 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
9.12. 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (23%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 809 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Problém s linkováním knihoven

20.5.2013 10:45 Dave
Problém s linkováním knihoven
Přečteno: 736×
Ahoj, mám takový podivný problém s linkováním knihoven. Spouštím vlastní build Apache (resp. build, který vytvořil jiný člověk a já ho musím používat):
~/apache-2.4.3-29/bin> ./httpd
a dostávám tuto chybu:
./httpd: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
přitom
~/apache-2.4.3-29/bin> echo $LD_LIBRARY_PATH
/home/dave/apache-2.4.3-29/lib
~/apache-2.4.3-29/bin> ls -l /home/dave/apache-2.4.3-29/lib/libaprutil*.so
lrwxrwxrwx 1 root root     21 led 16 15:11 /home/dave/apache-2.4.3-29/lib/libaprutil-1.so -> libaprutil-1.so.0.4.1
lrwxrwxrwx 1 root root     21 led 16 15:11 /home/dave/apache-2.4.3-29/lib/libaprutil-1.so.0 -> libaprutil-1.so.0.4.1
-rwxr-xr-x 1 root root 345171 led 16 15:11 /home/dave/apache-2.4.3-29/lib/libaprutil-1.so.0.4.1
Když spustím program jako root, tak linkování funguje správně. Kde může být problém?

Řešení dotazu:


Odpovědi

Pavel Stárek avatar 20.5.2013 11:00 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Jen tak pro zajímavost, co vypíše ldd ./httpd ?
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
20.5.2013 11:08 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Aha, to jsem zapomněl připojit, ldd se tváří, že je vše v pořádku...
~/apache-2.4.3-29/bin> ldd ./httpd
	linux-gate.so.1 =>  (0xffffe000)
	libpcre.so.0 => /home/dave/apache-2.4.3-29/lib/libpcre.so.0 (0xf7707000)
	libaprutil-1.so.0 => /home/dave/apache-2.4.3-29/lib/libaprutil-1.so.0 (0xf76ec000)
	libexpat.so.0 => /home/dave/apache-2.4.3-29/lib/libexpat.so.0 (0xf76cd000)
	libapr-1.so.0 => /home/dave/apache-2.4.3-29/lib/libapr-1.so.0 (0xf76a6000)
	librt.so.1 => /lib/librt.so.1 (0xf768a000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0xf7654000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xf7639000)
	libdl.so.2 => /lib/libdl.so.2 (0xf7634000)
	libc.so.6 => /lib/libc.so.6 (0xf74c7000)
	/lib/ld-linux.so.2 (0xf7715000)
Pavel Stárek avatar 20.5.2013 11:14 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Vskutku, to vypadá, že je to ok. Nicméně, nechybí něco té knihovně libaprutil-1.so.0? Tedy zase zkusit ldd libaprutil-1.so.0.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
20.5.2013 11:38 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Bohužel, ani tudy asi cesta nevede:
~/apache-2.4.3-29/bin> ldd /home/dave/apache-2.4.3-29/lib/libaprutil-1.so.0
	linux-gate.so.1 =>  (0xffffe000)
	libexpat.so.0 => /home/dave/apache-2.4.3-29/lib/libexpat.so.0 (0xf76c2000)
	libapr-1.so.0 => /home/dave/apache-2.4.3-29/libapr-1.so.0 (0xf769c000)
	librt.so.1 => /lib/librt.so.1 (0xf7680000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0xf764a000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xf762e000)
	libdl.so.2 => /lib/libdl.so.2 (0xf7629000)
	libc.so.6 => /lib/libc.so.6 (0xf74bc000)
	/lib/ld-linux.so.2 (0xf76fd000)
Pavel Stárek avatar 20.5.2013 12:06 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Tak pak už nevím. Jedině zdali není spuštěn SElinux nebo AppArmor a nějak tomu nebrání.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
20.5.2013 12:17 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Hmm, já už taky nevím ;-) Ale díky za snahu. SELinux zapnutý není...
20.5.2013 12:03 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Pokud pod rootem ty knihovny najde, pak je problém v právech. Tipuji si, že binárku spouštíš pod uživatelem, který nemá přístup do toho homu /home/dave. Spouštíš binárku pod rootem? Apache se po obsazení privilegovaného portu 80 přepíná na neprivilegovaného uživatele (www-data v debianu), není problém v tom, že tento uživatel právo čtení na soubory v /home/dave nemá?
20.5.2013 12:20 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
To už jsem kontroloval. Uživatel má přístup do všech adresářů. Coby uživatel dave vidím obsah té knihovny, která se nemůže přilinkovat...

Apache chci záměrně spustit jako obyčejný uživatel, problém s privilegovaným portem řeším pomocí setcap. Ale problém je, že httpd se nepovede asi slinkovat, natož spustit...
20.5.2013 12:16 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Zkus spustit strace -f -eopen -o httpd.strace ./httpd a prozkoumat httpd.strace.
When your hammer is C++, everything begins to look like a thumb.
20.5.2013 12:30 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Díky za tip. Z strace logů vyplývá, že linker se do adresáře /home/dave/apache-2.4.3-29/lib ani nesnaží dívat - není tam jediný záznam s tímto adresářem. Ale proč, když mám LD_LIBRARY_PATH nastavenou?
20.5.2013 12:39 jekub
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
a exportovanou?
20.5.2013 13:03 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
jj, exportovanou...
Punny avatar 20.5.2013 12:59 Punny | skóre: 28 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
zkusil bych mozna:
export LD_LIBRARY_PATH=/home/dave/apache-2.4.3-29/lib:$LD_LIBRARY_PATH
a jeste mozna mrknout do /etc/ld.so.conf
Punny
20.5.2013 13:55 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
LD_LIBRARY_PATH už exportovanou mám. A v /etc/ld.so.conf jsou jenom dva systémové adresáře /usr/local/lib64 a /usr/local/lib... Nejde mi do hlavy, proč to nefunguje...
rADOn avatar 20.5.2013 14:27 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
A kdyz to vynutis pres LD_PRELOAD ?
"2^24 comments ought to be enough for anyone" -- CmdrTaco
20.5.2013 15:46 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
S LD_PRELOAD dostanu toto:
ERROR: ld.so: object '/home/dave/apache-2.4.3-29/lib/libaprutil-1.so.0' from LD_PRELOAD cannot be preloaded: ignored.
20.5.2013 14:25 Sten
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Nemá httpd nastaveno setuid nebo setgid? Linker potom LD_LIBRARY_PATH ignoruje.
20.5.2013 14:30 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Díky za další nápad, nemá. To už jsem kontroloval, má klasická práva 755.
20.5.2013 16:53 Ivan
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
A nemas tu cestu nejak divne zakompilovanou do ty binarky? (-Wl,-rpath=...). Zkus:
readelf -d ./httpd | grep RPATH
Ta cesta muze byt absolutni (/home/dave.../) anebo relativni ($ORIGIN/...).

Jeste muzes zkusit tohle
LD_TRACE_LOADED_OBJECTS=1 ./httpd
PS: ty mas vlastni i knihovne pcre? Neni mozny, ze se ti nahraje nejdrive tahle knihovna ze sytemu a ta si pak vezme i systemovy libapr (libaprutil).

20.5.2013 21:25 ET
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
ldconfig
~/apache-2.4.3-29/bin/httpd
popr. sem postni cely strace ;)
22.5.2013 14:24 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Tak jsem se posunul trochu dál, ale je to pro mě čím dál tím větší záhada.

Zjistil jsem, že pokud binárku httpd zduplikuju do jiného souboru příkazem
cp httpd httpd1
tak ze v pořádku spustí!

Pokud ale použiju
cp -a httpd httpd2
tak binárka zahlásí chybu s linkováním libaprutil-1.so.0. Čím by to mohlo být? Na filesystému je zapnuté ACL, ale na httpd není ACL použité...
> getfacl httpd 
# file: httpd
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
pavlix avatar 22.5.2013 14:32 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Porovnání výstupu ldd by bodlo. Btw, nemáš tam nějakou mandatory access control jako selinux, apparmor apod?
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
22.5.2013 14:38 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Porovnání výstupu ldd je jednoduché - pro funkční i nefunkční binárku je výstup z ldd identický, linker všechny knihovny najde. SELinux ani nic podobného v systému není... Začíná to pomalu vypadat jako nějaká chyba filesystému...?
pavlix avatar 23.5.2013 11:35 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Jo vidíš to...

Pusť na ten httpd příkaz file.
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
22.5.2013 14:54 Ivan
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
spust to s LD_TRACE_LOADED_OBJECTS LD_VERBOSE LD_DEBUG a postni vypis.
22.5.2013 15:00 Ivan
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Napr:
~: LD_DEBUG=libs ./a.out
     25201:     find library=libstdc++.so.6 [0]; searching
     25201:      search cache=/etc/ld.so.cache
     25201:       trying file=/usr/lib64/libstdc++.so.6
     25201:
     25201:     find library=libm.so.6 [0]; searching
     25201:      search cache=/etc/ld.so.cache
     25201:       trying file=/lib64/libm.so.6
     25201:
     25201:     find library=libgcc_s.so.1 [0]; searching
     25201:      search cache=/etc/ld.so.cache
     25201:       trying file=/lib64/libgcc_s.so.1
     25201:
     25201:     find library=libc.so.6 [0]; searching
     25201:      search cache=/etc/ld.so.cache
     25201:       trying file=/lib64/libc.so.6
     25201:
     25201:
     25201:     calling init: /lib64/libc.so.6
...
 
23.5.2013 08:29 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
S LD_TRACE_LOADED_OBJECTS se nevypíš vůbec nic:
> LD_TRACE_LOADED_OBJECTS=1 ./httpd
>
U ostatních proměnných se vypíše jen stará známá chyba linkování...
> LD_VERBOSE=1 ./httpd
./httpd: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
> LD_DEBUG=all ./httpd
./httpd-error: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
>
rADOn avatar 22.5.2013 15:44 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
> getfacl httpd 
# file: httpd
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
O kus vyse jsi tvrdil ze apac ma 755, ale tohle je podle me 777. A 777 binarka rozhodne neni normalni, nemas tam jeste jinde pomrveny prava?

"2^24 comments ought to be enough for anyone" -- CmdrTaco
23.5.2013 08:31 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Ze zoufalství už jsem si různě hrál s přístupovými právy. Ale stejné chování je i u těch původních souborů, které opravdu mají 755...
rADOn avatar 23.5.2013 10:19 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
A není na tom souboru rozšířenej atribut (viz lsattr/chattr)? Další nápad: když místo cp -a použiješ mv tak to udělá co?
"2^24 comments ought to be enough for anyone" -- CmdrTaco
23.5.2013 12:37 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Výpis atributů je u obou binárek stejný:
> lsattr -a
-------------e- ./httpd-error
-------------e- ./httpd-ok
mv binárku nezmění - funkční zůstane funkční, nefunční po přejmenování stále nefunguje.
23.5.2013 10:28 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Asi velice hloupá otázka - není to httpd symlink? Že se to chová jinak po tom cp -a
pavlix avatar 23.5.2013 11:34 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Jistota je jistota...
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
23.5.2013 13:40 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
No právě, viz minulá diskuse o aliasu. Ten mi taky napadl, ale říkal jsem si, že to by byla ptákovina. A ono jo :)
23.5.2013 12:29 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Díky i za hloupé otázky ;-) Třeba je to jen nějaká blbost, kterou přehlížím. Ale symlink to není. Jsou to binárky, cmp je označuje jako identické.
Michy avatar 23.5.2013 10:49 Michy | skóre: 11 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
To opravdu vypadá na problém s právy. Soubory httpd, httpd1 a httpd2 vzniklé cp httpd httpd1 a cp -a httpd httpd2 se budou lišit skoro jistě pouze v právech (a v časech). Jak vypadá výstup ls -l httpd httpd? ?
23.5.2013 12:35 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
ls neukazuje žádné rozdíly. Binárky jsem přejmenoval, aby bylo jasné, která je která...
-rwxrwxrwx 1 root root 1311555 kvě 23 12:17 httpd-error
-rwxrwxrwx 1 root root 1311555 kvě 23 12:17 httpd-ok
rADOn avatar 23.5.2013 14:24 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
1.3 mega? W.T.F.? U mě v gentoo i na debianu má binárka apače (2.2.22) třetinovou velikost. Určitě je tam zakompilený něco co dělá bordel… ale co by se mohlo projevovat takhle podivně je mi záhadou. Můžeš nám nějak osvětlit co to je za binárku (pokud nevíš, přepínač -l na funkční verzi by leccos osvětlil). Případně ten balík někam postnout?
"2^24 comments ought to be enough for anyone" -- CmdrTaco
23.5.2013 16:05 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
Binárka je nestripovaná, proto asi ta velikost. Vystavit ji nemůžu, jedná se o firemní projekt, který nemůžu šírit.
Michy avatar 23.5.2013 15:59 Michy | skóre: 11 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Tomu skoro nemůžu uvěřit. Soubor httpd-error vzniklý příkazem cp -a httpd httpd-error a soubor httpd-ok vzniklý příkazem cp httpd httpd-ok by měly mít přinejmenším rozdílný ctime (čas poslední modifikace). Soubor httpd-error by měl mít čas stejný jako ten původní httpd, zatímco soubor httpd-ok bude mít čas toho okamžiku, kdy vznikl příkazem cp. To, že mají oba stejný čas, svědčí o tom, že něco děláš špatně nebo přinejmenším ne tak, jak naznačuješ.
23.5.2013 16:08 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Máš samozřejmě pravdu. Zkoušel jsem mezitím na binárkách touch, jestli bude mít nějaký efekt. A neměl... Před touchem měl soubor httpd-error čas modifikace původního httpd.
23.5.2013 10:51 Ed
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Zkus zmenit jmeno souboru. Pokud to httpd *jen* prejmenujes, zacne to fungovat? To by totiz naznacovalo, ze na vine je AppArmor.
23.5.2013 12:40 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
AppArmor na systému není. Přejmenování binárky nemá vliv na její funkčnost/nefunkčnost...
23.5.2013 14:30 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Len tak pre zaujímavosť: aký filesystém je tam použitý?
23.5.2013 16:00 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Filesystém je ext4, mountovaný je s parametry acl a user_xattr.
Michy avatar 23.5.2013 16:53 Michy | skóre: 11 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven

Všechno nasvědčuje tomu, že problém je v právech/atributech té spouštěné binárky. Příkaz cp -a zachovává všechny atributy a takto získaný soubor nefunguje, zatímco samotný cp všechny atributy nezachová, a potom ta binárka spustit jde. Zaměř se tedy na to, v jakých atributech se ty soubory liší.

Zradu bych tušil třeba v tom, že domovský adresář (/home/dave) má nejspíš omezený přístup pro uživatele, pod kterým tu binárku spouštíš. Ale to jen tak střílím od boku, s tím už se musíš poprat sám...

23.5.2013 17:06 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven

Zaměř se tedy na to, v jakých atributech se ty soubory liší.

No to tu řeším celou dobu, ale všechny porazené příkazy ukazují, že atributy binárek jsou naprosto shodné... Přístupovými právy do adresářů to taky nebude, zkoušel jsem to v různých, i v tempu... Prostě už nevím...
Michy avatar 23.5.2013 17:22 Michy | skóre: 11 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
A getfattr jsi zkoušel?
24.5.2013 12:03 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Vypadá to, že binárky žádné rozšířené atributy nastavené nemají - getfattr dává na všech binárkách prázdný výstup.
24.5.2013 14:24 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
cp -a
se da rozepsat jako
cp -dR --preserve=all
kde parametr preserve ma tyto volby.
 --preserve[=ATTR_LIST]
	      preserve	 the   specified   attributes	(default:  mode,owner-
	      ship,timestamps), if possible  additional	 attributes:  context,
	      links, xattr, all
pokud vyzkousis vsechny moznosti, ktera z tech voleb zpusobi tuto chybovou hlasku?

BTW jak se ten soubor vubec na ten filesystem dostal? Byl tam vytvoren pomoci make, zkopirovan odnekud, ..?
beer avatar 29.5.2013 16:41 beer | skóre: 15
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven

Co tohle:

cp httpd httpd1 mv httpd1 httpd
beer avatar 29.5.2013 16:43 beer | skóre: 15
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven

cp httpd httpd1

mv httpd1 httpd

23.5.2013 14:39 Ed
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Jeste me napada - jste si jisty, ze spoustite httpd z aktualniho adresare?
23.5.2013 16:38 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Ano. Binárky se chovají stejně, ať už je spouštím s relativní nebo absolutní cestou...
24.5.2013 15:34 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Neco podobneho mi delal selinux (podobne by se mela chovat set-uid binarka). Zkus co udela:
LD_SHOW_AUXV=1 ./httpd
Pak by byl zajimavy cely strace:
strace -f ./httpd
Respektive zda se v nem nevyskytuje neco jako "/etc/suid-debug".
Řešení 1× (rADOn)
28.5.2013 11:05 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Tak jsem se konečně k něčemu dobral. Zjistil jsem, že za problémem stojí capabilities. Pokud souboru nastavím capability:
/sbin/setcap cap_net_bind_service=+ep ./httpd
tak neumí přilinkovat knihovnu libaprutil-1.so.0 a nespustí se. Pokud ale capability odeberu, binárka spustit jde.

Ale proč? A jak to vyřešit?
28.5.2013 13:39 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Jo, tak nastaveni capabilities dela to same co set-uid. Reseni je nepouzivat LD_LIBRARY_PATH, protoze je ignorovano. Spravna cesta je nastavit ty adresare kde se maji hledat knihovny do /etc/ld.so.conf (respektive do necoho z ceho se to generuje - zalezi na distribuci) a pustit ldconfig.
28.5.2013 16:16 Dave
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
No sláva! Přidal jsem konfigurační soubor s cestou ke knihovnám do /etc/ld.so.conf.d/, spustil ldconfig, a ono to jede! Díky moc za pomoc všem zúčastněným :-D.
28.5.2013 14:19 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Zjistil jsem, že za problémem stojí capabilities.
Klobúk dole, že si to nevzdal a dopátral sa k príčine.

Teraz aspoň vieš, čo máš teraz hľadať a snáď niečo užitočné nájdeš.

Btw, kde sa capabilities ukladajú? Do inode-u? V tom prípade by sa patrilo, aby ich stat zobrazil, nie?
28.5.2013 17:22 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
Tak jsem se rozhlednul po webu a podpora pro capabilities v zakladnich utilitach jako je ls, cp, tar, cpio, rsync etc. je rozdilna. U kazde utility se ten parametr jmenuje jinak a pokud nainstalovana verze uz tu funkcionalitu podporuje, jsou obcas potreba pridat parametry 3, jeden pro capabilities, dalsi pro extended attributes a dalsi pro ACL. Nevite nekdo o peknem clanku, ktery by situaci pro capabilities, extended attributes a ACL shrnoval?
29.5.2013 16:07 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: Problém s linkováním knihoven
odpovim si sam, shrnuti je k nalezeni zde

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.