'less' szarság

'less' szarságés less alatt nem azt értem, hogy "kevesebb", hanem azt, hogy a less programmal van tele a tököm.
tegnap előjött az az érdekes problémánk, hogy a shadow file nem MD5 kódokat tartalmazott, hanem DES kódokat, holott a régi rendszeren (rh7) MD5 jelszavak voltak, az új rendszer pedig rhel3, ott meg természetesen szintén van lehetőség az MD5-ös passokra... nos, ennek apropóján fellelkesültem és gondoltam soha jobb időt az MD5-ös passok-at megértenem, gondoltam utánaolvasok... meg is volt. perlhez úgy tűnt kelleni fog egy külön CPAN-os lib, gondoltam ezt inkább kihagyom, gondoltam na majd akkor ruby, az sokkal jobban meg van támogatva értelmes és modern libekkel, de a pickaxe librefjére kukkantva csak a DES-es passzokról esik szó, így azt is kihagytam... maradt így hát az a lehetőség, hogy esetleg C-ben megírom. C-ben nem vagyok különösebben jó és nem írtam még elég komoly programot benne ahhoz, hogy sűrűbben használjam, node.. mindent el kell kezdeni egyszer - gondoltam, és megnyitottam a crypt(3) manpage-et, átolvastam párszor, magambaszívtam a tudományt és az alján a kisbetűs részen megemlített MD5 utasításoknak megfelelten sebtiben összetettem egy szimpla kis programot, csak hogy lássam megy e... nem ment.
ezt kaptam:
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/../../../crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'
collect2: ld returned 1 exit status
persze igen amatőr C-sként ez nekem sokat ugyan nem mondott (bár így utólag alig utalás a main()-re hehe). nos, gondoltam rákukkantok erre a ctr1.o-ra, itt dél-tasmániában ugyanis már történtek érdekes dolgok (áram, víz, telefon, ezek itt csak ünnepnapokon működnek rendesen és a viharok miatt nem ritka az, hogy elmegy az áram vagy a víz elszíneződik) és a crt1.o-ás fileban ennyi volt "PTRh". hmm... gondoltam magamban, na most ilyenkor mi van :) és itt hosszas tökölés vette kezdetét, minekután egyszerűen nem értettem mi történhetett.. teljesen mint hat évvel ezelőtt mikor először használtam linuxot.
a vége az lett, hogy eszembe jutott, hogy egyszer már tapasztaltam ilyesmit, akkor is less-szel és akkor is linuxon, és természetesen ez volt a megoldás is. ja, és persze a maint() bug is meglett egy idő után, átírtam main()-re és minden szép és jó lett, a .bashrc-mbe pedig bekerült egy alias less="less -L", mert NAGYON idegesít mikor egy program "segítőkész" és nem azt teszi amit én akarom, hogy tegyen. a egész dologban egyébként azt furcsállom a legjobban, hogy bár a gentoo-t mindenki megpróbálja elitnek beállítani, marhára nem elit és szerintem sokkal egyszerűbben, úgymond "felhasználóbarát"-ibban kezel dolgokat mint mondjuk egy suse vagy egy redhat. egyedül a telepítésnél tapasztaltam azt, hogy tényleg érteni kell a rendszer működéséhez egy elég jó szinten ahhoz, hogy feltelepítsen az ember egy gentoot. miután feltelepült azonban ugyanazt találjuk mint bármely más disztrón - bár szerintem sokkal egyszerűbb a kezelése mint a suséé vagy a redhaté, mandreké, én kifejezetten tehetetlennek érzem magam azok alatt a rendszereken.
a shadow file pass bejegyzéseit egyébként a crypt(3) manpage tárgyalja és valóban igen egyszerű a bejegyzést a libcrypt használatával elkészíteni, C-ben, bár azóta merő kíváncsiságból kipróbáltam perlben és rubyban is és íme:
perl -e 'print crypt("pass", "$1$salt");'
ruby -e 'print "pass".crypt( "$1$salt" );'
enyhén szólva egyszerűbb, mint egy C programot erre írni külön hehe, de az is igaz, hogy nem mindenkinek van perl és/vagy ruby a gépén :)
kár, hogy az md5-ös jelszavak készítéséről sem a perlfunc manpage, sem a pickaxe libref nem tesz említést, ugyanis nem mindenki fogja megérteni a crypt(3)-as manpagen összefoglaltakat.

és less alatt nem azt értem, hogy "kevesebb", hanem azt, hogy a less programmal van tele a tököm.
tegnap előjött az az érdekes problémánk, hogy a shadow file nem MD5 kódokat tartalmazott, hanem DES kódokat, holott a régi rendszeren (rh7) MD5 jelszavak voltak, az új rendszer pedig rhel3, ott meg természetesen szintén van lehetőség az MD5-ös passokra... nos, ennek apropóján fellelkesültem és gondoltam soha jobb időt az MD5-ös passok-at megértenem, gondoltam utánaolvasok... meg is volt. perlhez úgy tűnt kelleni fog egy külön CPAN-os lib, gondoltam ezt inkább kihagyom, gondoltam na majd akkor ruby, az sokkal jobban meg van támogatva értelmes és modern libekkel, de a pickaxe librefjére kukkantva csak a DES-es passzokról esik szó, így azt is kihagytam... maradt így hát az a lehetőség, hogy esetleg C-ben megírom. C-ben nem vagyok különösebben jó és nem írtam még elég komoly programot benne ahhoz, hogy sűrűbben használjam, node.. mindent el kell kezdeni egyszer - gondoltam, és megnyitottam a crypt(3) manpage-et, átolvastam párszor, magambaszívtam a tudományt és az alján a kisbetűs részen megemlített MD5 utasításoknak megfelelten sebtiben összetettem egy szimpla kis programot, csak hogy lássam megy e... nem ment.
ezt kaptam:
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/../../../crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'
collect2: ld returned 1 exit status
persze igen amatőr C-sként ez nekem sokat ugyan nem mondott (bár így utólag alig utalás a main()-re hehe). nos, gondoltam rákukkantok erre a ctr1.o-ra, itt dél-tasmániában ugyanis már történtek érdekes dolgok (áram, víz, telefon, ezek itt csak ünnepnapokon működnek rendesen és a viharok miatt nem ritka az, hogy elmegy az áram vagy a víz elszíneződik) és a crt1.o-ás fileban ennyi volt "PTRh". hmm... gondoltam magamban, na most ilyenkor mi van :) és itt hosszas tökölés vette kezdetét, minekután egyszerűen nem értettem mi történhetett.. teljesen mint hat évvel ezelőtt mikor először használtam linuxot.
a vége az lett, hogy eszembe jutott, hogy egyszer már tapasztaltam ilyesmit, akkor is less-szel és akkor is linuxon, és természetesen ez volt a megoldás is. ja, és persze a maint() bug is meglett egy idő után, átírtam main()-re és minden szép és jó lett, a .bashrc-mbe pedig bekerült egy alias less="less -L", mert NAGYON idegesít mikor egy program "segítőkész" és nem azt teszi amit én akarom, hogy tegyen. a egész dologban egyébként azt furcsállom a legjobban, hogy bár a gentoo-t mindenki megpróbálja elitnek beállítani, marhára nem elit és szerintem sokkal egyszerűbben, úgymond "felhasználóbarát"-ibban kezel dolgokat mint mondjuk egy suse vagy egy redhat. egyedül a telepítésnél tapasztaltam azt, hogy tényleg érteni kell a rendszer működéséhez egy elég jó szinten ahhoz, hogy feltelepítsen az ember egy gentoot. miután feltelepült azonban ugyanazt találjuk mint bármely más disztrón - bár szerintem sokkal egyszerűbb a kezelése mint a suséé vagy a redhaté, mandreké, én kifejezetten tehetetlennek érzem magam azok alatt a rendszereken.
a shadow file pass bejegyzéseit egyébként a crypt(3) manpage tárgyalja és valóban igen egyszerű a bejegyzést a libcrypt használatával elkészíteni, C-ben, bár azóta merő kíváncsiságból kipróbáltam perlben és rubyban is és íme:
perl -e 'print crypt("pass", "$1$salt");'
ruby -e 'print "pass".crypt( "$1$salt" );'
enyhén szólva egyszerűbb, mint egy C programot erre írni külön hehe, de az is igaz, hogy nem mindenkinek van perl és/vagy ruby a gépén :)
kár, hogy az md5-ös jelszavak készítéséről sem a perlfunc manpage, sem a pickaxe libref nem tesz említést, ugyanis nem mindenki fogja megérteni a crypt(3)-as manpagen összefoglaltakat.

a less-szel kapcsolatban tán még annyit, hogy bár valóban néha jó, ha a unixos programok segíteni próbálnak az emberen és többet tesznek mint amennyi tőlük kérve lett, de szerintem ezt illene választható lehetőségnek beállítani, ahelyett, hogy default így jönnének a programok (pl vim is egyszer már gyomron lőtt a r-ek elrejtésével, ugyanis automatikusan felismerte, hogy dos text filet szerkesztek és nem jelenítette meg a r-eket, ellenben emiatt persze a perl cgi sem akart futni...).
ennyi.