[UBK dev] /bin /sbin irtás

Kiss Attila attus at enterpriseforever.com
2019. Aug. 24., Szo, 09:41:39 CEST


2019. 08. 24. 1:25 keltezéssel, Páder Rezső írta:
>>> A shadow két parancsát nem lehet átrakni? Ekkor a maga a /bin lehetne
>>> egy szimlink.
>> Az azért nem olyan egyszerű, hogy a /bin csak egy szimlink legyen.
> Kicsit bővebben:
> Az rendben van, hogy átrakjuk a shadow két parancsát (groups és login)
> az /usr/bin alá, de ott marad még 8 szimlink, köztük a /bin/bash és a
> /bin/sh is, ami nélkül maga az uhubuild sem működik.
> Ez azt is jelenti, hogy a bash csomagnak magának kell gondoskodnia
> arról, hogy létezzen egy /bin szimlink, ami az /usr/bin-re mutat.
> A szimlink létrehozása viszont csak akkor működik, ha a /bin semmilyen
> formában nem létezik. Ehhez meg kell nézni, hogy van-e /bin szimlink,
> vagy /bin könyvtár. Ha a /bin mint könyvtár létezik, akkor törölni
> kell, de azt csak akkor lehet megtenni, ha kizárólag szimlinkek vannak
> benne, különben összeomlik a rendszer.
> Ez pedig azt is jelenti, hogy frissítéskor a bash csomagot utolsóként
> lehet csak frissíteni, amikor már valóban minden bináris, ami most még
> a /bin alatt van, átkerül az /usr/bin alá.
> Ezzel viszont az apt-get upgrade kilőve, hiszen a függőségi sorrend
> miatt a bash lesz az első, hiszen így vagy úgy, de minden csomagnak
> kell, ha másért nem, a postinst, vagy uhu-pkg miatt, amiknek szintén
> kell a bash...
>
Tudom, hogy nem egyszerű, de legalább konkrét bináris nem kívánatos benne.

Végső soron a maga a bash (sh) parancsértelmező helye az akadály, 
melynek elérhetőnek kell lennie minden, még átmeneti esetben is.

Talán azt meg lehetne tenni, hogy a csomagkészítési chroot környezetben 
ezt ideiglenesen lehetővé tesszük, kézzel bedrótozva, hogy a 
csomagkészítés alatt működjenek az igényes szkriptek és megtalélják az 
értelmezőjüket addig, míg végül a /bin átírhatóvá válik csupán egy 
szimlinkre. Persze ügyelve arra, hogy az ideiglenes művünk egy esetleges 
chroot újraépítés során ne semmisüljön meg. Ha kész, akkor egy chroot 
újraépítéssel máris ellenőrizhető válik a siker(telenség).

Valahogy a 32/64 bit váltást is hasonló módon erőszakoltuk át, a lib64 
nálunk már egy szimlinkké vált, melytől azért nem tudtunk megszabadulni, 
de sebaj.




További információk a(z) dev levelezőlistáról