PATH alkönyvtárakkal?

Linux scriptek

Egy apró kis trükköt osztok meg ma. Ha hasznosnak találod, akkor érdemes elmenteni, mert későbbiekben jól jöhet. Én szeretem rendezetten tartani a saját scriptjeimet, egyéb olyan programot, amit én fordítottam le, vagy külső (nem az Arch saját tárolóból, vagy az AUR-ból) forrásból telepítek. Ezeket a saját könyvtáramban a /bin alkönyvtárba rakom. Így egyben menthető az összes, illetve ha ezt a könyvtárat a PATH-ban megadom, akkor bárhonnét futtathatóak. A chkrootkit-et git-ről telepítve ütköztem bele abba, hogy sok fájlt tartalmazó a program, ha az összeset egyben bemásolom a ~/bin-be, akkor nehezen átlátható lesz, főleg, ha még pár tucat hasonló programot rakok fel, ami szintén több fájlt hoz magával. A másik megoldás, ha chkrootkit-master könyvtárat megadom PATH-ba. Ami egy logikus lépés, de nem túl hatékony, főleg, mert más programok is kerülnek fel hasonló módszerrel, a github-ról fordítva. Ideális lenne, ha a programok egy-egy alkönyvtárban, rendezetten foglalnának helyet, és ezek az alkönyvtárak automatikusan bekerülnének a PATH-ba. Kis google kutatás után találtam az alábbi megoldást, ami logikus is, de nem sok helyen láttam még.

PATH="$PATH:$(find ~/bin -type d -printf ":%p")"

A PATH-hoz adjuk azokat a find-del megtalált -type d azaz könyvtárakat, amelyek a ~/bin alatt vannak. Ha nem csak egy munkamenetre akarod ezt megtenni, akkor a bashrc, vagy a zshrc PATH= sora alá illeszd be. Ha nálad nem a saját könyvtárban a /bin-ben lesznek az ilyen programok, akkor értelemszerűen a saját gyűjtő mappásat ad meg. Ami fontos: soha!, de SOHA! nem másolj be egy ilyen sort, se a terminálba, se pedig egy konfigurációs fájlba automatikusan. Előbb értsd meg, mit is tesz, mit érsz el vele, és csak akkor használd, ha az neked megfelel!

Ellenérvként felvetik, hogy ez egy biztonsági rés, hiszen nem én szabályzom, hogy mi legyen a PATH-ban, és oda bármilyen program így belekerülhet, és azt bárhonnét futtathatja bárki… Az első olvasatban egy komoly érv, de ha belegondolsz, hogy nem „bármilyen” program kerülhet bele, hanem csak az, amit sajátkezűleg, egy megfelelő alkönyvtár létrehozása után én másolok oda. Nem belekerül azokba valami véletlenszerűen (ez is ellenérv volt) hanem én rakom oda, mint rendszergazda. Az egyértelműen hiba lenne, ha pld. a ~/bin helyett a ~/Letöltések-et adnád meg, vagy bármilyen olyan könyvtárat, amiben bármelyik program írhat és nem te, tudatosan, akaratlagosan, felelősséged teljes tudatában 🙂 másolod be azt, amit te akarsz.

Arch Linux alatt, 2020 áprilisában próbáltam ki.

Related Posts