Åëëçíéêü Linux Tips HOWTO Paul Anderson, paul@geeky1.ebtech.net v3.1, 26 Äåêåìâñßïõ 1997 Áõôü ôï HOWTO ðåñéÝ÷åé õðïäåßîåéò êáé ðåéñáìáôéóìïýò, ðïõ åßíáé äýóêïëï íá âñåèïýí êáé êÜíïõí ôï Linux ïìïñöüôåñï. ______________________________________________________________________ Table of Contents 1. ÅéóáãùãÞ 2. Óýíôïìåò Õðïäåßîåéò 2.1 Ðñü÷åéñï Syslog Ôñõê 2.2 Script ãéá íá âëÝðåôå ôá óõìðéåóìÝíá HOWTOs. 2.3 ÕðÜñ÷åé áñêåôüò åëåýèåñïò ÷þñïò;;; 2.4 ÂïçèçôéêÞ åöáñìïãÞ ãéá íá êáèáñßæåôå ôá log áñ÷åßá óáò. 2.5 Ðñü÷åéñï Script ãéá íá êáèáñßæåôå ôá Core áñ÷åßá. 2.6 ÌåôáöÝñïíôáò êáôáëüãïõò ìåôáîý óýóôçìá áñ÷åßùís. 2.7 Âñåßôå ôïõò ìåãáëýôåñïõò êáôáëüãïõò ðïõ Ý÷åôå. 2.8 Ôï Linux Gazette 2.9 Äåßêôçò óôï patch ãéá ôï GNU Make 3.70 ãéá íá áëëÜîåôå ôç óõìðåñéöïñÜ ôïõ VPATH. 2.10 Ðþò óôáìáôþ ôï óýóôçìá ìïõ íá êÜíåé fsck óå êÜèå åðáíåêêßíçóç; 2.11 Ðþò íá áðïöýãåôå ôá fscks ðïõ ðñïêáëïýíôáé áðü "device busy" ôçí þñá ôçò åðáíåêêßíçóçò. 2.12 Ðþò íá âñåßôå ôá ìåãáëýôåñá áñ÷åßá óôï äßóêï óáò. 2.13 Ðþò íá ôõðþóåôå óåëßäåò êáé íá áöÞóåôå ðåñéèþñéï ãéá ôï äéáêïñåõôÞ. 2.14 Åíáò ôñüðïò ãéá íá øÜ÷íåôå ìÝóá óå äÝíäñá áñ÷åßùí ãéá ìéá óõãêåêñéìÝíç êáíïíéêÞ Ýêöñáóç. 2.15 ¸íá script ãéá íá êáèáñßæåé ôá áñ÷åßá autosave êáé backup ðïõ äçìéïõñãïýí äéÜöïñá ðñïãñÜììáôá. 2.16 Ðþò íá âñåßôå ðïéá äéåñãáóßá áðáéôåß ôçí ðåñéóóüôåñç ìíÞìç. 2.17 Åîïðëßóôå ôï vi ãéá ðñïãñáììáôéóìü óå C , 2.18 Ãéáôß ôï sendmail êïëëÜåé åðß 5 ëåðôÜ êáôÜ ôçí åêêßíçóç óôï RedHat; 2.19 Ðþò ñõèìßæù ôï RedHat ãéá íá ÷ñçóéìïðïéåß ôçí color-ls; 2.20 Ðþò âñßóêù ðïéá âéâëéïèÞêç óôï /usr/lib Ý÷åé ìéá óõãêåêñéìÝíç óõíÜñôçóç; 3. Ëåðôïìåñåßò Õðïäåßîåéò 3.1 ÌïéñÜæïíôáò ôá swap partitions ìåôáîý Linux êáé Windows. 3.2 ÁðåëðéóìÝíá Undelete. 3.3 Ðþò íá ÷ñçóéìïðïéÞóåôå ôï óôáèåñü flag. 3.4 Ìéá ðñüôáóç ãéá ôï ðïý íá ôïðïèåôÞóåôå íÝá áñ÷åßá. 3.5 ÌåôáôñÝøôå üëá ôá ïíüìáôá ôùí áñ÷åßùí åíüò êáôáëüãïõ óå ìéêñÜ ãñÜììáôá. 3.6 ÌåñéêÝò õðïäåßîåéò ãéá íÝïõò sysadmins. 3.7 Ðþò íá ñõèìßóåôå ôï xdm's chooser ãéá åðéëïãÞ host. 3.8 Ðåñß ôçò ÅëëçíéêÞò ÌåôÜöñáóçò ______________________________________________________________________ [1m1. ÅéóáãùãÞ[0m Êáëþò Þñèáôå óôï [1mLinux Tips HOWTO[22m, ìéá ëßóôá áðü óõìðáèçôéêÜ ôñõê êáé âåëôéóôïðïéÞóåéò ðïõ èá êÜíïõí ôï Linux ðéï åõ÷Üñéóôï. ¼ëá üóá Ý÷ù åäþ åßíáé õðïäåßîåéò ðïõ Ýâãáëá áð'ôï êåöÜëé ìïõ, êáé óõìâïõëÝò áðü ôï ðáëéü Tips-HOWTO (ãéáôß, Üëëùóôå, íá âãÜëù Ýîù êáèþò ðñÝðåé óõìâïõëÝò, óùóôÜ;). Óôåßëôå ìïõ, ëïéðüí, üëåò ôéò áãáðçìÝíåò óáò ìéêñÝò ÷ñÞóéìåò óõìâïõëÝò êáé ïäçãßåò þóôå íá ìðïñÝóù íá ôéò åíóùìáôþóù óôï åðüìåíï Tips-HOWTO. Paul Anderson [4mÓõíôçñçôÞò--Linux[24m [4mTIPS[24m [4mHOWTO[0m panderso@ebtech.net [1m2. Óýíôïìåò Õðïäåßîåéò[0m [1m2.1. Ðñü÷åéñï Syslog Ôñõê Paul Anderson, ÓõíôçñçôÞò ôïõ Tips-HOWTO[0m Áíïßîôå ôï áñ÷åßï /etc/syslog.conf, êáé ðñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ: # Dump everything on tty8 *.* /dev/tty8 ÐÑÏÅÉÄÏÐÏÉÇÓÇ: [4mÌÇÍ[24m [4mÎÅ×ÁÓÅÔÅ[24m [4mÍÁ[24m [4m×ÑÇÓÉÌÏÐÏÉÇÓÅÔÅ[24m [4mTABS![24m óôï syslog äåí áñÝóïõí ôá êåíÜ... [1m2.2. Script ãéá íá âëÝðåôå ôá óõìðéåóìÝíá HOWTOs. Didier Juges,[0m [1mdj@destin.nfds.net[0m Áð' ôïí Ýíá áñ÷Üñéï óôïí Üëëï, ðñïÝêõøå áõôü ôï ìéêñü script ðïõ äéåõêïëýíåé ôï øÜîéìï êáé ôï äéÜâáóìá êåéìÝíùí howto. Ôá howto áñ÷åßá ìïõ âñßóêïíôáé óôï /usr/doc/faq/howto/ êáé åßíáé óõìðéåóìÝíá. Ôá ïíüìáôá ôùí áñ÷åßùí åßíáé XXX-HOWTO.gz, üðïõ XXX åßíáé ôï èÝìá ôïõ howto. Äçìéïýñãçóá ôï script ìå üíïìá "howto" óôïí êáôÜëïãï the /usr/local/sbin : ______________________________________________________________________ #!/bin/sh if [ "$1" = "" ]; then ls /usr/doc/faq/howto | less else gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less fi ______________________________________________________________________ ¼ôáí êáëåßôáé ÷ùñßò ðáñáìÝôñïõò, åìöáíßæåé ï êáôÜëïãïò ôùí äéáèÝóéìùí áñ÷åßùí howto. ¼ôáí êáëåßôáé ìå ðáñÜìåôñï ôï ðñþôï ôìÞìá ôïõ ïíüìáôïò ôïõ áñ÷åßïõ (ðñéí ôçí ðáýëá), ôï áðïóõìðéÝæåé (êñáôþíôáò ôï áñ÷éêü áñ÷åßï áíÝðáöï) êáé ìåôÜ åìöáíßæåé ôï êåßìåíï. Ãéá ðáñÜäåéãìá, ãéá íá äåßôå ôï êåßìåíï Serial-HOWTO.gz , ãñÜøôå: $ howto Serial [1m2.3. ÕðÜñ÷åé áñêåôüò åëåýèåñïò ÷þñïò;;; Hans Zoebelein, zocki@gold-[0m [1mfish.cube.net[0m Áêïëïõèåß Ýíá ìéêñü script ôï ïðïßï åëÝã÷åé ðåñéïäéêÜ áí õðÜñ÷åé áñêåôüò åëåýèåñïò ÷þñïò äéáèÝóéìïò óå ïôéäÞðïôå åìöáíßæåôáé óôï mount (äßóêïé, cdrom, äéóêÝôá...) Áí ï ÷þñïò åîáíôëåßôáé, ôõðþíåôáé Ýíá ìÞíõìá êÜèå X äåõôåñüëåðôá óôçí ïèüíç êáé óôÝëíåôáé 1 ìÞíõìá ìå mail ãéá êÜèå ãåìÜôç óõóêåõÞ. ______________________________________________________________________ #!/bin/sh # # $Id: check_hdspace,v 1.18 1996/12/11 22:33:29 root Exp root $ # # # Since I got mysterious error messages during compile when # tmp files filled up my disks, I wrote this to get a warning # before disks are full. # # If this stuff saved your servers from exploding, # send praising email to zocki@goldfish.cube.net. # If your site burns down because of this, sorry but I # warned you: no comps. # If you really know how to handle sed, please forgive me :) # # # Shoot and forget: Put 'check_hdspace &' in rc.local. # Checks for free space on devices every $SLEEPTIME sec. # You even might check your floppies or tape drives. :) # If free space is below $MINFREE (kb), it will echo a warning # and send one mail for each triggering device to $MAIL_TO_ME. # If there is more free space than trigger limit again, # mail action is also armed again. # # TODO: Different $MINFREE for each device. # Free /*tmp dirs securely from old junk stuff if no more free space. DEVICES='/dev/sda2 /dev/sda8 /dev/sda9' # device; your put disks here MINFREE=20480 # kb; below this do warning SLEEPTIME=10 # sec; sleep between checks MAIL_TO_ME='root@localhost' # fool; to whom mail warning # ------- no changes needed below this line (hopefully :) ------- MINMB=0 ISFREE=0 MAILED="" let MINMB=$MINFREE/1024 # yep, we are strict :) while [ 1 ]; do DF="`/bin/df`" for DEVICE in $DEVICES ; do ISFREE=`echo $DF | sed s#.\*$DEVICE" "\*[0-9]\*""\*[0-9]\*" "\*## | sed s#" ".\*##` if [ $ISFREE -le $MINFREE ] ; then let ISMB=$ISFREE/1024 echo "WARNING: $DEVICE only $ISMB mb free." >&2 #echo "more stuff here" >&2 echo -e "\a\a\a\a" if [ -z "`echo $MAILED | grep -w $DEVICE`" ] ; then echo "WARNING: $DEVICE only $ISMB mb free. (Trigger is set to $MINMB mb)" \ | mail -s "WARNING: $DEVICE only $ISMB mb free!" $MAIL_TO_ME MAILEDH="$MAILED $DEVICE" MAILED=$MAILEDH # put further action here like cleaning # up */tmp dirs... fi elif [ -n "`echo $MAILED | grep -w $DEVICE`" ] ; then # Remove mailed marker if enough disk space # again. So we are ready for new mailing action. MAILEDH="`echo $MAILED | sed s#$DEVICE##`" MAILED=$MAILEDH fi done sleep $SLEEPTIME done ______________________________________________________________________ [1m2.4. ÂïçèçôéêÞ åöáñìïãÞ ãéá íá êáèáñßæåôå ôá log áñ÷åßá óáò. Paul[0m [1mAnderson, ÓõíôçñçôÞò ôïõ Tips-HOWTO >[0m Áí åßóôå óáí êé åìÝíá, Ý÷åôå ìéá ëßóôá ìå 250 åããåãñáììÝíïõò, êáé 100+ ìçíýìáôá íá Ýñ÷ïíôáé êáèçìåñéíÜ ìÝóù UUCP. Ëïéðüí, ôé ìðïñåß íá êÜíåé Ýíáò ÷Üêåñ ìå áõôÜ ôá ôåñÜóôéá logs; Íá óôÞóåé ôï chklogs. Ôï Chklogs ãñÜöôçêå áðü ôïí Emilio Grimaldo, grimaldo@panama.iaehv.nl, êáé ç ôñÝ÷ïõóá Ýêäïóç 1.8 åßíáé äéáèÝóéìç óôï ftp.iaehv.nl:/pub/users/grimaldo/chklogs-1.8.tar.gz. Ç äéáäéêáóßá åãêáôÜóôáóçò åßíáé áðëÞ (èá äéáâÜóåôå, öõóéêÜ, ôéò ðëçñïöïñßåò óôïí õðïêáôÜëïãï sub). ¼ôáí ôï åãêáôáóôÞóåôå, ðñïóèÝóôå ìéá åããñáöÞ crontab óáí ôçí ðáñáêÜôù: # Run chklogs at 9:00PM daily. 00 21 * * * /usr/local/sbin/chklogs -m Ìéá êáé ôï ÷ñçóéìïðïéÞóáôå, ìçí îå÷Üóåôå íá áíáöÝñåôå óôïí óõããñáöÝá ðüóï ùñáßï ðñïãñáììáôÜêé åßíáé áõôü :) [1m2.5. ohammers@cu-online.com Ðñü÷åéñï Script ãéá íá êáèáñßæåôå ôá Core[0m [1máñ÷åßá. Otto Hammersmith,[0m ÄçìéïõñãÞóôå Ýíá áñ÷åßï ìå üíïìá rmcores (ï óõããñáöÝáò ôï áðïêáëåß handle-cores) ðïõ íá ðåñéÝ÷åé ôïí ðáñáêÜôù êþäéêá: ______________________________________________________________________ #!/bin/sh USAGE="$0 <directory> <message-file>" if [ $# != 2 ] ; then echo $USAGE exit fi echo Deleting... find $1 -name core -atime 7 -print -exec rm {} \; echo e-mailing for name in `find $1 -name core -exec ls -l {} \; | cut -c16-24` do echo $name cat $2 | mail $name done ______________________________________________________________________ ÄçìéïõñãÞóôå ìéá åñãáóßá cron íá ôï ôñÝ÷åé ðåñéïäéêÜ. [1m2.6. ÌåôáöÝñïíôáò êáôáëüãïõò ìåôáîý óýóôçìá áñ÷åßùís. Alan Cox,[0m [1mA.Cox@swansea.ac.uk[0m ÃñÞãïñïò ôñüðïò íá ìåôáöÝñåôå Ýíá ïëüêëçñï äÝíäñï áñ÷åßùí áðü Ýíá äßóêï óå Ýíáí Üëëï (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -) [4m[[24m [4mAÁëëÜîôå[24m [4máðü[24m [4môï[24m [4m/source/directory.[24m [4mÊÜíôå[24m [4mtar....êëð.[24m [4mþóôå[24m [4míá[0m [4máðïöýãåôå[24m [4môçí[24m [4mðéèáíüôçôá[24m [4míá[24m [4má÷ñçóôåýóåôå[24m [4môï[24m [4mdirectory[24m [4móå[24m [4mðåñßðôùóç[0m [4mêáôáóôñïöÞò.[24m [4mÅõ÷áñéóôþ[24m [4môïí[24m [4mJim[24m [4mDennis,[24m [4mjadestar@rahul.net,[24m [4mðïõ[24m [4mìïõ[24m [4môï[0m [4måßðå.[24m [4m-Óõíô.[24m [4m][0m [1m2.7. mghazey@miso.lowdown.com Âñåßôå ôïõò ìåãáëýôåñïõò êáôáëüãïõò ðïõ[0m [1mÝ÷åôå. Mick Ghazey,[0m ¸÷åôå áíáñùôçèåß ðïôÝ ðïéïé åßíáé ïé ìåãáëýôåñïé êáôÜëïãïé óôïí õðïëïãéóôÞ óáò; Ïñßóôå ðþò èá ôï ìÜèåôå. du -S | sort -n [1m2.8. Ôï Linux Gazette[0m Äüîá êáé ôéìÝò óôïí John Fisk, ôï äçìéïõñãü ôïõ Linux Gazette. Åßíáé Ýíá åîáéñåôéêü çëåêôñïíéêü ðåñéïäéêü êáé åðéðëÝïí, åßíáé [1mÄÙÑÅÁÍ!!! [22mÔé ðåñéóóüôåñï ìðïñåßôå íá æçôÞóåôå; Äåßôå ìüíïé óáò: http://www.ssc.com/lg Åðß ôçí åõêáéñßá, öáßíåôáé üôé (1) ôï LG âãáßíåé óå ìçíéáßá Ýêäïóç, êáé (2) äåí ôï óõíôçñåß ðéá ï John Fisk , áëëÜ ïé óõíåñãÜôåò ôçò SSC. [1m2.9. Ted Stern, stern@amath.washington.edu Äåßêôçò óôï patch ãéá ôï[0m [1mGNU Make 3.70 ãéá íá áëëÜîåôå ôç óõìðåñéöïñÜ ôïõ VPATH.[0m Äåí îÝñù áí Ý÷ïõí ðïëëïß Üíèñùðïé áõôü ôï ðñüâëçìá, áëëÜ õðÜñ÷åé Ýíá "÷áñáêôçñéóôéêü" ôïõ GNU make Ýêäïóç 3.70 ôï ïðïßï äå ìïõ áñÝóåé. Åßíáé üôé ôï VPATH óõìðåñéöÝñåôáé ðåñßåñãá áí äþóåôå ôï áðüëõôï üíïìá áñ÷åßïõ. ÕðÜñ÷åé Ýíá åîáéñåôéêÜ ðëÞñåò patch ðïõ äéïñèþíåé ôï ðñüâëçìá, ôï ïðïßï ìðïñåßôå íá âñåßôå áðü ôïí Paul D. Smith <psmith@wellfleet.com>. Áõôüò óôÝëíåé ôçí ôåêìçñßùóç êáé ôï patch ìåôÜ áðü êÜèå åðáíÝêäïóç ôïõ GNU make óôï newsgroup gnu.utils.bug. ÃåíéêÜ, åöáñìüæù áõôü ôï patch êáé êÜíù îáíÜ compile ôï gmake óå êÜèå óýóôçìá ðïõ Ý÷ù ðñüóâáóç. [1m2.10. Ðþò óôáìáôþ ôï óýóôçìá ìïõ íá êÜíåé fsck óå êÜèå åðáíåêêßíçóç;[0m [1mDale Lutz, dal@wimsey.com[0m Q: Ðþò óôáìáôþ ôï e2fsck íá åëÝã÷åé ôï äßóêï ìïõ êÜèå öïñÜ ðïõ êÜíù boot. A: ¼ôáí îáíá÷ôßóåôå ôïí ðõñÞíá, ôï óýóôçìá áñ÷åßùí ìáñêÜñåôáé óáí 'âñþìéêï' êáé Ýôóé ï äßóêïò óáò èá åëÝã÷åôáé óå êÜèå åêêßíçóç. Ãéá íá ôï öôéÜîåôå áõôü ôñÝîôå ôï: rdev -R /zImage 1 Áõôü äéïñèþíåé ôïí ðõñÞíá áðü ôï íá ðéóôåýåé üôé ôï óýóôçìá áñ÷åßùí åßíáé âñþìéêï. [4mÓçìåßùóç:[24m [4mÁí[24m [4m÷ñçóéìïðïéåßôå[24m [4mlilo,[24m [4môüôå[24m [4mðñïóèÝóôå[24m [4môï[24m read-only [4móôçí[0m [4måãêáôÜóôáóç[24m [4môïõ[24m [4móôï[24m [4máñ÷åßï[24m [4mñýèìéóçò[24m [4môïõ[24m [4mlilo[24m [4m(óõíÞèùò[24m [4móôï[0m [4m/etc/lilo.conf)[0m [1m2.11. Ðþò íá áðïöýãåôå ôá fscks ðïõ ðñïêáëïýíôáé áðü "device busy"[0m [1môçí þñá ôçò åðáíåêêßíçóçò. Jon Tombs, jon@gtex02.us.es[0m Áí âëÝðåôå óõ÷íÜ ëÜèç device busy êáôÜ ôï shutdown ðïõ êÜíïõí ôï óýóôçìá áñ÷åßùí íá ÷ñåéÜæåôáé fsck êáôÜ ôçí åðáíåêêßíçóç, ïñßóôå ìéá ìéêñÞ äéüñèùóç : ÐñïóèÝóôå ôçí ðáñáêÜôù ãñáììÞ óôï /etc/rc.d/init.d/halt Þ /etc/rc.d/rc.0 mount -o remount,ro /mount.dir ãéá üëá ôá ðñïóáñôçìÝíá (mounted) óõóôÞìáôá áñ÷åßùí åêôüò ôïõ /, ðñéí ôçí êëÞóç umount -a. Áõôü óçìáßíåé üôé áí, ãéá êÜðïéï ëüãï, ôï shut- down áðïôý÷åé íá óêïôþóåé üëåò ôéò äéåñãáóßåò êáé áðïðñïóáñôÞóåé ôïõò äßóêïõò èá åßíáé áêüìç êáèáñïß óôçí åðáíåêêßíçóç. ¸ôóé åîïéêïíïìþ ðïëý ÷ñüíï óôçí åðáíåêêßíçóç. [1m2.12. Ðþò íá âñåßôå ôá ìåãáëýôåñá áñ÷åßá óôï äßóêï óáò.[0m [4mSimon[24m [4mAmor,[24m simon@foobar.co.uk ls -l | sort +4n Ç, ãé' áõôïýò ðïõ åßíáé ðñáãìáôéêÜ scrunched ãéá ÷þñï, ìðïñåß íá áñãåß ëßãï áëëÜ äïõëåýåé ìéá ÷áñÜ: cd / ls -lR | sort +4n [1m2.13. Ðþò íá ôõðþóåôå óåëßäåò êáé íá áöÞóåôå ðåñéèþñéï ãéá ôï[0m [1mäéáêïñåõôÞ. Mike Dickey, mdickey@thorplus.lib.purdue.edu[0m ______________________________________________________________________ #!/bin/sh # /usr/local/bin/print # a simple formatted printout, to enable someone to # 3-hole punch the output and put it in a binder cat $1 | pr -t -o 5 -w 85 | lpr ______________________________________________________________________ [1m2.14. Raul Deluth Miller, rockwell@nova.umd.edu Åíáò ôñüðïò ãéá íá[0m [1møÜ÷íåôå ìÝóá óå äÝíäñá áñ÷åßùí ãéá ìéá óõãêåêñéìÝíç êáíïíéêÞ Ýêöñáóç.[0m ÏíïìÜæù áõôü ôï script 'forall'. ×ñçóéìïðïéÞóôå ôï ùò åîÞò : forall /usr/include grep -i ioctl forall /usr/man grep ioctl Íá ôï script forall: ______________________________________________________________________ #!/bin/sh if [ 1 = `expr 2 \> $#` ] then echo Usage: $0 dir cmd [optargs] exit 1 fi dir=$1 shift find $dir -type f -print | xargs "$@" ______________________________________________________________________ [1m2.15. Barry Tolnas, tolnas@nestor.engr.utk.edu ¸íá script ãéá íá[0m [1mêáèáñßæåé ôá áñ÷åßá autosave êáé backup ðïõ äçìéïõñãïýí äéÜöïñá[0m [1mðñïãñÜììáôá.[0m ¸íá áðëü ðñüãñáììá äýï-ãñáììþí ðïõ êáôåâáßíåé áíáäñïìéêÜ ôçí éåñáñ÷ßá åíüò êáôáëüãïõ áöáéñþíôáò ôá áñ÷åßá emacs auto-save (#) êáé backup (~), ôá áñ÷åßá .o , êáé ôá TeX .log. Åðßóçò óõìðéÝæåé ôá áñ÷åßá .tex êáé ôá README. Ôï Ý÷ù ïíïìÜóåé 'squeeze' óôï óýóôçìÜ ìïõ. ______________________________________________________________________ #!/bin/sh #SQUEEZE removes unnecessary files and compresses .tex and README files #By Barry tolnas, tolnas@sun1.engr.utk.edu # echo squeezing $PWD find $PWD \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\#\) -exec rm -f {} \; find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \; ______________________________________________________________________ [1m2.16. simon@foobar.co.uk Ðþò íá âñåßôå ðïéá äéåñãáóßá áðáéôåß ôçí[0m [1mðåñéóóüôåñç ìíÞìç. Simon Amor,[0m ps -aux | sort +4n -H- ps -aux | sort +5n [1m2.17. Åîïðëßóôå ôï vi ãéá ðñïãñáììáôéóìü óå C , Paul Anderson, Tips-[0m [1mHOWTO ÓõíôçñçôÞò[0m ¸÷ù ðñïãñáììáôßóåé ðïëý óå C óôïí åëåýèåñü ìïõ ÷ñüíï, êáé Ýäùóá ÷ñüíï ãéá íá åîïðëßóù ôï vi þóôå íá åßíáé öéëéêü ìå ôç C. Ïñßóôå ôï áñ÷åßï ìïõ .exrc: ______________________________________________________________________ set autoindent set shiftwidth=4 set backspace=2 set ruler ______________________________________________________________________ Ôé êÜíåé áõôü; Ôï autoindent áíáãêÜæåé ôï vi íá êÜíåé indent áõôüìáôá êÜèå ãñáììÞ ðïõ áêïëïõèåß ôçí ðñþôç ðïõ Ýãéíå indent, ôï shiftwidth èÝôåé ôçí áðüóôáóç ôïõ ^T (tab) óå 4 êåíÜ, ôï backspace èÝôåé ôï backspace mode, êáé ôï ruler äåß÷íåé ôïí áñéèìü ãñáììÞò. Íá èõìÜóôå, üôé ãéá íá ðÜôå óå Ýíá óõãêåêñéìÝíï áñéèìü ãñáììÞò, áò ðïýìå ôçí 20, ÷ñçóéìïðïéÞóôå ôï: ______________________________________________________________________ vi +20 myfile.c ______________________________________________________________________ [1m2.18. paul@geeky1.ebtech.net Ãéáôß ôï sendmail êïëëÜåé åðß 5 ëåðôÜ[0m [1mêáôÜ ôçí åêêßíçóç óôï RedHat; Paul Anderson,[0m Áõôü åßíáé Ýíá ó÷åäüí êïéíü ðñüâëçìá, óå óçìåßï íá ãßíåé FAQ. Äåí îÝñù áí ôï RedHat äéüñèùóå áõôü ôï bug óôç äéáíïìÞ ôïõò, áëëÜ ìðïñåßôå íá ôï äéïñèþóåôå êáé ìüíïé óáò. Áí êïéôÜîåôå óôï áñ÷åßï /etc/hosts , èá äåßôå üôé ìïéÜæåé êÜðùò óáí : 127.0.0.1 localhost yourbox ¼ôáí îåêéíÜ ôï sendmail, øÜ÷íåé óôï hostname ðïõ Ý÷åôå (óå áõôÞ ôçí ðåñßðôùóç, ôï yourbox). Åêåß âñßóêåé üôé ôï IP ôïõ yourbox åßíáé 127.0.0.1, áõôü äåí áñÝóåé óôï sendmail, êáé øÜ÷íåé ðÜëé. Óõíå÷ßæåé ìå áõôü ãéá ëßãï ìÝ÷ñéò üôïõ íá åãêáôáëåßøåé êáé íá óôáìáôÞóåé. Ôï íá äéïñèþóåôå áõôü ôï ðñüâëçìá åßíáé ðïëý áðëü, áíïßîôå ôï áñ÷åßï /etc/hosts êáé áëëÜîôå ôï óå êÜôé óáí ôï: 127.0.0.1 localhost 10.56.142.1 yourbox [1m2.19. Ðþò ñõèìßæù ôï RedHat ãéá íá ÷ñçóéìïðïéåß ôçí color-ls; Paul[0m [1mAnderson, paul@geeky1.ebtech.net[0m Ç äéáíïìÞ RedHat Ýñ÷åôáé ìå color-ls, ðáñüëáõôÜ äåí îÝñù ãéáôß äåí ôç ñõèìßæïõí ãéá ÷ñÞóç ìå ÷ñþìáôá. Íá ðþò èá ôï äéïñèþóåôå. Ðñþôá, ãñÜøôå eval `DIRCOLORS` ÌåôÜ, alias ls='ls --color=yes' Êáé ðñïóèÝóôå ôï 'alias.....' óôï áñ÷åßï /etc/bashrc [1m2.20. vps@unicorn.niimm.spb.su Ðþò âñßóêù ðïéá âéâëéïèÞêç óôï[0m [1m/usr/lib Ý÷åé ìéá óõãêåêñéìÝíç óõíÜñôçóç; Pawel Veselow,[0m Ôé êÜíåôå áí êÜíåôå compile êáé äå êÜíáôå link ìéá âéâëéïèÞêç ðïõ ÷ñåéÜæåôáé; ¼ëá ôá gcc reports åßíáé ïíüìáôá óõíáñôÞóåùí... Íá ìéá åíôïëÞ äåßãìá ðïõ èá âñåé áõôü ðïõ øÜ÷íåôå: for i in *; do echo $i:;nm $i|grep tgetnum 2>/dev/null;done üðïõ tgetnum åßíáé ôï üíïìá ôçò óõíÜñôçóçò ðïõ øÜ÷íåôå. [1m3. Ëåðôïìåñåßò Õðïäåßîåéò[0m [1m3.1. ÌïéñÜæïíôáò ôá swap partitions ìåôáîý Linux êáé Windows. Tony[0m [1mAcero, ace3@midway.uchicago.edu[0m 1. ÖïñìÜñåôå ôï partition óáí dos partition, êáé äçìéïõñãÞóôå ôï áñ÷åßï swap ôùí Windows óå áõôü, áëëÜ ìçí ôñÝîåôå áêüìç ôá windows. (ÈÝëåôå íá êñáôÞóåôå ôï áñ÷åßï swap ôåëåßùò êåíü ãéá ôçí þñá, þóôå íá óõìðéåóôåß êáëÜ). 2. ÎåêéíÞóôå linux êáé óþóôå ôï partition óå Ýíá áñ÷åßï. Ãéá ðáñÜäåéãìá áí ôï partition Þôáí ôï /dev/hda8: dd if=/dev/hda8 of=/etc/dosswap 3. ÓõìðéÝóôå ôï áñ÷åßï swap ôïõ dos. Ìéá êáé åßíáé ó÷åäüí üëá 0 èá óõìðéåóôåß ðïëý êáëÜ gzip -9 /etc/dosswap 4. ÐñïóèÝóôå ôï ðáñáêÜôù óôï áñ÷åßï /etc/rc ãéá íá ðñïåôïéìÜóåôå êáé íá óôÞóåôå ôï swap ÷þñï êÜôù áðü Linux: [4mXXXXX[24m [4måßíáé[24m [4mï[24m [4máñéèìüò[24m [4môùí[24m [4mìðëïêò[24m [4môïõ[24m [4mswap[24m [4mpartition[0m mkswap /dev/hda8 XXXXX swapon -av Óéãïõñåõôåßôå üôé ðñïóèÝóáôå ìéá ãñáììÞ ãéá ôï swap partition óôï áñ÷åßï /etc/fstab 5. Áí ôï ðáêÝôï óáò init/reboot õðïóôçñßæåé /etc/brc Þ /sbin/brc ðñïóèÝóôå ôá ðáñáêÜôù óôï /etc/brc, áëëéþò êÜíôå ôï ìå ôï ÷Ýñé üôáí èÝëåôå íá îåêéíÞóåôå óå dos|os/2 êáé èÝëåôå íá ìåôáôñÝøåôå ôï swap partition ðßóù óôçí Ýêäïóç ãéá dos/windows: swapoff -av zcat /etc/dosswap.gz | dd of=/dev/hda8 bs=1k count=100 # Note that this only writes the first 100 blocks back to the parti- tion. I've found empirically that this is sufficient >> ÐïéÜ åßíáé ôá ðëåïíåêôÞìáôá êáé ôá ìåéïíåêôÞìáôá ãéá ôï ðáñáðÜíù; ÐëåïíÝêôçìá: åîïéêïíïìåßôå ïõóéáóôéêü ÷þñï áðü ôï äßóêï óáò. ÌåéïíÝêôçìá: áí ôï âÞìá 5 äå ãßíåôáé áõôüìáôá, ðñÝðåé íá èõìçèåßôå íá ôï êÜíåôå ìå ôï ÷Ýñé, êáé åðéâáñýíåé ôç äéáäéêáóßá åêêßíçóçò êáôÜ Ýíá nanosecond :-) [1m3.2. ÁðåëðéóìÝíá Undelete. Michael Hamilton, michael@actrix.gen.nz[0m Íá Ýíá ôñõê ðïõ Ýðñåðå íá ÷ñçóéìïðïéÞóù ìåñéêÝò öïñÝò. undelete áñ÷åßïõ êåéìÝíïõ ãéá áðåëðéóìÝíïõò. Áí êáôÜ ëÜèïò óâÞóáôå Ýíá text áñ÷åßï, ãéá ðáñÜäåéãìá, êÜðïéï email, Þ ôá áðïôåëÝóìáôá ìéáò ïëïíý÷ôéáò ðñïãñáììáôéóôéêÞò óõíåäñßáò , ìðïñåß íá ìç ÷Üèçêáí üëá. Áí ôï áñ÷åßï ðïõ öôéÜîáôå óôï äßóêï, Þôáí åêåß ð.÷ ãéá ðåñéóóüôåñï áðü 30 äåõôåñüëåðôá, ìðïñåß ôá ðåñéå÷üìåíÜ ôïõ íá âñßóêïíôáé áêüìç óôçí êáôÜôìçóç ôïõ äßóêïõ. Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ grep ãéá íá øÜîåé ôï raw disk partition ãéá ôá ðåñéå÷üìåíá ôïõ áñ÷åßïõ. Ãéá ðáñÜäåéãìá, ðñüóöáôá, Ýóâçóá êáôÜ ëÜèïò Ýíá êïììÜôé åíüò email. ¸ôóé, óôáìÜôçóá áìÝóùò ïðïéáäÞðïôå åíÝñãåéá ðïõ ìðïñïýóå íá ìåôáâÜëëåé ôï partition: óå áõôÞ ôçí ðåñßðôùóç áðëÜ áðÝöõãá íá áðïèçêåýóù áñ÷åßá Þ íá êÜíù ìåôáãëþôôéóç (compile) êëð. Óå Üëëåò ðåñéðôþóåéò, ìðÞêá ðñáãìáôéêÜ óôïí êüðï íá êáôåâÜóù ôï óýóôçìá óå single user mode, êáé íá áðïäåóìåýóù (unmount) ôï óýóôçìá áñ÷åßùí. ×ñçóéìïðïßçóá ôüôå ôçí åíôïëÞ egrep óôï partition ôïõ äßóêïõ: óôçí ðåñßðôùóÞ ìïõ ôï email ìÞíõìá Þôáí óôï /usr/local/home/michael/, Ýôóé áðü ôï output ôïõ df, åßäá üôé Þìïõí óôï /dev/hdb5 sputnik3:~ % df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 18621 9759 7901 55% / /dev/hdb3 308852 258443 34458 88% /usr /dev/hdb5 466896 407062 35720 92% /usr/local sputnik3:~ % su Password: [michael@sputnik3 michael]# egrep -50 'ftp.+COL' /dev/hdb5 > /tmp/x Ôþñá åßìáé õðåñâïëéêÜ ðñïóåêôéêüò üôáí ðáßæù ìå ôéò êáôáôìÞóåéò ôùí äßóêùí, Ýôóé óôáìÜôçóá íá âåâáéùèþ üôé êáôáëáâáßíù ôç óýíôáîç ôçò åíôïëÞò ÐÑÉÍ íá ðáôÞóù ôï ðëÞêôñï return. Óå áõôÞ ôçí ðåñßðôùóç ôï email ðåñéåß÷å ôç ëÝîç 'ftp' áêïëïõèïýìåíç áðü êÜðïéï text ðïõ ôï áêïëïõèïýóå ôï 'COL'. Ôï ìÞíõìá Þôáí ðåñßðïõ 20 ãñáììÝò, Ýôóé ÷ñçóéìïðïßçóá ôï -50 ãéá íá öÝñù üëåò ôéò ëÝîåéò ãýñù áðü ôç öñÜóç. Óôï ðáñåëèüí åß÷á ÷ñçóéìïðïéÞóåé ôï -3000 ãéá íá åßìáé óßãïõñïò üôé èá ðÜñù üëåò ôéò ãñáììÝò áðü êÜðïéï ðçãáßï êþäéêá. Êáôåýèõíá ôçí Ýîïäï ôçò egrep óå Ýíá äéáöïñåôéêü partition äßóêïõ- Ýôóé áðÝöõãá íá ãñÜøù ðÜíù áðü ôï ðáëéü ìÞíõìá ðïõ Ýøá÷íá. ÌåôÜ ÷ñçóéìïðïßçóá ôçí åíôïëÞ strings ãéá íá ìå âïçèÞóåé íá åîåôÜóù ôçí Ýîïäï strings /tmp/x | less To email Þôáí ðñáãìáôéêÜ åêåß. ÁõôÞ ç ìÝèïäïò äåí åßíáé ãéá íá âáóéóôåßôå óå áõôÞ, üëïò, Þ ìÝñïò, ôïõ ÷þñïõ ôïõ äßóêïõ ìðïñåß íá Ý÷åé Þäç îáíá÷ñçóéìïðïéçèåß. Áõôü ôï ôñõê åßíáé ðéèáíÜ ÷ñÞóéìï ìüíï óå óõóôÞìáôá ðïõ äïõëåýåé Ýíáò ÷ñÞóôçò. Óå óõóôÞìáôá ðïëëáðëþí ÷ñçóôþí ìå õøçëÞ äñáóôçñéüôçôá äßóêïõ, ï ÷þñïò ðïõ åëåõèåñþóáôå ìðïñåß íá Ý÷åé Þäç ÷ñçóéìïðïéçèåß. Áêüìç ðåñéóóüôåñï, äåí ìðïñïýìå íá ôñáâÜìå ôï ÷áëß êÜôù áðü ôïõò ÷ñÞóôåò ìáò êÜèå öïñÜ ðïõ ÷ñåéáæüìáóôå íá áíáêôÞóïõìå Ýíá áñ÷åßï. Óôï óýóôçìá ðïõ Ý÷ù óðßôé, áõôü ôï ôñõê öÜíçêå âïëéêü óå ôñåéò ðåñßðïõ ðåñéðôþóåéò ôá ôåëåõôáßá ÷ñüíéá - óõíÞèùò üôáí óâÞíù ôõ÷áßá ìåñéêÝò ìÝñåò äïõëåéÜò. Áí ü,ôé äïõëåýù öôÜíåé óå Ýíá óçìåßï üðïõ íéþèù üôé Ý÷ù êÜíåé óçìáíôéêÞ âåëôßùóç, êÜíù áíôßãñáöï áóöáëåßáò óå Ýíá floppy, Ýôóé äå ÷ñåéÜæïìáé áõôü ôï ôñõê êáé ðïëý óõ÷íÜ. [1m3.3. Ðþò íá ÷ñçóéìïðïéÞóåôå ôï óôáèåñü flag. Jim Dennis,[0m [1mjadestar@rahul.net[0m ×ñçóéìïðïéÞóåôå ôï óôáèåñü Flag ÁìÝóùò ìüëéò åãêáôáóôÞóåôå êáé ñõèìßóåôå ôï óýóôçìÜ óáò ðçãáßíåôå óôá /bin, /sbin/, /usr/bin, /usr/sbin êáé /usr/lib (êáé ìåñéêÜ of the other usual suspects êáé êÜíôå ãåííáéüäùñç ÷ñÞóç ôçò 'chattr +i åíôïëÞò'. Åðßóçò ðñïóèÝóôå ôá áñ÷åßá ôïõ ðõñÞíá óôï root. ÊÜíôå 'mkdir /etc/.dist/' áíôéãñÜøôå ôá üëá áðü ôï /etc/ on down (áõôü ôï êÜíù óå äýï âÞìáôá ÷ñçóéìïðïéþíôáò ôï /tmp/etcdist.tar ãéá íá áðïöýãù ôçí áíáäñïìÞ) óå åêåßíï ôïí êáôÜëïãï. (ÐñïáéñåôéêÜ ìðïñåßôå íá äçìéïõñãÞóåôå ôï /etc/.dist.tar.gz) -- êáé íá ôï ìáñêÜñåôå óá óôáèåñü. Ï ëüãïò ãéá üëá áõôÜ åßíáé íá åëáôôþóïõìå ôç æçìéÜ ðïõ ìðïñåß íá ðñïêáëÝóåôå áí ìðåßôå óáí root. Äå èá ãñÜøåôå ðÜíù áðü áñ÷åßá ìå Ýíá ôåëåóôÞ áíáêáôåýèõíóçò (redirection operator) stray, êáé äå èá êÜíåôå ôï óýóôçìá Ü÷ñçóôï ìå Ýíá stray êåíü óå ìéá åíôïëÞ 'rm -fr' (ìðïñåßôå áêüìç íá êÜíåôå ðïëëÝò æçìéÝò óôá äåäïìÝíá óáò -- áëëÜ ïé âéâëéïèÞêåò êáé ôá åêôåëÝóéìá èá åßíáé ðéï áóöáëÞ. Áõôü åðßóçò êÜíåé Ýíá ðëÞèïò ðñïâëçìÜôùí áóöÜëåéáò êáé Üñíçóçò åîõðçñÝôçóçò (denial of service) åßôå áäýíáôï åßôå ðéï äýóêïëï íá äçìéïõñãçèïýí (ìéá êáé ðïëëïß âáóßæïíôáé óôï íá ãñÜøïõí ðÜíù áðü Ýíá áñ÷åßï ìÝóù ôùí ëåéôïõñãéþí êÜðïéïõ ðñïãñÜììáôïò SUID ðïõ *äåí ðáñÝ÷åé ìéá áõèáßñåôç ãñáììÞ åíôïëþí*). Ï ìüíïò ìðåëÜò óå áõôü åßíáé üôáí ÷ôßæåôå ôïí ðõñÞíá êáé êÜíåôå 'make install' óå äéÜöïñá åßäç åêôåëÝóéìùí ôïõ óõóôÞìáôïò. Áðü ôçí Üëëç, åìðïäßæåé åðßóçò ôï 'make install' íá ãñÜöåé ðÜíù áðü ôá áñ÷åßá. ¼ôáí îå÷Üóåôå íá äéáâÜóåôå ôï Makefile êáé íá êÜíåôå chattr -i ôá áñ÷åßá ðïõ ðñüêåéôáé íá ãñáöôïýí áðü ðÜíù (êáé ïé êáôÜëïãïé óôïõò ïðïßïõò èÝëåôå íá ðñïóèÝóåôå áñ÷åßá) -- ôï make áðïôõã÷Üíåé, ÷ñçóéìïðïéåßôå áðëÜ ôçí åíôïëÞ chattr êáé ôï îáíáôñÝ÷åôå. Ìðïñåßôå åðßóçò íá áñðÜîåôå áõôÞ ôçí åõêáéñßá ãéá íá ìåôáöÝñåôå ôá ðáëéÜ óáò bin's, lib's, Þ ïôéäÞðïôå óå Ýíá êáôÜëïãï .old/ Þ íá ôïõ áëëÜîåôå üíïìá Þ íá ôá êÜíåôå tar Þ üôé Üëëï. [1m3.4. Jim Dennis, jadestar@rahul.net Ìéá ðñüôáóç ãéá ôï ðïý íá[0m [1môïðïèåôÞóåôå íÝá áñ÷åßá.[0m ¼ëá ôá íÝá áñ÷åßá ìðáßíïõí êÜôù áðü ôï /usr/local! Þ /usr/local/`hostname` Áí ç äéáíïìÞ óáò áöÞíåé ôï /usr/local Üäåéï ôüôå äçìéïõñãÞóôå ôï /usr/local/src, /usr/local/bin êëð. êáé ÷ñçóéìïðïéÞóôå ôá. Áí ç äéáíïìÞ óáò åãêáèéóôÜ ðñïãñÜììáôá óôï äÝíäñï /usr/local ôüôå ìðïñåß íá èÝëåôå íá êÜíåôå 'mkdir /usr/local/`hostname`' êáé íá äþóåôå ôï 'wheel' group +w óå áõôü (ôï êÜíù åðßóçò SUID êáé SGID ãéá íá åîáóöáëßóù üôé êÜèå ìÝëïò ôïõ wheel group ìðïñåß íá áíáêáôåýåôáé ìå ôá äéêÜ ôïõ áñ÷åßá áðü åêåß êáé êÜôù, êáé üôé üëá ôá áñ÷åßá ðïõ äçìéïõñãÞèçêáí èá áíÞêïõí óôï 'wheel' group. Ôþñá ðåéèáñ÷Þóôå ôïí åáõôü óáò êáé *ÐÁÍÔÁ! ÐÁÍÔÁ! ÐÁÍÔÁ!* âÜëôå ôá íÝá ðáêÝôá êÜôù áðü ôï /usr/local/src/.from/$ÏÐÏÕ_ÔÁ_ÅÂÁ¨Á/ (ãéá ôá .tar Þ ïðïéáäÞðïôå áñ÷åßá) êáé ÷ôßóôå ôá êÜôù áðü ôï /usr/local/src (Þ .../$HOSTNAME/src). Óéãïõñåõôåßôå üôé åãêáèßóôáôáé êÜôù áðü ôçí ôïðéêÞ éåñáñ÷ßá. Áí *ðñÝðåé õðï÷ñåùôéêÜ* íá åãêáôáóôáèåß ðßóù óôï /bin Þ /usr/bin Þ êÜðïõ áëëïý -- âÜëôå Ýíá symlink áðü ôçí ôïðéêÞ éåñáñ÷ßá óå êÜèå óôïé÷åßï ôïõ áðü íá ôï âÜëåôå ïðïõäÞðïôå áëëïý. Ï ëüãïò ãé' áõôü -- áêüìç êé áí áðáéôåß ðåñéóóüôåñç äïõëåéÜ -- åßíáé üôé âïçèÜ íá áðïìïíþóåôå ü,ôé ðñÝðåé íá ãßíåé áíôßãñáöï áóöáëåßáò êáé restore Þ íá îáíáåãêáôáóôçèåß óå ðåñßðôùóç ðëÞñïõò åðáíåãêáôÜóôáóçò áðü ôá distribution media (óõíÞèùò CD óôéò ìÝñåò ìáò). ×ñçóéìïðïéþíôáò ôï /usr/local/.from directory ìðïñåßôå íá êñáôÞóåôå Ýíá áíåðßóçìï çìåñïëüãéï (log) áðü ðïõ ðñïÝñ÷ïíôáé ïé ðçãáßïé êþäéêåò -- ôï ïðïßï âïçèÜåé üôáí øÜ÷íåôå ãéá íÝåò áíáâáèìßóåéò -- êáé ìðïñåß íá åßíáé ðïëý áðïöáóéóôéêü üôáí êÜíåôå monitore ôéò ëßóôåò áíáêïéíþóåùí ó÷åôéêÜ ìå áóöÜëåéá. Å-íá áðü ôá óõóôÞìáôÜ ìïõ óôï óðßôé (áõôü áðü ôï ïðïßï ìå ôï ïðïßï êÜíù êáé ôéò óõíäÝóåéò ìïõ) óõíáñìïëïãÞèçêå ðñéí íá õéïèåôÞóù áõôÞ ôçí ôáêôéêÞ ãéá ôïí åáõôü ìïõ. Áêüìç äå "ãíùñßæù" üëåò ôéò äéáöïñÝò áðü ôï óýóôçìá ðïõ áöÞíåôáé "üðùò åãêáôáóôÜèçêå". Áõôü åßíáé ðáñÜ ôï ãåãïíüò üôé Ý÷ù êÜíåé ðïëý ëßãåò ñõèìßóåéò óôï óýóôçìá ôïõ óðéôéïý ìïõ êáé åßìáé ôï *ìüíï* Üôïìï ðïõ ôï ÷ñçóéìïðïéåß. Áíôßèåôá, ôá óõóôÞìáôá ðïõ Ý÷ù óôÞóåé óôç äïõëåéÜ (üôáí áðÝêôçóá åêåß ôï ñüëï ôïõ äéá÷åéñéóôÞ óõóôÞìáôïò) Ý÷ïõí üëá ñõèìéóôåß ìå áõôüí ôïí ôñüðï -- Ý÷ïõí äéá÷åéñéóôåß áðü ðïëëïýò áíÜäï÷ïõò êáé Üëëïõò áíèñþðïõò ôïõ MIS, êáé Ýêáíáí Ýíá ìåãÜëï áñéèìü áíáâáèìßóåùí êáé åãêáôáóôÜóåùí ðáêÝôùí. ¸÷ù ìéá ðïëý êáëÞ éäÝá ãéá ôï ðïéá áêñéâÞ óôïé÷åßá ôïðïèåôÞèçêáí óôï óýóôçìá *ìåôÜ* ôçí áñ÷éêÞ åãêáôÜóôáóç êáé ñýèìéóç. [1m3.5. ÌåôáôñÝøôå üëá ôá ïíüìáôá ôùí áñ÷åßùí åíüò êáôáëüãïõ óå ìéêñÜ[0m [1mãñÜììáôá. Justin Dossey, dossey@ou.edu[0m ÐáñáôÞñçóá ìåñéêÝò õðåñâïëéêÜ äýóêïëåò Þ ìç áðáñáßôçôåò äéáäéêáóßåò ðïõ ðñïôåßíïíôáé óôï ôìÞìá 2c tips ôïõ ôåý÷ïõò 12. Ìéá êáé åßíáé ðåñéóóüôåñåò áðü ìßá, ôéò óôÝëíù óå óÝíá: ______________________________________________________________________ #!/bin/sh # lowerit # convert all file names in the current directory to lower case # only operates on plain files--does not change the name of directories # will ask for verification before overwriting an existing file for x in `ls` do if [ ! -f $x ]; then continue fi lc=`echo $x | tr '[A-Z]' '[a-z]'` if [ $lc != $x ]; then mv -i $x $lc fi done ______________________________________________________________________ Ùð, áõôü åßíáé ìåãÜëï script. Äå èá Ýãñáöá ôÝôïéï script ãéá íá êÜíù áõôü. Áíôßèåôá, èá ÷ñçóéìïðïéïýóá áõôÞ ôçí åíôïëÞ: for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`; done; óôç ãñáììÞ åíôïëþí. Ï Üíèñùðïò ðïõ Ýêáíå áõôÞ ôç óõíåéóöïñÜ, ëÝåé üôé Ýãñáøå ôï script ìå áõôü ôïí ôñüðï þóôå íá åßíáé êáôáíïçôü (äåßôå ðáñáêÜôù). Óôçí åðüìåíç õðüäåéîç, áõôÞ ó÷åôéêÜ ìå ôçí ðñïóèÞêç êáé äéáãñáöÞ ÷ñçóôþí, ï Geoff ôá ðÜåé ìéá ÷áñÜ ìÝ÷ñé ôï ôåëåõôáßï âÞìá. Åðáíåêêßíçóç; Ù÷, åëðßæù íá ìç ÷ñåéÜæåôáé åðáíåêêßíçóç ôïõ óõóôÞìáôïò êÜèå öïñÜ ðïõ äéáãñÜöåé Ýíá ÷ñÞóôç. Ï,ôé ÷ñåéÜæåôáé íá êÜíåôå åßíáé ôá äýï ðñþôá âÞìáôá. Ôé åßäïõò äéåñãáóßåò èá Ý÷åé áöÞóåé ï ÷ñÞóôçò, Üëëùóôå; ¸íá irc bot; Óêïôþóôå ôéò äéáäéêáóßåò áðëÜ ìå ôçí kill -9 `ps -aux |grep ^<username> |tr -s " " |cut -d " " -f2` ÐáñÜäåéãìá, ôï username åßíáé foo kill -9 `ps -aux |grep ^foo |tr -s " " |cut -d " " -f2` Ôþñá ðïõ öñïíôßóáìå êé áõôü, áò ðñï÷ùñÞóïõìå óôï îå÷áóìÝíï êùäéêü ôïõ root. Ç ëýóç ðïõ äßíåôáé óôï Gazette åßíáé ç ðéï êïéíÞ, áëëÜ ü÷é êáé ç ðéï åýêïëç. Ìå ôï LILO êáé ôï loadlin, ìðïñåßôå íá äþóåôå ôçí ðáñÜìåôñï ãéá boot óå ðåñéâÜëëïí åíüò ÷ñÞóôç (single) ãéá áõôüìáôç åêêßíçóç óôï ðñïêáèïñéóìÝíï shell ÷ùñßò login Þ password prompt. Áðü åêåß, ìðïñåßôå íá áëëÜîåôå Þ íá áöáéñÝóåôå passwords ðñéí íá ãñÜøåôå "init 3" íá îåêéíÞóåôå óå êáôÜóôáóç ðïëëáðëþí ÷ñçóôþí (multiuser mode). Áñéèìüò ÅðáíåêêéíÞóåùí: 1 Ìå ôïí Üëëï ôñüðï Áñéèìüò ÅðáíåêêéíÞóåùí: 2 Justin Dossey [1m3.6. Jim Dennis, jadestar@rahul.net ÌåñéêÝò õðïäåßîåéò ãéá íÝïõò[0m [1msysadmins.[0m ÄçìéïõñãÞóôå êáé óõíôçñÞóôå Ýíá /README.`hostname` êáé/Þ Ýíá /etc/README.`hostname` [4m[Ç[24m [4mðéèáíÜ[24m [4m/usr/local/etc/README.`hostname`[0m [4m-Maint.[24m [4m][0m ÏðùóäÞðïôå, êñáôÞóôå óçìåéþóåéò áðü *ôçí ðñþôç ìÝñá* ôçò äéá÷åßñéóçò ôïõ óõóôÞìáôïò óå Ýíá online log áñ÷åßï. Ìðïñåßôå íá öôéÜîåôå Ýíá vi /README.$(hostname). Ìéá ãñáììÞ óôï áñ÷åßï ôïõ root /bash_logout. ¸íáò Üëëïò ôñüðïò íá ôï êÜíåôå áõôü åßíáé íá ãñÜøåôå su Þ Ýíá sudo script ðïõ êÜíåé êÜôé óáí ôï ðáñáêÜôù: function exit \ { unset exit; exit; \ cat ~/tmp/session.$(date +%y%m%d) \ >> /README.$(hostname) && \ vi /README.$(hostname) } script -a ~/tmp/session.$(date +%y%m%d) /bin/su.org - (÷ñçóéìïðïéÞóôå ôçí åíôïëÞ typescript ãéá íá äçìéïõñãÞóôå Ýíá session log êáé äçìéïõñãÞóôå ìéá óõíÜñôçóç ðïõ èá ðñïóèÝôåé êáé èá åíçìåñþíåé áõôüìáôá ôï log). ÐáñáäÝ÷ïìáé üôé äåí Ý÷ù õëïðïéÞóåé áõôü ôçí ðïëéôéêÞ áõôüìáôçò åíçìÝñùóçò -- Ý÷ù âáóéóôåß ùò ôþñá óôçí áõôïðåéèáñ÷ßá ìïõ ùò ôþñá. ÐáñüëáõôÜ, Ý÷ù ðáßîåé ìå áõôÞ ôçí éäÝá (ìÝ÷ñé ôï óçìåßï íá öôéÜîù Ýíá ðñüôõðï äåßãìá (prototype) ôùí scripts êáé ôùí shell óõíáñôÞóåùí üðùò ôéò âëÝðåôå). ¸íá ðñÜãìá ðïõ ìå êñáôÜåé åßíáé ç ßäéá ç 'script' åíôïëÞ. Íïìßæù üôé èá ðñÝðåé íá ðÜñù ôïí êþäéêá êáé íá ðñïóèÝóù äõï ðáñáìÝôñïõò óôç ãñáììÞ åíôïëþí (ãéá íá äéáêüðôù/óôáìáôþ ôï script íá êáôáãñÜöåé áðü ôç ãñáììÞ åíôïëþí) ðñéí íá äåóìåõôþ üôé èá ôï ÷ñçóéìïðïéþ). Ç ôåëåõôáßá ìïõ ðñüôáóç (ãé' áõôü ôï ãýñï): Ôï path ôïõ Root èá ðñÝðåé íá ðåñéÝ÷åé ôï 'PATH= /bin' ÁõôÜ êáé ôßðïôá Üëëï óôï path ôïõ root. Ï,ôé êÜíåé ï root ðáñÝ÷åôáé áðü Ýíá symlink áðü ôï /bin Þ áðü Ýíá alias Þ shell ñïõôßíá, Þ åßíáé Ýíá script Þ Ýíá åêôåëÝóéìï óôï /bin, Þ ãñÜöåôáé ìå ôï ðëÞñåò path. Áõôü êÜíåé ôïí êáèÝíá ðïõ ôñÝ÷åé óáí root íá ãíùñßæåé (ìåñéêÝò öïñÝò åðþäõíá) ðüóï åìðéóôåýåôáé ôá åêôåëÝóéìá. Ï ãíùóôéêüò admin åíüò host ðïëëþí ÷ñçóôþí èá êïéôÜåé ðåñéïäéêÜ ìÝóù ôïõ äéêïý ôïõ /bin êáé ôùí áñ÷åßùí /.*history øÜ÷íïíôáò patterns êáé ðáñÜèõñá. Ï ðñáãìáôéêÜ äñáóôçñéïðïéçìÝíïò admin èá åíôïðßóåé áêïëïõèßåò ðïõ ìðïñïýí íá áõôïìáôïðïéçèïýí, ìÝñç óôá ïðïßá Ýëåã÷ïé ìðïñïýí/ðñÝðåé íá åéóá÷èïýí , êáé äéáäéêáóßåò ãéá ôéò ïðïßåò "root" ôá äéêáéþìáôá èá ðñÝðåé íá áðïöåõ÷èïýí ðñïóùñéíÜ (ç åêôÝëåóç äéáöüñùí åðåîåñãáóôþí, MTA's êáé Üëëá ìåãÜëá äéáëïãéêÜ (interactive) ðñïãñÜììáôá ìå ðåñßðëïêá ÷áñáêôçñéóôéêÜ scripting ôá ïðïßá *ìðïñåß* íá åíóùìáôùèïýí óå äéáöáíÞ áñ÷åßá Þ áñ÷åßá äåäïìÝíùí -- üðùò ôï áéó÷ñü vi ./.exrc êáé ôï emacs ./.emacs êáé ôï áêüìç ðåñéóóüôåñï ýðïõëï $EXINIT êáé ïé åíóùìáôùìÝíåò ìáêñïåíôïëÝò åðéêåöáëßäùí (header/footer macros)). ÖõóéïëïãéêÜ ïé åíôïëÝò áõôïý ôïõ ôýðïõ ìðïñïýí íá ôñÝîïõí ìå êÜôé óáí: cp $data $some_users_home/tmp su -c $origcommand $whatever_switches cp $some_users_home/tmp $data (...üðïõ ïé ëåðôïìÝñåéåò åîáñôþíôáé áðü ôçí åíôïëÞ). ÁõôÝò ïé ôåëåõôáßåò êõñßùò ðñïöõëÜîåéò õðåñâïëéêÝò ãéá ôï óðßôé Þ ôï "single" óôáèìü åñãáóßáò ôïõ ÷ñÞóôç -- áëëÜ åßíáé ðïëý êáëÞ ôáêôéêÞ ãéá ôç äéá÷åßñéóç åíüò óõóôÞìáôïò ðïëëáðëþí ÷ñçóôþí -- åéäéêÜ ãéá Ýíá óýóôçìá äçìüóéá åêôåèåéìÝíï (üðùò áõôü óôï netcom). [1m3.7. Ðþò íá ñõèìßóåôå ôï xdm's chooser ãéá åðéëïãÞ host. Arrigo Tri-[0m [1mulzi, a.triulzi@ic.ac.uk[0m 1. Åíçìåñþóôå ôï áñ÷åßï ðïõ öïñôþíåé ôï xdm ðïëý ðéèáíÜ ôï /etc/rc/rc.6 Þ /etc/rc.local) Ýôóé þóôå íá ðåñéÝ÷åé ôéò ðáñáêÜôù ãñáììÝò óôï ôìÞìá åêêßíçóçò ôïõ xdm. /usr/bin/X11/xdm exec /usr/bin/X11/X -indirect hostname 2. Áíïßîôå ôï /usr/lib/X11/xdm/Xservers êáé âÜëôå óå ó÷üëéá ôç ãñáììÞ ðïõ îåêéíÜ ôï server óôï ôïðéêü ìç÷Üíçìá (ð.÷. îåêéíþíôáò ìå 0:) 3. ÅðáíåêêéíÞóôå ôï ìç÷Üíçìá êáé you're home and away. Áõôü ôï ðñüóèåóá üôáí ðñïóðáèïýóá áðåãíùóìÝíá íá ôï åãêáôáóôÞóù ãéá ôï äéêü ìïõ subnet åäþ ÷ñåéÜóôçêå ðåñßðïõ ìéá âäïìÜäá ãéá íá êáôåõíÜóù üëá ôá ðñïâëÞìáôá. Ðñïåéäïðïßçóç: ìå ôï ðáëéü SLS (1.1.1) ãéá êÜðïéï ëüãï ìðïñåßôå íá áöÞóôå Ýíá -nodaemon ìåôÜ ôç ãñáììÞ xdm -- áõôü [1mÄÅ [22mäïõëåýåé ãéá ìåôáãåíÝóôåñåò åêäüóåéò. [1m3.8. Ðåñß ôçò ÅëëçíéêÞò ÌåôÜöñáóçò[0m Ãéá ó÷üëéá, ðáñáôçñÞóåéò, äéïñèþóåéò, åíçìåñþóåéò ðåñß ôçò ÅëëçíéêÞò ìåôÜöñáóçò áõôïý ôïõ HOWTO, óôåßëôå email óôçí Âïýëá ÓáíéäÜ : voulariba@hellug.gr Þ óôïí Åõñéðßäç Ðáðáêþóôá : evris@hellug.gr êáé åíáëëáêôéêÜ : ep@rocketmail.com