Linux, sftp ja loginscriptit
Linux on mukava ja vielä mukavampaa on tehdä shell-käyttäjille itse login-scripti. Lopputulos ei ole välttämättä niin miellyttävä.
Eli ongelmana minulla tällä kertaa oli se, että sftp ei toiminut. Toki normaali ftp toimi, mutta miksi tyytyä vanhaan ja turvattomaan teknologiaan kun uuttakin on saatavilla. En ole varma missä vaiheessa linuxin eri osien yhteistyö loppui, mutta niin kuitenkin kävi.
Asiaa tutkittuani, tulin siihen tulokseen, että /etc/profiles.d – hakemistossa lymyilevä loginscriptini kaatoi sftp-istunnon. Scripti ei tee muuta kuin tulostaa käyttäjille informaatiota järjestelmästä, käyttäjistä ja muusta täysin epäolennaisesta. Testailtuani hetken tulin siihen lopputulokseen, että jo pelkkä echo "Hello world!" scriptissä sai aikaan “message too long” tms. ilmoituksen sftp-clientissä käytäjätunnistuksen jälkeen. Johtopäätös: “Linux on p*ska”.
En voi ymmärtää miksi sftp-istunnon pitää käsitellä profiles.d-kansion scriptit, eikä edes scriptin siirtäminen /etc/bashrc:hen auttanut. Ehkä olen missannut jotain pahasti tai sitten sftp-server on suunniteltu kökösti.
No purkkaohjelmaan “bugiin” purkkaratkaisu. Tämän koodin viritettyäni sain loginscriptin toimimaan sftp:n kanssa. Se testaa onko $TERM-ympäristömuuttuja asetettu (esim. vt100). Useimmat sftp-ohjelmat eivät tätä tunnu onnekseni tekevän.
#!/bin/sh
if [ “$TERM” != “dumb” ]; then// tähän scripti joka suoritetaan normaalissa ssh-istunnossa
fi
Ps. /etc/motd ei ole vaihtoehto, sillä scripti generoi informaatiota eri lähteistä. Ja tiedän, bash on amatööreille =)