Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc."

Transcript

1 Τα θεμελιώδη του Slackware Linux

2 Slackware Linux Essentialsσ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc. All rights reserved Published by Slackware Linux, Inc., 1164 Claremont Drive, Brentwood, CA Lead Author, Second Edition: Alan Hicks. Editors, Second Edition: Murray Stokely and FuKang Chen. Authors, First Edition: Chris Lumens, David Cantrell, and Logan Johnson. Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, Inc. Linux is a registered trademark of Linus Torvalds. America Online and AOL are registered trademarks of America Online, Inc. in the United States and/or other countries. Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both. IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States. Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Microsoft, IntelliMouse, MS DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries. Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries. XFree86 is a trademark of The XFree86 Project, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and Slackware Linux, Inc. was aware of the trademark claim, the designations have been followed by the TM or the symbol. ISBN:

3 ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1 Εισαγωγή 1 Εισαγωγή στο Slackware Linux 1.1 Τί είναι το Linux; Ο κόσμος του GNU 1.2 Τί είναι το Slackware 1.3 Ελεύθερο και Ανοιχτού Κώδικα λογισμικό Κεφάλαιο 2 Βοήθεια και υποστήριξη 2.1 Βοήθεια συστήματος Η εντολή man Ο φάκελος /usr/doc Τεκμηριώσεις (HOWTOs) 2.2 Βοήθεια στο διαδίκτυο Επίσημη ιστοσελίδα και φόρουμ Ηλεκτρονικό ταχυδρομείο Λίστες αλληλογραφίας Ανεπίσημες ιστοσελίδες και φόρουμ Ιστοσελίδες Πηγές στο διαδίκτυο Κεφάλαιο 3 Εγκατάσταση 3.1 Προμηθεύοντας το Slackware Τα επίσημα CD Μέσω διαδικτύου 3.2 Απαιτήσεις συστήματος Σειρές λογισμικού Τρόποι εγκατάστασης Δισκέτα CD ROM NFS

4 3.2.3 Δισκέτα εκκίνηση Root disk Συμπληρωματική δισκέτα Δημιουργώντας τις δισκέτες 3.3 Κατάτμηση δίσκου 3.4 Το πρόγραμμα εγκατάστασης HELP KEYMAP ADDSWAP TARGET SOURCE SELECT INSTALL CONFIGURE Επιλογή πυρήνα Δημιουργώντας δισκέτα εκκίνησης Modem Τοπικές ρυθμίσεις Ποντίκι Ρολόι του υπολογιστή Γραμματοσειρές LILO Δίκτυο Διαχειριστής Παραθύρων Χ (X Window Manager) Κεφάλαιο 4 Ρυθμίσεις συστήματος 4.1 Περιληπτική ματιά Δομή φακέλων συστήματος Εύρεση φακέλων και αρχείων which whereis find

5 slocate Ο φάκελος /etc/rc.d 4.2 Επιλέγοντας τον Πυρήνα Ο φάκελος /kernels Μεταγλώττιση του Πυρήνα Μεταγλώτιση πυρήνα 2.4.x Μεταγλώτιση πυρήνα 2.6.x M ονάδες Πυρήνα Κεφάλαιο 5 Ρυθμίσεις δικτύου 5.1 Εισαγωγή: το netcofnig είναι φίλος μας 5.2 Ρυθμίζοντας το υλικό δικτύου Μονάδες δικτύου Τοπικό Δίκτυο LAN Modems PCMCIA 5.3 Ρυθμίσεις TCP/IP 5.4 PPP DHCP Στατική IP /etc/rc.d/rc.inet1.conf /etc/resolv.conf /etc/hosts Ρυθμίσεις PPP /etc/ppp 5.5 Ασύρματο δίκτυο Υποστήριξη υλικού Ιδιότητες του ασύρματου δικτύου Ρυθμίζοντας το δίκτυο

6 5.6 Σύστημα αρχείων δικτύου SMB/Samba/CIFS Network File System (NFS) Κεφάλαιο 6 X Windows 6.1 xorgconfig 6.2 xorgsetup 6.3 xinitrc 6.4 xwmconfig 6.5 xdm Κεφάλαιο 7 Εκκίνηση 7.1 LILO 7.2 LOADLIN 7.3 Διπλή εκκίνηση Windows Χρησιμοποιώντας LILO Χρησιμοποιώντας Loadlin Σενάριο επέμβασης σε Windows NT Linux Κεφάλαιο 8 Το Κέλυφος 8.1 Χρήστες Κάνοντας Logging Root: ο Υπερχρήστης 8.2 Γραμμή εντολών Τρέχοντας προγράμματα Ταιριάζοντας χαρακτήρες Ανακατεύθυνση και διασύνδεση 8.3 Το κέλυφος Bourne Again Shell Μεταβλητές περιβάλλοντος Συμπλήρωση με TAB

7 8.4 Εικονικά τερματικά Η οθόνη Κεφάλαιο 9 Δομή αρχείων 9.1 Ιδιοκτησία Ownership 9.2 Άδειες Permissions 9.3 Σύνδεσμοι Links 9.4 Προσαρτίζοντας συσκευές Mounting devices fstab mount και umount 9.5 NFS mounts Κεφάλαιο 10 Φάκελοι και κατάλογοι 10.1 Πλοήγηση: ls, cd και pwd ls cd pwd 10.2 Σελιδοποίηση: more, less και most more less most 10.3 Απλή Έξοδος: cat και echo cat echo 10.4 Δημιουργία: touch και mkdir touch mkdir 10.5 Αντιγραφή και μετακίνηση cp mv 10.6 Διαγραφή: rm και rmdir rm rmdir

8 10.7 Συνδέοντας φακέλους με το το ln Κεφάλαιο 11 Διαχείριση εργασιών 11.1 Εργασίες στο παρασκήνιο 11.2 Εργασίες στο προσκήνιο 11.3 ps 11.4 kill 11.5 top Κεφάλαιο 12 Βασική διαχείριση συστήματος 12.1 Χρήστες και Ομάδες Παρέχοντας άδειες Αλλαγή κωδικού Αλλαγή πληροφοριών χρήστη 12.2 Χρήστες και Ομάδες: ο δύσκολος τρόπος 12.3 Τερματίζοντας σωστά τον υπολογιστή Κεφάλαιο 13 Βασικές εντολές δικτύου 13.1 ping 13.2 traceroute 13.3 Εργαλεία DNS host nslookup dig 13.4 finger 13.5 telnet Η άλλη χρήση του telnet 13.6 Το Ασφαλές Κέλυφος SSH 13.7 E Mail pine elm mutt

9 nail 13.8 Φυλλομετρητές lynx links wget 13.9 FTP Clients ftp ncftp Συνομιλώντας με άλλους wall talk ytalk Κεφάλαιο 14 Ασφάλεια 14.1 Απενεργοποιώντας υπηρεσίες Υπηρεσίες στο το inetd Υπηρεσίες στο init script 14.2 Host Access Control iptables tcpwrappers 14.3 Κρατώντας το σύστημα ενήμερο Η λίστα επαφών Ο φάκελος /patches Κεφάλαιο 15 Ταξιθετημένα και συμπιεσμένα αρχεία 15.1 gzip 15.2 bzip tar 15.4 zip

10 Κεφάλαιο 16 Ο κειμενογράφος Vi 16.1 Ξεκινώντας τον Vi 16.2 Οι καταστάσεις του Vi (Modes) Κατάσταση εντολών Command Mode Κατάσταση εισαγωγής Insert Mode 16.3 Ανοίγοντας αρχεία 16.4 Σώζοντας αρχεία 16.5 Έξοδος από τον Vi 16.6 Ρυθμίσεις του Vi 16.7 Πλήκτρα του Vi Κεφάλαιο 17 Ο κειμενογράφος Emacs 17.1 Ξεκινώντας τον Emacs Πλήκτρα εντολών 17.2 Buffers 17.3 Modes Ανοίγοντας αρχεία 17.4 Βασικές συντομεύσεις πλήκτρων 17.5 Σώζοντας αρχεία Έξοδος από τον Emacs Κεφάλαιο 18 Διαχείριση πακέτων του Slackware 18.1 Τύπος των πακέτων 18.2 Εργαλεία πακέτων pkgtool installpkg removepkg upgradepkg rpm2tgz/rpm2targz

11 18.3 Εγκαθιστώντας πακέτα explodepkg makepkg SlackBuild Scripts 18.4 Δημιουργώντας Tags και Tagfiles Κεφάλαιο 19 Το ZipSlack 19.1 Τι είναι το ZipSlack Προτερήματα Μειονεκτήματα

12 Κεφάλαιο 1: Εισαγωγή στο Slackware Linux 1.1 Τι είναι το Linux; Ο Linus Torvalds ξεκίνησε το Linux, ένας πυρήνας λειτουργικού συστήματος, σαν μια προσωπική εργασία το Ξεκίνησε την εργασία αυτή γιατί ήθελε να τρέχει ένα λειτουργικό σύστημα βασισμένο στο Unix δίχως να ξοδέψει πολλά χρήματα. Επιπλέον, ήθελε να μάθει τα θετικά και τα αρνητικά του επεξεργαστή 386. Το Linux κυκλοφόρησε δωρεάν ούτως ώστε να μπορεί ο καθένας να το μελετήσει και να το βελτιώσει κάτω από την Γενική Δημόσια Άδεια (GNU - General Public License). Σήμερα, το Linux έχει γίνει ένα από τα ισχυρότερα λειτουργικά συστήματα της αγορά. Σε αυτό βοηθάει και το ότι μπορεί να τρέχει σε υπολογιστές διαφορετικής αρχιτεκτονικής όπως HP/Compaq Alpha, SPARC, PowerPC και άλλα. Εκατοντάδες, εάν όχι χιλιάδες, προγραμματιστές από όλο τον κόσμο αναπτύσουν σήμερα το Linux. Το Linux τρέχει εφαρμογές όπως Sendmail, Apache και BIND, οι οποίες είναι καθιερωμένες εφαρμογές για Internet Servers. Είναι σημαντικό να γνωρίζουμε πως το όρος Linux έχει να κάνει με τον Πυρήνα του λειτουργικού συστήματος. Ο Πυρήνας είναι υπεύθυνος για τον έλεγχο του επεξεργαστή, της μνήμης, των σκληρών δίσκων και των περιφερειακών. Αυτό κάνει το Linux: ελέγχει τη λειτουργία του υπολογιστή και εποπτεύει τη λειτουργία όλων των προγραμμάτων. Διάφορες εταιρείες, αλλά και μεμονωμένα άτομα, ενοποιούν τον πυρήνα και διάφορα προγράμματα προκειμένου να δημιουργήσουν ένα λειτουργικό σύστημα. Από αυτή την ενοποίηση έχουμε και τις διάφορες διανομές του Linux O κόσμος του GNU Όπως είπαμε και προηγουμένως το Linux ξεκίνησε ως προσωπική εργασία του Linus Torvals το 1991, αλλά όπως είχε πει κάποτε ο Νεύτωνας, "εάν είχα δει πιο μπροστά, θα συνειδητοποιούσα πως ήταν σα να βρίσκομαι στις πλάτες ενός γίγαντα". Ο Λίνους Τόρβαλντς όταν ξεκίνησε το πυρήνα, η Εταιρεία Ελεύθερου Λογισμικού (Free Software Foundation) είχε ήδη δημιουργήσει την ιδέα του συνεργάσιμου λογισμικού. Ο τίτλος που δώσανε σε αυτό ήταν GNU. Ένα απλό ακρωνύμιο το οποίο σημαίνει "GUN's Not Unix", to GNU δεν είναι Unix. Το λογισμικό του GNU έτρεχε στο πυρήνα του Linux από την πρώτη ημέρα στιγμή και αυτό γιατί ο μεταγλωττιστής gcc είχε χρησιμοποιηθεί για να μεταγλωττίσει τον Πυρήνα. Σήμερα, πολλά από τα εργαλεία του GNU, από το gcc μέχρι και το guntar, είναι τα βασικά σε κάθε διανομή του Linux. Γι' αυτό το λόγο, πολλοί από του συμμετέχοντες στην Εταρεία Ελεύθερου Λογισμικού δήλωσαν πως η δουλειά τους θα πρέπει να έχει την ίδια αξία με αυτή του πυρήνα του Linux. Πρότειναν μάλιστα ότι όλες οι διανομές Linux θα πρέπει να αποκαλούνται GNU/Linux. Αυτό είναι κιόλας το θέμα για αρκετές διαμάχες όπως αυτές μεταξύ του vi και του emacs. Η ύπαρξη αυτού του βιβλίου δεν είναι σε καμία περίπτωση να ρίξει λάδι στη φωτιά, αλλά να

13 ξεκαθαρίσει τους όρους στους νέους του χώρου. Όταν κάποιος βλέπει κάπου GNU/Linux, αυτό σημαίνει πως είναι μία διανομή Linux. Όταν κάπου βλέπει Linux τότε μπορεί το Linux να αναφέρετε τόσο στο πυρήνα ξεχωριστά, όσο και σε διανομή. Η αλήθεια είναι ότι μπορεί να μπερδευτεί κάποιος αλλά ο όρος GNU/Linux δε χρησιμοποιείται για λόγους συντομίας. 1.2 Τί είναι το Slackware; Το Slackware ξεκίνησε τα τέλη του 1992 από τον Patrick Volkerding και κυκλοφόρησε για πρώτη φορά στις 17 Ιουλίου του 1993 και ήταν έγινε η πιο διαδεδομένη διανομή Linux O Volkerding γνώρισε για πρώτη φορά το Linux όταν χρειάστηκε έναν φθηνό ερμηνευτή της LISP για κάποια εργασία. Μια από τις διαθέσιμες διανομές τότε ήταν το SLS Linux της Soft Landing Systems. Τελικά, αποφάσισε να συνδέσει τα διάφορα κομμάτια (εφαρμογές) και να δημιουργήσει τη δική του διανομή ώστε οι φίλου του και αυτός θα μπορούν να τη χρησιμοποιούν. Αυτή η προσωπική διανομή όμως έγινε γνωστή και διαδόθηκε γρήγορα και έτσι ο Volkerding έδωσε ένα όνομα σε αυτή, Slackware. Καθώς περνούσε ο καιρός, ο Volkerding πρόσθετε όλο και νέες δυνατότητες στο Slackware όπως το φιλικό προς τον χρήστη περιβάλλον εγκατάστασης, βασισμένο σε ένα σύστημα με μενού. Επίσης την η ιδέα της διαχείρισης πακέτων η οποία επιτρέπει στους χρήστες να προσθέσουν, να αφαιρέσουν και να αναβαθμίσουν πακ εφαρμογών στα συστήματά τους. Υπάρχουν πολλοί λόγοι για τους οποίους το Slackware είναι η παλαιότερη εν ζωή διανομή Linux. Δε προσπαθεί σε καμία περίπτωση να μοιάσει στα Windows αλλά αντιθέτως προσπαθεί να είναι όσο το δυνατόν πιο κοντά στο Unix. Δε προσπαθεί να καλύψει τις διάφορες εργασίες με κάποιον εντυπωσιακό τρόπο αλλά δίνει τη δυνατότητα στο χρήστη να πάρει ο ίδιος τον έλεγχο και να δει τι ακριβώς γίνεται στο σύστημα. Επίσης, η ανάπτυξή του δεν έχει κάποιο χρονοδιάγραμμα καθώς η κάθε νέα έκδοση κυκλοφορεί κάθε φορά που αυτή είναι έτοιμη. Το Slackware είναι γι' αυτούς που θέλουν να γνωρίσουν το σύστημα τους και που τους αρέσει επίσης να το πειράζουν από εδώ κι από εκεί για να κάνουν αυτό που ακριβώς θέλουν. Η σταθερότητα και η απλότητα που προσφέρει το Slackware είναι οι παράγοντες που θα το κάνουν να χρησιμοποιείται και τα επόμενα χρόνια. Το τελευταίο καιρό, το Slackware χρησιμοποιείται σε server με τη σταθερότητα που προσφέρει όπως επίσης και σε προσωπικούς υπολογιστές των οποίων οι χρήστες θέλουν κάτι περισσότερο από ένα απλό λειτουργικό σύστημα. Μπορεί κάποιος να δει το Slackware να χρησιμοποιείται με κάθε λογής διαχειριστή παραθύρων και περιβάλλον εργασίας ή και με κανένα απολύτως! Το Slackware ως server προσφέρει τα περισσότερα δυνατά που θα μπορούσε κάποιο λειτουργικό να προσφέρει. Επίσης, οι χρήστες του Slackware θεωρούνται από τους πιο ευχαριστημένος χρήστες του Linux. Βεβαίως εμείς θα το λέγαμε αυτό :)

14 1.3 Ελεύθερο Λογισμικό και Λογισμικό Ανοιχτού Κώδικα Μέσα στη κοινότητα του Linux υπάρχουν δύο κύρια ιδεολογικά κινήματα. Αυτό του Ελεύθερου Λογισμικού το οποίο έχει ως σκοπό να κάνει όλο το λογισμικό ελεύθερο από τους περιορισμούς των πνευματικών δικαιωμάτων. Οι ακόλουθοι αυτού του κινήματος θεωρούν πως αυτοί οι περιορισμοί επιβραδύνουν τη τεχνική ανάπτυξη και είναι αρνητικό απέναντι στη κοινότητα. Το κίνημα του Λογισμικού Ανοιχτού Κώδικα βαδίζει στα ίδια σχεδόν βήματα αλλά έχει μια πιο ρεαλιστική άποψη των πραγμάτων. Οι ακόλουθοι αυτού του κινήματος βασίζουν τα επιχειρήματα τους στα οικονομικά και τεχνικά προτερήματα του να υπάρχει λογισμικό ανοιχτού κώδικα, σε αντίθεση με τους ακολούθους του ελεύθερου λογισμικού που βασίζονται σε ηθικές αρχές. Υπάρχει όμως και η άλλη πλευρά η οποία επιθυμεί να κάνει του κανόνες ακόμα πιο σκληρούς όσον αφορά το λογισμικό της. Το κίνημα του Ελεύθερου Λογισμικού κατευθύνεται και ηγείται από την Εταιρεία Ελεύθερου Λογισμικού η οποία χορηγεί επίσης και το GNU project. To ελεύθερο λογισμικό είναι περισσότερο ιδεολογικό και μια συνηθισμένη φράση είναι ελευθερία στο λόγο αλλά όχι τόσο όσο στη μπύρα". Ουσιαστικά, το κίνημα ελεύθερου λογισμικού προσπαθεί να διασφαλίσει δικαιώματα τόσο για τους χρήστες όσο και για τους προγραμματιστές. Αυτά τα δικαιώματα περιλαμβάνουν την ελευθερία του να χρησιμοποιεί κάποιος ένα πρόγραμμα για οποιοδήποτε λόγο. Για μελέτη και αλλαγή του πηγαίου κώδικα, για αναδιανομή του κώδικα και βεβαίως για να μοιραστεί τις αλλαγές τις οποίες έχει κάνει. Προκειμένου να διασφαλίσει αυτές τις ελευθερίες θεσπίστηκε το GNU General Public License (GPL) - Γενική Δημόσια Χρήση. H GPL λοιπόν παρέχει τη δυνατότητα στον καθένα να να διανέμει οποιαδήποτε πρόγραμμα το οποίο είναι κατοχυρωμένο από τη GPLαρκεί να διαθέτει μαζί το πηγαίο κώδικα και μπορούν να γίνουν οποιεσδήποτε αλλαγές στον κώδικα όσο αυτές γίνονται διαθέσιμες με τον υπόλοιπο κώδικα. Αυτό σημαίνει ότι από τη στιγμή που το πρόγραμμα είναι ανοιχτό στη κοινότητα τότε αυτό δε μπορεί να αποσυρθεί παρά μόνο αν ο κάθε ένας που έχει προσφέρει στο κώδικα συμφωνήσει κάτι τέτοιο. Τα περισσότερα προγράμματα που κυκλοφορούν για Linux βρίσκονται κάτω από την άδεια της GPL. Πρέπει να σημειωθεί επίσης ότι η GPL δεν ορίζει τίποτα όσον αφορά τη τιμή. Όσο παράλογο και αν ακούγεται, κάποιος προγραμματιστείς μπορεί να θέσει κάποια τιμή στο πρόγραμμά του και ας είναι αυτό ελεύθερο λογισμικό. Η ελευθερία έχει να κάνει με το κώδικα και όχι με τη τιμή. (Αν κάποιος σας έχει πουλήσει, ή έστω δώσει, κάποιο πρόγραμμα ελεύθερου λογισμικού, τότε είναι υποχρεωμένος να δώσει και τον πηγαίο κώδικα μαζί με αυτό.) Υπάρχει και άλλη μία γνωστή άδεια και είναι αυτή του BSD. Σε αντίθεση με τη GPL, η άδεια του BSD δεν έχει κάποιες απαιτήσεις για τη διανομή του πηγαίου κώδικα ενός προγράμματος. Το λογισμικό το οποίο είναι κατοχυρωμένο από την άδεια του BSD επιτρέπει την αναδιανομή του πυγαίου κώδικα είτε σε μορφή κώδικα είτε σε δυαδική μορφή. Ωστόσο τα διαπιστευτήρια του δημιουργού δε μπορούν να χρησιμοποιηθούν για διαφήμιση του προγράμματος. Επίσης δεν εμπλέκει τον δημιουργό σε περίπτωση που κάποιο πρόβλημα προκύψει από τη χρήση του προγράμματος. Αρκετό από το λογισμικό

15 του Slackware είναι κατοχυρωμένο με την άδεια του BSD. Υπάρχει ακόμη μία οργάνωση, νεότερη και στα χνάρια του κινήματος του Ανοιτού Κώδικα, και ονομάζεται Πρωτοβουλία Ανοιχτού Κώδικα Open Source Initiative (OSI). Ο ρόλος ύπαρξης της είναι να υποστηρίξει το λογισμικό ανοιχτού κώδικα, δηλαδή το λογισμικό του οποίου κ πηγαίος κώδικας είναι διαθέσιμος αλλά επίσης και το εκτελέσιμο αρχείων έτοιμο να τρέξει. Η OSI δε προσφέρει κάποια ειδική άδεια χρήσης, αλλά αντί αυτής υποστηρίζει των διαφόρων τύπων αδειών χρήσης που υπάρχουν. Η ιδέα πίσω από την OSI είναι να συγκεντρώσει όσες περισσότερες εταιρείες ασχολούνται με τον ανοιχτό κώδικα και να τους επιτρέπει να γράψουν οι ίδιες οι εταιρείες τις άδειες χρήσης η οποίες θα είναι στη συνέχεια θα είναι εγκεκριμένες από την OSI. Είναι πολλές οι εταιρείες οι οποίες θέλουν να εκδώσουν το κώδικα προγραμμάτων τους αλλά δε θέλουν να γίνει αυτό κάτω από τη GPL. Έτσι, από τη στιγμή που δε μπορούν να αλλάξουν τη GPL, τους προσφέρεται η δυνατότητα να έχουν τις δικές τους άδειες χρήσης. Ενώ η Εταιρεία Ελεύθερου Λογισμικού και η Πρωτοβουλία Ανοιχτού Κώδικα βοηθούν η μία την άλλη, δε είναι το ίδιο ακριβώς πράγμα. Η Εταιρεία Ελεύθερου Λογισμικού χρησιμοποιεί μιας συγκεκριμένη άδεια χρήσης και παρέχει λογισμικό το οποίο χρησιμοποιεί αυτή την άδεια χρήσης. Η Πρωτοβουλία Ανοιχτού Κώδικα υποστηρίζει όλες τις άδειες χρήσης λογισμικού ανοιχτού κώδικα συμπεριλαμβανομένης αυτή της Εταιρεία Ελεύθερου Λογισμικού. Αυτό το οποίο χωρίζει τα δύο κινήματα είναι το να υπάρχει απόλυτη ελευθερία στη διανομή του κώδικα.

16 Κεφάλαιο 2: Βοήθεια συστήματος Η εντολή man Η εντολή man (συντομογραφία του manual ) είναι η παραδοσιακή μορφή της online βοήθειας σε συστήματα Unix και Linux. Αποτελούμενη από διαφόρων τύπων αρχεία, οι σελίδες man ( man pages ), υπάρχουν για το μεγαλύτερο μέρος των εντολών διανέμονται μαζί με το πρόγραμμα. Γράφοντας στη κονσόλα man κάποια_εντολή θα εμφανίσει τις σελίδες βοηθείας για τη συγκεκριμένη εντολή. Φανταστείτε στη παράδειγμά μας ότι θα εμφάνιζε βοήθεια για το πρόγραμμα κάποια_εντολή. Μπορεί κάποιος εύκολα να καταλάβει ότι η ποσότητα των σελίδων man μπορεί εύκολα να αυξηθεί και να γίνουν αρκετά περίπλοκες ακόμα και για έναν προχωρημένο χρήστη. Για αυτό το λόγο λοιπόν, οι σελίδες man είναι ταξινομημένες αριθμητικά. Αυτό το σύστημα βοήθειας χρησιμοποιείται για πάρα πολλά χρόνια και για αυτό το λόγο υπάρχει περίπτωση να δείτε κάποια αναφορά σε βοήθεια εντολών, προγραμμάτων, ακόμη και σε βιβλιοθήκες γλωσσών προγραμματισμού, με τον αριθμό στον οποίο αυτές αντιστοιχούνται. Για παράδειγμα: Ίσως να δείτε κάπου την εντολή man(1). Αυτό σημαίνει ότι η βοήθεια της εντολή man βρίσκεται στο πρώτο τμήμα των κατανεμημένων βοηθειών. Τομέας Περιεχόμενα Τομέας 1 εντολές χρήστη (μόνο εισαγωγικά) Τομέας 2 εντολές συστήματος Τομέας 3 βιβλιοθήκες της C Τομέας 4 συσκευές (hd, sd κλπ) Τομέας 5 τύποι αρχείων και πρωτόκολα (wtmp, /etc/passwd, nfs) Τομέας 6 παιγνίδια (μόνο εισαγωγικά) Τομέας 7 δομή αρχείων, μακροεντολές, κλπ. (nroff, ascii) Τομέας 8 διαχείριση συστήματος (εισαγωγικά) Επιπλέον στην εντολή man(1), υπάρχουν οι εντολές whatis(1) και apropos(1) των οποίων το νόημα είναι να κάνουν ευκολότερη την εύρεση πληροφοριών μέσα στη βοήθεια του man. Η εντολή whatis παρέχει πολύ συνοπτικά πληροφορίες για εντολές του συστήματος.

17 Παράδειγμα: % whatis whatis whatis (1) - search the whatis database for complete words Η εντολή apropos χρησιμοποιείται για την εύρεση για σελίδας man που περιέχει μια συγκεκριμένη λέξη. Παράδειγμα: % apropos wav cdda2wav (1) - a sampling utility that dumps CD audio data into wav sound files netwave_cs (4) - Xircom Creditcard Netwave device driver oggdec (1) - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW) wavelan (4) - AT&T GIS WaveLAN ISA device driver wavelan_cs (4) - AT&T GIS WaveLAN PCMCIA device driver wvlan_cs (4) - Lucent WaveLAN/IEEE device driver Εάν θέλετε περισσότερες πληροφορίες για τις εντολές αυτές, τότε να διαβάσετε τις σελίδες man για λεπτομέρειες :) Ο κατάλογος /usr/doc Τα περισσότερο πακέτα λογισμικού συμπεριλαμβάνουν και βοήθεια σε αρχεία README, οδηγίες χρήσης, άδειες κλπ. Κάθε είδους βοήθεια, ή άλλο ηλεκτρονικό έγγραφο, το οποίο είναι μαζί με κάποιο πρόγραμμα, όταν το πρόγραμμα εγκατασταθεί τότε αυτά τα αρχεία βρίσκονται στο φάκελο /usr/doc. Συνήθως, κάθε πρόγραμμα εγκαθιστά τη δική τεκμηρίωση με το παρακάτω τρόπο: /usr/doc/$πρόγραμμα-$έκδοση Όπου $πρόγραμμα το όνομα του προγράμματος και $έκδοση ή έκδοση του προγράμματος. Για παράδειγμα, εάν θέλετε να διαβάσετε τη τεκμηρίωση για την εντολή man(1) τότε θα πρέπει να μεταβείτε με την εντολή cd στο κατάλογο: % cd /usr/doc/man-$version Εάν η εντολή man δε σας δώσει τις πληροφορίες που θέλετε τότε το επόμενο βήμα είναι να ψάξετε για το κατάλληλο αρχείο στον κατάλογο /usr/doc.

18 2.1.3 Τεκμηριώσεις (HOWTOs) Το πραγματικό πνεύμα της κοινότητας του Ανοιχτού Κώδικα μας φέρνει κατευθείαν στις Τεκμηριώσεις. Αυτού τους είδους τα αρχεία είναι ακριβώς ότι λέει και το όνομα. Σου λένε με ποιο τρόπο μπορείς να κάνεις κάποια πράγματα. Εάν εγκαταστήσετε τη συλλογή των HOWTO τότε θα υπάρχουν στους παρακάτω καταλόγους: /usr/doc/linux-howtos /usr/doc/linux-mini-howtos Επίσης στο ίδιο πακέτο υπάρχει και μια συλλογή FAQ του οποία τα αρχικα σημαίνουν: Frequently Asked Questions Όπου στην ουσία έχει να κάνει με κάποιες απαντήσεις σε συνηθισμένες ερωτήσεις χρηστών. Αυτά τα κείμενα είναι γραμμένα στο στυλ Ερώτηση - Απάντηση. Τα FAQ μπορεί να φανούν πολύ χρήσιμα εάν ψάχνεται για κάτι σύντομο και στα γρήγορα. Εάν εγκαταστήσατε τα FAQ τότε θα τα βρείτε στον κατάλογο /usr/doc/linux-faqs. Αξίζει κυρίως να ρίξετε μια ματιά στα FAQ όταν δεν είστε εντελώς σίγουροι για το πως να κάνετε κάτι. Καλύπτουν ένα πολύ μεγάλο εύρος θεμάτων αλλά όχι με πολλές λεπτομέρειες. 2.2 Βοήθεια στο διαδίκτυο Εκτός από το έγγραφα κείμενα βοηθείας που υπάρχουν μαζί με την εγκατάσταση του Slackware, υπάρχουν διαθέσιμες ατελείωτες πηγές βοήθειας στο διαδίκτυο έτοιμες για να μάθετε από αυτές Η επίσημη ιστοσελίδα και τα φόρουμ Η επίσημη ιστοσελίδα του Slackware μένει κάποιες φορές ανενημέρωτη αλλά αυτό δεν την εμποδίζει να παρέχει πληροφορίες όσον αφορά τις τελευταίες εκδόσεις του Slackware. Για κάποιο διάστημα υπήρχε και ένα φόρουμ βοήθειας αλλά μετά τις επιδρομές διάφορων ατόμων τα οποία το μόνο που έκαναν ήταν να διασύρουν το φόρουμ, έκλεισε. Διότι όμως

19 το φόρουμ ήθελε αρκετή δουλειά ο Πάτρικ (Volkerding) αποφάσισε να το σταματήσει. Όποιος ενδιαφέρεται μπορεί να βρει ακόμη διάφορα θέματα στο παλιό φόρουμ το οποίο έχει πάρει μια μορφή αρχείου. Όταν το φόρουμ σταμάτησε να λειτουργεί, ήρθαν κάποια άλλα φόρουμ να προσφέρουν βοήθεια όσον αφορά το Slackware. Μετά από αρκετή σκέψη, ο Πάτρικ αποφάσισε να ορίσει ως επίσημο φόρουμ το Slackware το Βοήθεια μέσω ηλεκτρονικού ταχυδρομείου. Οποιοδήποτε αγοράζει ένα επίσημο CD σετ έχει δωρεάν υποστήριξη εγκατάστασης μέσω . Θα πρέπει όμως να έχετε στο νου σας ότι εμείς που αναπτύσσουμε το Slackware (όπως επίσης και ένας μεγάλος αριθμός χρηστών) είμαστε τις παλαιάς σχολής. Αυτό σημαίνει ότι προτιμούμε να βοηθήσουμε αυτούς τους οποίους έχουν ενα ιδιαίτερο ενδιαφέρον και που επίσης είναι διατεθειμένη να βοηθήσουν και οι ίδιοι τον εαυτό τους στη συνέχεια. Πάντα θα προσπαθούμε να βοηθήσουμε όλους όσους μας στέλνουν αλλά προτείνουμε πριν στείλετε να διαβάσετε τις τεκμηριώσεις και τα FAQ. Μπορείτε να γλυτώσετε αρκετό χρόνο έτσι και να θυμάστε ότι όσο λιγότερα λαμβάνουμε τόσο συντομότερα θα απαντήσουμε σε αυτές που πραγματικά χρειάζονται της βοήθειά μας. Το για τεχνική υποστήριξη είναι: Άλλες διευθύνσεις ηλεκτρονικού ταχυδρομείου και πληροφορίες επικοινωνίας είναι διαθέσιμες στην επίσημη ιστοσελίδα Λίστες αλληλογραφίας τους Slackware Linux Υπάρχουν διάφορες λίστες αλληλογραφίας και παρακάτω υπάρχουν οδηγίες για το πως μπορείτε να εγγραφείτε σε αυτές. Για να εγγραφείτε σε μια λίστα αλληλογραφίας (mailing list), στείλτε ένα στη παρακάτω διεύθυνση: με τη φράση subscribe [name of list] στο κύριο μέρος τους μηνύματος. Η λίστα των επιλογών υπάρχει παρακάτω (χρησιμοποιείστε κάποιο από αυτούς τους τίτλους για όνομα τις λίστας). Αρχεία των λιστών αλληλογραφίας μπορούν να βρεθούν στην επίσημη σελίδα του Slackware:

20 slackware-announce Η λίστα αυτή παρέχει ενημερώσεις για νέες εκδόσεις, για σημαντικές αναβαθμίσεις και άλλες γενικές πληροφορίες. slackware-secutiry Η λίστα αυτή ανακοινώνει διάφορα θέματα τα οποία έχουν να κάνουν με θέματα ασφαλείας. Οποιεσδήποτε "τρύπες" του συστήματος θα ανακοινώνονται αμέσως μέσω αυτής της λίστας. Αντί του να λαμβάνετε διάφορα καθημερινά σχετικά με τις παραπάνω λίστες, μπορείτε να λαμβάνετε ένα μεγάλο την ημέρα (digest list). Μιας και στις λίστες οι χρήστες δε μπορούν να γράψουν τίποτα, και γενικότερα οι λίστες δεν έχουν μεγάλη κίνηση, οι περισσότεροι χρήστες δε βρίσκουν κάποιο πλεονέκτημα στις digest lists. Αν όμως θέλετε να γραφείτε σε κάποια απο αυτές τις λίστες μπορείτε να το κάνετε στις ακόλουθες: slackware-announce-digest ή slackware-security-digest Ανεπίσημες ιστοσελίδες και φόρουμ βοήθειας Ιστοσελίδες Google Η μεγαλύτερη μηχανή αναζήτησης στο διαδίκτυο η οποία επιστρέφει θετικά αποτελέσματα σε κάθε είδους έρευνα. Ακόμη και για θέματα που έχουν να κάνουν με τη κάθε τελευταία έκδοση του πυρήνα. Google:Linux Ειδικός τομές για το Linux. Google:BSD Ειδικός τομέας για το BSD. Μιας και το Slackware είναι τόσο γενικής χρήσης όσο και ένα Unix σύστημα, υπάρχουν περιπτώσεις να μη βρεθούν πληροφορίες που να έχουν να έχουν να κάνουν 100% με το Slackware. Πολλές φορές, μια έρευνα στον τομέα του BSD μπορεί να εμφανίσει περισσότερες πληροφορίες τεχνικού περιεχομένου απ' ότι ο προαναφερθέντας τομέας του Linux τους Google.

21 Google:Groups Ψάξτε μέσα σε δεκάδες ομάδες χρηστών για συγκεκριμένα θέματα. Ένα εικονικός θησαυρός της γνώσης, καλές συμβουλές, εμπειρία από πρώτο χέρι και πολύ ενδιαφέροντα άρθρα. Από τα πρώτα μέρη όπου θα ακούσετε για νέα όσον αφορά την ανάπτυξη του Slackware Πηγές στο διαδύκτιο linuxquestions.org Το επίσημο φόρου για χρήστες τους Slackware. linuxiso.org Slackware Forum Ένα μέρος για να σας βοηθήσει με το Linux. alt.os.linux.slackware FAQ Ακόμη ένα FAQ Ομάδες χρηστών (Usenet Groups -NNTP-) Οι ομάδες χρηστών είναι για αρκετό καιρό τώρα τα διαδικτυακά μέρη όπου μαζεύονταν διάφοροι χρήστες για να βοηθήσουν ο ένας τον άλλον. Υπάρχουν και κάποια newsgroup αφιερωμένα στο Slackware Linux τα οποία αποτελούνται από χρήστες που είναι πραγματικά γνώστες των θεμάτων. alt.os.linux.slackware alt.os.linux.slackware, γνωστότερο ως aols (δε θα πρέπει να το μπερδεύετε με την AOL) είναι ένα από τα πιο ενεργά μέρη όπου μπορεί κάποιο να βρει βοήθεια για προβλήματα που αντιμετωπίζει με το Slackware. Όπως σε κάθε ομάδα χρηστών και newsgroup, υπάρχουν και μερικοί χρήστες οι οποίοι θέλουν να σπείρουν προβλήματα αντί του να βοηθήσουν. Μαθαίνοντας να απομονώνετε αυτές τους χρήστες (trolls) και να βρίσκετε τους χρήστες όπου μπορούν να βοηθήσουν πραγματικά, είναι το κλειδί στην εύρεση των πληροφοριών που ψάχνετε.

22 Kεφάλαιο 3: Εγκατάσταση Πριν χρησιμοποιήσετε το Slackware Linux θα πρέπει να το έχετε πάρει με κάποιο τρόπο στα χέρια σας. Αυτό γίνεται τόσο με το να το αγοράσετε ή να το κατεβάσετε δωρεάν από το διαδίκτυο. Η εγκατάσταση είναι και αυτή εύκολη εφόσον έχετε κάποια ιδέα για τον υπολογιστή σας και εφόσον υπάρχει όρεξη να μάθετε καινούργια πράγματα. Το πρόγραμμα εγκατάστασης από μόνο του είναι αρκετά απλό με διαδικασίες βήμα-βήμα. Λόγω αυτού μπορείτε να το έχετε στο σύστημα σας μέσα σε λίγα λεπτά. Αξίζει να σημειωθεί ότι το Slackware έχει από τους μικρότερους χρόνους εγκατάστασης συγκριτικά με τις άλλες διανομές Linux. 3.1 Προμηθεύοντας το Slackware Το επίσημο πακέτο Το επίσημο πακέτων του Slackware είναι διαθέσιμο από τη Slackware Linux Inc. Το πακέτο περιλαμβάνει 4 CD. Το πρώτο CD περιλαμβάνει όλο το λογισμικό που χρειάζεται για την βασική εγκατάσταση μαζί με τα X Windows. Το δεύτερο CD είναι ένα Live CD το οποίο φορτώνει απλώς το Slackware στη μνήμη RAM και το τρέχει χωρίς να χρειάζεται κάποια εγκατάσταση. Αυτό το CD περιλαμβάνει επίσης το γραφικό περιβάλλον KDE. Υπάρχει και ένας φάκελος με όνομα extra ο οποίος περιέχει διάφορα άλλα χρήσιμα προγράμματα. To τρίτο και τέταρτο CD περιέχουν το πηγαίο κώδικα του Slackware καθώς και την επίσημη έκδοση αυτού του βιβλίου. Υπάρχει επίσης η δυνατότητα να αγοράσει κάποιος το πακέτο των τεσσάρων CD μαζί με αυτό το βιβλίο και μαζί και άλλα διάφορα "φρούτα" του Slackware. Οι αγορές των CD είναι σε χαμηλές τιμές Ο συνηθισμένος τρόπος για την αγορά διαφόρων προϊόντων του Slackware είναι από το επίσημο ηλεκτρονικό κατάστημα. Υπάρχει επίσης η δυνατότητα να κάνετε τη παραγγελία μέσω τηλεφώνου ή Επικοινωνία Slackware Linux, Inc. Τρόποι Στοιχεία Τηλέφωνο 1-(925) Ιστοσελίδα

23 Οδός 1164 Claremont Drive, Brentwood, CA Μέσω διαδικτύου Όπως είπαμε και προηγουμένως το Slackware είναι διαθέσιμο και δωρεάν από το διαδίκτυο. Μπορείτε να στείλετε τα με τις απορίες σας για υποστήριξη αλλά προτεραιότητα θα έχουν όσοι έχουν αγοράσει το επίσημο πακέτο. Αυτό το λέμε γιατί παίρνουνε πάρα πολλά και ο χρόνος μας είναι περιορισμένος. Πριν στείλετε διαβάστε το Κεφάλαιο 2. Η επίσης ιστοσελίδα τοy Slackware Linux Project βρίσκεται στη παρακάτω διεύθυνση: Ο πρωταρχικός FTP server για το Slackware είναι ο εξής: ftp://ftp.slackware.com/pub/slackware Πρέπει να ξέρετε όμως ότι ο FTP server είναι περιορισμένης ροής δεδομένων γι' αυτό σκεφτείτε να χρησιμοποιήσετε κάποιο mirror κοντά σε εσάς προκειμένου να κατεβάσετε το Slackware. Μια λίστα με διάφορα mirror μπορεί να βρεθεί εδώ: 3.2 Απαιτήσεις συστήματος Για να μπορέσετε να τρέξετε το Slackware με την άνεση σας θα πρέπει το σύστημα σας να έχει τα παρακάτω: Επεξεργαστής 586 Μνήμη RAM 32MB Σκληρός δίσκος 1GB CD-ROM 4x Εάν έχετε το CD εγκατάστασης τότε δε θα χρειαστείτε οδηγό δισκέτας. Βέβαια όμως εάν δεν έχετε CD-ROM τότε θα χρειαστείτε οδηγό δισκέτας για να κάνετε εγκαταστήσετε το

24 Slackware μέσω δικτύου. Αυτό που επίσης χρειάζεστε για εγκατάσταση από το δίκτυο είναι να έχει ο υπολογιστή σας μια κάρτα δικύου. Για περισσότερες πληροφορίες δείτε την ενότητα NFS (Network File System). Το χώρο ποθ θα πιάσει στο σκληρό σας η εγκατάσταση εξαρτάται. Εμείς σας προτείνουμε 1GB για την ελάχιστη εγκατάσταση, αλλά εάν θέλετε να κάνετε τη πλήρης εγκατάσταση τότε χρειάζεστε τουλάχιστον 2-3GB συν το επιπλέον χώρο για τα προσωπικά σας αρχεία. Οι περισσότεροι χρήστες όμως δεν κάνουν πλήρη εγκατάσταση. Δεν είναι λίγοι αυτοί που τρέχουν το Slackware με εγκατάσταση μόλις των 100ΜΒ. Το Slackware μπορείτε να εγκατασταθεί και σε συστήματα με μερική χωρητικότητα μνήμης RAM, μικρότερης χωρητικότητας σκληρούς δίσκους, χαμηλότερων δυνατοτήτων επεξεργαστών αλλά δε πρόκειται να έχετε όπως είναι λογικό τις ίδιες αποδώσεις. Μπορείτε να ρίξετε μια ματιά στο αρχείο LOWMEM.TXT του CD για κάποιες χρήσιμες συμβουλές Σειρές λογισμικού Α Το βασικό σύστημα σας παρέχει τις εφαρμογές για να ξεκινήσετε και να τρέξετε το λειτουργικό με έναν επεξεργαστή κειμένου και τη στοιχειώδη επικοινωνία με το σύστημα. AP Διάφορες εφαρμογές οι οποίες δε χρειάζονται τα X Windows. D Προγράμματα για ανάπτυξη λογισμικού. Compilers, debuggers, interpreters και αρχεία βοήθειας. Ε Ο κειμενογράφος GNU Emacs. F Ερωτοαπαντήστεις (FAQ) και τεκμηριώσεις (HOWTO) και άλλα διάφορα κείμενα. Κ Ο πηγαίος κώδικας του πυρήνα Linux. KDE Το περιβάλλον εργασίας Κ (K Desktop Environment). Ένα περιβάλλον εργασίας Χ το οποίο μοιάζει σε κάποια σημεία με το MacOS και τα Windows. Η βιβλιοθήκη Qt που είναι απαραίτητη για το KDE βρίσκεται σε αυτό το πακέτο. KDEI Πακέτα διεθνοποίησης του KDE. L Βιβλιοθήκες (Libraries) οι οποίες χρειάζονται για τα περισσότερα προγράμματα.

25 Ν Λογισμικό δικτύου. Daemons, προγράμματα αλληλογραφίας, telnet, news reader και άλλα. T Σελιδοποίηση του τύπου tetex. TCL Η Tool Command Language. Τα πακέτα Tk, TcIX και TkDesk. Χ Το βασικό σύστημα για τα X Windows. XAP Εφαρμογές X οι οποίες δεν είναι μέρος του βασικού περιβάλλοντος (για παράδειγμα Ghostscript και Netscape). Y Τα παιχνίδια κονσόλας BSD Τρόποι εγκατάστασης Μέσω δισκέτας Ενώ κάποτε ήταν δυνατόν να γίνει η εγκατάσταση του Slackware Linux από δισκέτες το αυξανόμενο μέγεθος των πακέτων λογισμικού έκανε αυτό τον τρόπο εγκατάστασης να εγκαταλειφθεί. Μέχρι και την έκδοση του Slackware 7.1 υπήρχε η δυνατότητα να γίνει μια μικρή εγκατάσταση από δισκέτες. Οι σειρές Α και Ν μπορούσαν να εγκατασταθούν δίνοντας στον χρήστη ένα βασικό σύστημα από το οποίο θα μπορούσε να εγκαταστήσει το υπόλοιπο του συστήματος. Εάν σκέφτεστε να εγκαταστήσετε το Slackware μέσω δισκέτας τότε είναι καλύτερα να βρείτε κάποιον άλλον τρόπο ή να εγκαταστήσετε μια παλαιότερη έκδοση (η 4 για παράδειγμα ή ακόμη και η 7). Οι δισκέτες χρειάζονται ακόμη αν κάνετε την εγκατάσταση από το CD και το BIOS δεν υποστηρίζει εκκίνηση από τον οδηγό του CD-ROM, όπως επίσης και αν κάνετε εγκατάσταση από δίκτυο NFS Μέσω CD-ROM Εάν έχετε το CD εκκίνησης, το οποίο είναι διαθέσιμο με το επίσημο πακέτο της διανομής Linux του Slackware, θα σας κάνει το τρόπο εγκατάστασης πολύ πιο εύκολο. Εάν δεν έχετε αυτό το CD, τότε θα χρειαστεί να εκκινήσετε τον υπολογιστή μέσω των δισκετών. Επίσης, εάν έχετε κάποιο είδος υλικού του υπολογιστή το οποίο δε δουλεύει αρμονικά με τον πυρήνα στο CD τότε θα χρειαστεί να χρησιμοποιήσετε τις ειδικές δισκέτες. Από την έκδοση του Slackware 8.1 υπάρχει ένας νέος τρόπος ο οποίος σας επιτρέπει να δημιουργήσετε να δημιουργήσετε CD εκκίνησης. Το κακό όμως είναι ότι δε δουλεύουν με όλα τα BIOS chips. Εάν βρίσκεστε σε αυτήν την περίπτωση τότε σας προτείνουμε να εκκινήσετε την εγκατάσταση μέσω δισκέτας.

26 Οι ενότητες και δίνουν περισσότερες πληροφορίες στο πως να δημιουργήσετε και να χρησιμοποιήσετε αυτές τις δισκέτες για την εκκίνηση του υπολογιστή NFS To NFS (Network File System) είναι ένας τρόπος για να κάνει κάποιος απομακρυσμένα αρχεία συστήματος διαθέσιμα σε έναν τοπικό υπολογιστή. Μια εγκατάσταση μέσω του NFS σας επιτρέπει να εγκαταστήσετε το Slackware από έναν άλλον υπολογιστή που μπορεί να υπάρχει στο δίκτυο σας. Ο υπολογιστής από τον οποίο θα κάνετε την εγκατάσταση θα πρέπει να είναι ρυθμισμένος ώστε να εξάγει τα αρχεία εγκατάστασης του Slackware στον υπολογιστή όπου θα πραγματοποιηθεί η εγκατάσταση. Αυτό προϋποθέτει κάποιες γνώσεις πάνω στο NFS, κάτι το οποίο καλύπτεται στο κεφάλαιο 5.6. Υπάρχει επίσης η δυνατότητα να πραγματοποιήσετε μια εγκατάσταση NFS μέσω μεθόδων όπως PLIP (μέσω παράλληλης θύρας), SLIP και PPP (καλύτερα όχι μέσω απλού modem). Εμείς πάντως σας προτείνουμε να χρησιμοποιήσετε μια κάρτα δικτύου εάν αυτή είναι διαθέσιμη. Στο κάτω-κάτω, εάν επιλέξετε να πραγματοποιήσετε την εγκατάσταση μέσω της θύρας του εκτυπωτή αυτό θα κάνει την εγκατάσταση απελπιστικά αργή Boot Disk (Δισκέτα εκκίνησης) Η δισκέτα εκκίνησης είναι στην ουσία η δισκέτα με την οποία ξεκινάτε τον υπολογιστή για την εγκατάσταση. Περιέχει μία συμπιεσμένη εικόνα του πυρήνα ο οποίος θα χρησιμοποιηθεί κατά τη διάρκεια της εγκατάστασης. Οι δισκέτες εκκίνησης βρίσκονται στον κατάλογο bootidisks/ στον γενικότερο κατάλογο όπου βρίσκονται τα αρχεία της εγκατάστασης. Υπάρχουν διάφορες δισκέτες εκκίνησης οι οποίες χρησιμεύουν για των διαφόρων τύπων εγκαταστάσεις. Μια ολοκληρωμένη λίστα με τις δισκέτες εκκίνησης, καθώς και τις περιγραφές αυτών, είναι διαθέσιμη στο αρχείο README.TXT μέσα στον κατάλογο bootdisks/ του γενικότερου καταλόγου της εγκατάστασης. Οι περισσότεροι χρήστες χρησιμοποιούν τα bare.i για συσκευές IDE ή scsi.s για συσκευές SCSI. Η ενότητα έχει οδηγίες για το πως να δημιουργείτε δισκέτες εκκίνησης Root Disk Οι Root Disks περιέχουν το κύριο πρόγραμμα εγκατάστασης και ένα πρόγραμμα αρχείων το οποίο χρησιμοποιείται κατά τη διάρκεια της εγκατάστασης. Οι δισκέτες αυτές μπορούν να βρεθούν στον κατάλογο /rootdisks του γενικότερου καταλόγου της εγκατάστασης. Θα πρέπει να χρησιμοποιήσετε τις εικόνες install.1 και install.2. Υπάρχει επίσης η δυνατότητα χρήσης των network.dsk, pcmcia.dsk, rescue.dsk, και sbootmgr.ds Supplemental Disk (Δισκέτα αντικατάστασης) Μια τέτοια δισκέτα χρειάζεται σε περίπτωση που εγκαταστήσετε το Slackware μέσω

27 δικτύου NFS ή αν θέλετε να εγκαταστήσετε κάποια συσκευή PCMCIA. Αυτές οι δισκέτες βρίσκονται στον κατάλογο rootdisks/ του γενικότερου καταλόγου εγκατάστασης, με τα ονόματα network.dsk και pcmcia.dsk. Έχουν επίσης προστεθεί και άλλες δισκέτες όπως οι rescue.dsk και sbootmgr.dsκ. Η δισκέτα rescur είναι μια μικρή σε χώρο δισκέτα αντικατάστασης οι οποία μπορεί να φορτωθεί σε RAM μόλις 4MB. Περιλαμβάνει τα βασικά στοιχεία δικτύου και το επεξεργαστή κειμένου vi. Η δισκέτα sbootmgr χρησιμοποιείται για την εκκίνηση άλλων συσκευών. Κάντε χρήση αυτής της δισκέτας στη περίπτωση που το CD του Slackware δεν ξεκινήσει την εγκατάσταση. Θα σας δώσει τότε διάφορους τρόπους εκκίνησης και ίσως προσφέρει και μία λύση για να εκκινήσετε την εγκατάσταση από το CD με κάποιο προβληματικό BIOS. Η δισκέτα Root θα σας ενημερώσει για το πότε θα χρειαστεί να τοποθετήσετε την δισκέτα αντικατάστασης Δημιουργώντας τις δισκέτες Αφού έχετε επιλέξει κάποια δισκέτα για να εκκινήσετε το σύστημά σας τότε θα χρειαστεί να τοποθετήσετε μια άδεια δισκέτα στον υπολογιστή. Η διαδικασία που ακολουθεί διαφέρει από το ένα λειτουργικό σύστημα στο άλλο. Εάν έχετε Linux (ή κάποιο άλλο λειτουργικό κοντά στο Unix) τότε θα χρειαστεί να πληκτρολογήσετε την εντολή dd(1). Εάν υποθέσουμε πως το bare.i είναι η δισκέτα που θέλετε να δημιουργήσετε και /dev/fd0 είναι η συσκευή της δισκέτας, τότε θα εκτελέσετε: % dd if=bare.i of=/dev/fd0 Εάν όμως χρησιμοποιείται Windows, θα χρειαστεί να εκτελέσετε το πρόγραμμα RAWRITE.EXE, το οποίο θα το βρείτε στον κατάλογο εγκατάστασης μαζί με τις δισκέτες. Υποθέτουμε ξανά πως bare.i είναι η εικόνα της δισκέτας και Α: ο οδηγός δισκέτας, τότε ανοίγετε τη γραμμή εντολών του DOS και δίνετε τη παρακάτω εντολή: C:\ rawrite a: bare.i 3.3 Κατάτμηση δίσκου Έχοντας εκκινήσει το πρόγραμμα εγκατάστασης θα χρειαστεί στη συνέχεια να διαμορφώσετε τον σκληρό σας δίσκο. Θα δημιουργήσετε ένα τύπο αρχείων που στηρίζεται το Linux και εκεί θα εγκατασταθεί το Slackware. Στην ελάχιστη των περιπτώσεων συνιστούμε τη δημιουργία δύο κατατμήσεων. Του κύριου καταλόγου (root (/)) και του χώρου πρόσθετης μνήμης swap. Όταν έχει ολοκληρωθεί η φόρτωση του προγράμματος εγκατάστασης τότε θα χρειαστεί να εισέλθετε στο σύστημα ως χρήστης root και χωρίς κωδικό. Στη γραμμή εντολών τρέξτε cfdisk ή fdisk. Και τα δύο είναι προγράμματα για την κατάτμηση και διαμόρφωση του σκληρού δίσκου. Το cfdisk παρέχει ένα πιο φιλικό περιβάλλον αλλά δεν παρέχει πολλές δυνατότητες. Παρακάτω θα ασχοληθούμε και με το fdisk. Θα πρέπει να γνωρίζεται πως στο Linux, οι σκληροί δίσκοι, και οι συσκευές αποθήκευσης γενικότερα, δεν έχουν γράμματα αλλά αντιπροσωπεύονται από ένα αρχείο ο καθένας. Ο πρώτος IDE δίσκος είναι το αρχείο /dev/hda, ο αμέσως επομένως, σκλάβος, θα είναι το αρχείο /dev/hdb και πάει λέγοντας. Οι δίσκοι SCSI και USB ακολουθούν την ίδια ιδέα που σημαίνει ότι θα είναι τα αρχεία /dev/sdx. Θα χρειαστεί λοιπόν να ξεκινήσετε το fdisk για τον σκληρό σας δίσκο:

28 # fdisk /dev/hda Όπως σε όλα τα καλά προγράμματα του Unix, το fdisk σας δίνει κάποιες επιλογές στη γραμμή εντολών (ένα πράγμα σαν menu δηλαδή). Το πρώτο πράγμα που πρέπει να κάνετε είναι να ελέγξετε τις υπάρχουσες κατατμήσεις. Αυτό γίνεται με το να δώσουμε τη εντολή p στο fdisk: Command (m for help): p Αυτή η εντολή θα εμφανίσει όλες τις πληροφορίες σχετικά με τις υπάρχουσες κατατμήσεις. Οι περισσότεροι χρήστες θα προτιμήσουν ένα ελεύθερο δίσκο προκειμένου να εγκαταστήσουν το Slackware και στην συνέχεια να αναιρέσουν οποιαδήποτε υπάρχουσα κατάτμηση του δίσκου και να δημιουργήσουν στη θέση τους κατατμήσεις του Linux. ΕΙΝΑΙ ΠΟΛΥ ΣΗΜΑΝΤΙΚΟ ΝΑ ΣΩΣΕΤΕ ΟΣΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΧΡΕΙΑΖΕΣΤΕ ΠΡΙΝ ΔΙΑΜΟΡΦΩΣΕΤΕ ΟΠΟΙΑΔΗΠΟΤΕ ΚΑΤΑΤΜΗΣΗ. Δεν υπάρχει κανένας εύκολος τρόπος να ανακτήσετε τα δεδομένα σας μετά από μια διαμόρφωση. Κοιτώντας τον πίνακα με τις πληροφορίες για την κάθε κατάτμηση θα πρέπει να δείτε έναν αριθμό κατάτμησης, το μέγεθος αυτής καθώς και τον τύπο της. Υπάρχουν περισσότερες πληροφορίες στον πίνακα αυτόν αλλά δεν χρειάζεται να σας απασχολούν προς το παρόν. Στη συνέχεια πρόκειται να διαγράψουμε όλες τις υπάρχουσες κατατμήσεις και να δημιουργήσουμε μια νέα για το Linux. Για να γίνει αυτό τρέχουμε την εντολή d στο fdisk: Command (m for help): d Partition number (1-4): 1 Η διαδικασία αυτή θα πρέπει να ακολουθεί για κάθε κατάτμηση. Αφότου διαγράψετε όλες τις κατατμήσεις είστε έτοιμοι να δημιουργήσετε μία νέα για το Linux. Εμείς θα κάνουμε μία κατάτμηση για τον γενικό κατάλογο και μία για την πρόσθετη μνήμη swap. Η αλήθεια είναι ότι ο τρόπος κατατμήσεων στα συστήματα Unix μπορεί να διαφέρει από χρήστη σε χρήστη και έτσι μπορείτε να ακούτε από τον καθένα τον καλύτερο τρόπο. Πάντως, το μόνο σίγουρο είναι ότι οι δύο προαναφερθέντες κατατμήσεις είναι απαραίτητες. Με το πέρασμα του χρόνου θα μπορείτε να βρείτε μόνοι σας τις ιδανικές για εσάς κατατμήσεις. Εμείς χρησιμοποιούμαι δύο διαφορετικά σχήματα για τις κατατμήσεις. Το πρώτο σχήμα αναφέρεται σε σταθερούς προσωπικούς υπολογιστές και έχει τέσσερις κατατμήσεις: /, /home, /usr/local και swap. Αυτό μας επιτρέπει να επαναγκαταστήσουμε ή να αναβαθμίσουμε το σύστημα μας τροποποιώντας μόνο το κατάλογο / χωρίς να πειράξουμε αρχεία τα αρχεία από διάφορες εφαρμογές που βρίσκονται στο /usr/local. Για server αντικαθιστούμε τον κατάλογο /usr/local με τον /var. Πολλοί server αποθηκεύουν τις πληροφορίες με διαφορετικό τρόπο σε αυτόν τον κατάλογο και για αυτό καλό είναι να βρίσκεται ξεχωριστά από τον / καθώς μπορεί να έχει διάφορες επιπτώσεις στην επίδοση. Για την ώρα πάντως, θα μιλήσουμε για την κατάτμηση / και swap. Θα δημιουργήσουμε τις κατατμήσεις με την εντολή n: Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4):1

29 First cylinder (0-1060, default 0):0 Last cylinder or +size or +sizem or +sizek (0-1060, default 1060):+64M Θα πρέπει να είστε σίγουροι ότι θα δημιουργήσετε αρχικές κατατμήσεις (primary partitions). Η πρώτη κατάτμηση θα είναι αυτή για τη μνήμη swap. Θα πούμε στο fdisk να κάνει την κατάτμηση με νούμερο 1 ως αρχική. Θα ξεκινήσουμε από τον κύλινδρο 0 και θα σταματήσουμε στο +64Μ. Αυτό θα μας δώσει μια κατάτμηση swap των 64ΜΒ (συνήθως το μέγεθος της μνήμης swap είναι διπλάσιο αυτού της RAM). Στην συνέχεια θέτουμε ως αρχική κατάτμηση και τη νούμερο 2, ξεκινώντας από τον πρώτο διαθέσιμο κύλινδρο και συνεχίζουμε μέχρι εκεί που φτάνει ο σκληρός δίσκος: Command (m for help):n Command action e extended p primary partition (1-4) p Partition number (1-4):2 First cylinder ( , default 124):124 Last cylinder or +size or +sizem or +sizek ( , default 1060):1060 Έχουμε σχεδόν τελειώσει. Το μόνο που μένει να κάνουμε είναι να αλλάξουμε τον τύπο της αρχικής κατάτμησης σε 82 (Linux swap). Δώστε την εντολή t στο fdisk για να αλλάξετε τον τύπο, επιλέξτε την πρώτη κατάτμηση και στη συνέχεια δώστε το 82. Πριν εφαρμόσετε τις αλλαγές στον δίσκο καλό είναι να ρίξετε να τελευταία ματιά στον πίνακα με τις πληροφορίες. Χρησιμοποιείστε το pin fdisk για να δείτε τις πληροφορίες του πίνακα. Εάν όλα δείχνουν καλά, δώστε την εντολή w (από το write) για να εφαρμόσετε τις αλλαγές στον σκληρό δίσκο και στη συνέχεια τερματίστε το fdisk. 3.4 Το πρόγραμμα εγκατάστασης Από τη στιγμή που έχετε δημιουργήσει τις κατατμήσεις στον δίσκο, είστε έτοιμοι να εγκαταστήσετε το Slackware. Το επόμενο βήμα στη διαδικασία εγκατάστασης είναι να τρέξετε το πρόγραμμα της εγκατάστασης, το setup δηλαδή, στο κέλυφος (ή αλλιώς στη γραμμή εντολών). Το πρόγραμμα της εγκατάστασης είναι ένα σύστημα με μενού τα οποία βοηθάνε στην εγκατάσταση των πακέτων του Slackware καθώς και στην ρύθμιση του συστήματος σας.

30 ταξινομημένες. (Βέβαια μπορείτε να το κάνετε με όποια σειρά εσείς θέλετε αλλά ίσως να μην έχετε τα θετικότερα αποτελέσματα). Μπορείτε να μεταβείτε από τη μία επιλογή στην άλλη με τα πάνω-κάτω βελάκια, και οι επιλογές Okay και Cancel μπορούν να επιλεχθούν με τα αριστερά-δεξιά βελάκια. Εναλλακτικά, κάθε επιλογή μπορεί να επιλεχθεί από ένα πλήκτρο, το οποίο είναι το αρχικό γράμμα της λέξης από την κάθε επιλογή. Οι επιλογές που είναι σημειωμένες με ένα [Χ], έχουν σημειωθεί πατώντας την μπάρα (spacebar). Όλα αυτά όμως περιγράφονται και ενότητα Βοήθεια από τις επιλογές του μενού HELP Εάν αυτή η πρώτη φορά που εγκαταστήστε το Slackware, τότε θα ήταν καλό να ρίξετε μια ματιά στην ενότητα της βοήθειας. Θα σας δώσει καλή περιγραφή για κάθε επιλογή του μενού του προγράμματος εγκατάστασης καθώς και οδηγίες για τη συνέχεια της εγκατάστασης.

31 3.4.2 KEYMAP Εάν χρειάζεται να χρησιμοποιήσετε κάποιον διαφορετικό τύπο πληκτρολογίου από τον προ επιλεχθέντα, που είναι των Ηνωμένων Πολιτειών, τότε θα χρειαστεί να ρίξετε μια ματιά σε αυτή την ενότητα. Σας δίνει την αριθμητική αντιστοιχία για τον κάθε τύπο πληκτρολογίου.

32 3.4.3 ADDSWAP Στην περίπτωση που έχετε μια κατάτμηση για την επιπλέον μνήμη swap (ενότητα 3.3), τότε αυτή η ενότητα του μενού θα σας επιτρέψει να την ενεργοποιήσετε. Το πρόγραμμα εγκατάστασης θα ανιχνεύσει αυτόματα την κατάτμηση TARGET Η ενότητα αυτή είναι όπου δηλώνετε τις υπόλοιπες κατατμήσεις του δίσκου σας και τις

33 αντιστοιχίσετε στο σύστημά σας. Μια λίστα από τις διαθέσιμες κατατμήσεις θα εμφανιστεί στην οθόνη. Για κάθε κατάτμηση, θα έχετε την επιλογή να τη διαμορφώσετε ή όχι. Αναλόγως με το ποιον πυρήνα θα χρησιμοποιήσετε, μπορείτε να επιλέξετε ανάμεσα διάφορα σύστημα αρχείων του Linux: reiserfs (η προεπιλογή), ext3, ext2, jfs, και xf. Οι περισσότεροι χρήστες επιλέγουν το reiserfs ή το ext3. Στο σύντομο μέλλον ίσως δούμε να υποστηρίζεται και το reiserfs4. Η πρώτη κίνηση είναι στο να επιλέξετε την κατάτμηση στην οποία θα εγκαταστήσετε το κύριο μέρος του συστήματος αρχείων (/). Στη συνέχεια θα έχετε τη δυνατότητα να αντιστοιχίσετε τις υπόλοιπες κατατμήσεις SOURCE Η ενότητα αυτή έχει να κάνει με το μέσο που θα χρησιμοποιήσετε για να εγκαταστήσετε το Slackware. Προς το παρόν υπάρχουν τέσσερις επιλογές: CD-ROM, NFS, HD ή από κάποιον άλλο ήδη υπάρχοντα κατάλογο. Η επιλογή του CD-ROM θα προσπαθήσει να ανιχνεύσει το δισκάκι εγκατάστασης στη συσκευή ή θα σας δώσει να επιλέξετε τη συσκευή από μία λίστα. Να είτε σίγουροι πως έχετε τοποθετήσει στον οδηγό το δισκάκι. Η εγκατάσταση NFS (Netword File System), σας δίνει τη δυνατότητα να εγκαταστήσετε το Slackware από έναν server ο οποίος είναι ενεργός. Θα πρέπει να γνωρίζεται όμως πως δεν μπορείτε να επιλέξετε εσείς κάποιο hostname ή διεύθυνση IP ούτε για τον υπολογιστή σας αλλά ούτε και για τον server. Θα χρειαστεί λοιπόν να ξεκινήσετε την εγκατάσταση με τη δισκέτα netword.dsk προκειμένου να δοθεί η υποστήριξη υλικού για την κάρτα δικτύου. Η εγκατάσταση από έναν υπάρχοντα κατάλογο προσφέρει περισσότερη ευκινησία. Μπορείτε να χρησιμοποιήσετε την μέθοδο αυτή από συσκευές όπως δισκάκια Jaz, NFS καταλόγους μέσω PLIP καθώς επίσης και κατατμήσεις FAT. Χρειάζεται μόνο να αντιστοιχίσετε τον κατάλογο στο σύστημά σας και μετά να δώσετε τη διαδρομή στο πρόγραμμα εγκατάστασης.

34 3.4.6 SELECT Σε αυτή την ενότητα σας επιτρέπετε να επιλέξετε τι είδους λογισμικό θα εγκαταστήσετε στον υπολογιστή σας. Οι διάφορες σειρές λογισμικού περιγράφονται στην ενότητα Για να έχετε εάν βασικό σύστημα και να λειτουργεί θα πρέπει να εγκαταστήσετε τις σειρές A INSTALL Υποθέτουμε ότι έχετε ήδη περάσει από τις προηγούμενες ενότητες του μενού εγκατάστασης, αυτή η ενότητα θα δώσει την επιλογή να εγκαταστήσετε συγκεκριμένα πακέτα από τις σειρές λογισμικού. Εάν ωστόσο δεν έχετε περάσει από τις προηγούμενες ενότητες, τότε θα σας εμφανιστεί ένα μήνυμα το οποίο θα σας προτρέπει να το κάνετε. Η ενότητα αυτή σας δίνει τη δυνατότητα να επιλέξετε μεταξύ έξι διαφορετικών μεθόδων εγκατάσταση: ολοκληρωμένη, για νέους χρήστες, full, newbie, menu, expert, custom, και tag path (επιλογή ομάδων πακέτων, προχωρημένη, κάνοντας δικές σας αλλαγές και tag path).

35 Η πρώτη επιλογή θα εγκαταστήσει οποισδήποτε πακέτο υπάρχει από όλες τις σειρές λογισμικού που έχετε επιλέξει. Αυτός είναι ο ευκολότερος τρόπος εγκατάστασης μιας και δε χρειάζεται να κάνετε κάποιες άλλες ρυθμίσεις σχετικά με τα πακέτα που θα εγκατασταθούν. Εννοείται βέβαια πως η επιλογή αυτή χρειάζεται και τον περισσότερο ελεύθερο χώρο στον σκληρό δίσκο. Η δεύτερη επιλογή εγκαθιστά όλα τα απαραίτητα πακέτα και σας δίνει την επιλογή να επιλέξετε εκείνη τη στιγμή εάν θέλετε ή όχι να εγκαταστήσετε τα υπόλοιπα. Αυτή η επιλογή προτείνετε για νέους χρήστες μιας και μπορούν να διαβάζουν την ίδια στιγμή τη περιγραφή του κάθε πακέτου και να αποφασίζουν για τον αν θέλουν να εγκατασταθεί. Η τρίτη επιλογή είναι γρηγορότερη και η πιο προχωρημένη από τη προηγούμενη μιας και από κάθε πακέτο λογισμικού μπορείτε να επιλέξετε ποια υπο-πακέτα θέλετε και ποια όχι. Η τέταρτη επιλογή απευθύνεται σε πιο προχωρημένους χρήστες. Σας επιτρέπει η επιλογή αυτή να έχετε τον πλήρη έλεγχο όσον αφορά τα πακέτα που θα εγκατασταθούν. Αυτό σημαίνει όμως ότι μπορεί να μην επιλεχθούν κάποια απαραίτητα πακέτα και έτσι να στη συνέχεια το σύστημά να είναι προβληματικό. Από την άλλη όμως ο χρήστης γνωρίζει επακριβώς τι εγκαθίστανται στον υπολογιστή του. Το πιο απλό είναι να επιλέξετε απλώς τα πακέτα που σας ενδιαφέρουν. Η επιλογή αυτή δεν συνίσταται για αρχάριους χρήστες. Οι δύο τελευταίες επιλογές απευθύνονται και πάλι σε προχωρημένους χρήστες. Σας επιτρέπουν να κάνετε την εγκατάσταση βασισμένη στα tag τα οποία δημιουργήσατε στον κατάλογο εγκατάστασης. Αυτό χρησιμεύει για εγκαταστάσεις σε μεγάλο αριθμό μηχανημάτων μιας και είναι σχετικά μια γρήγορη λύση. Για περισσότερες πληροφορίες δείτε την ενότητα Αφού έχετε επιλέξει τον τρόπο εγκατάστασης, τότε αυτή θα αρχίσει. Θα πρέπει να είστε σίγουροι όμως πως έχετε τον απαιτούμενο χώρο στον σκληρό σας δίσκος διαφορετικά θα υπάρξουν προβλήματα κατά τη διάρκεια της εγκατάστασης. Η πιο ασφαλής λύση είναι να επιλέξετε το λογισμικό που ακριβώς θέλετε και στη συνέχεια να εγκαταστήσετε ότι άλλο θα σας χρειαστεί. Αυτό μπορεί να γίνει εύκολα με το εργαλείο του Slackware package

36 management. Για περισσότερες πληροφορίες δείτε το κεφάλαιο CONFIGURE Η ενότητα αυτή σας επιτρέπει να κάνετε τις βασικές ρυθμίσεις στο σύστημά σας, τώρα που τα πακέτα λογισμικού έχουν εγκατασταθεί. Το τι θα δείτε εδώ έχει να κάνει με το τι έχετε εγκαταστήσει. Σε κάθε περίπτωση πάντως θα δείτε τα παρακάτω Επιλογή Πυρήνα Εδώ θα σας ζητηθεί να επιλέξετε κάποιον πυρήνα για το σύστημά σας. Μπορείτε να επιλέξετε έναν πυρήνα από το δίσκο εγκατάστασης που χρησιμοποιήσατε προηγουμένως. Μπορείτε επίσης να αποφύγετε το βήμα αυτό και έτσι θα εγκατασταθεί προεπιλεγμένος πυρήνας Δημιουργώντας δισκέτα εκκίνησης Η δημιουργία μιας δισκέτας εκκίνησης για χρήση στο μέλλον είναι μια καλή σκέψη. Θα σας δοθεί η επιλογή να δημιουργήσετε μία ή δύο δισκέτες εκκίνησης. Ο πρώτος τύπος είναι ο απλός όπου γράφεται ο πυρήνα στη δισκέτα. Μια πιο βολική επιλογή είναι το lilo, το οποίο θα δημιουργήσει μια δισκέτα εκκίνησης με το lilo. Για περισσότερες πληροφορίες όσον αφορά το lilo δείτε στην ενότητα 7.1. Εάν δεν θέλετε να δημιουργήσετε δισκέτα εκκίνησης τότε απλώς επιλέξτε αποφυγή (skip).

37 Modem Το πρόγραμμα εγκατάστασης θα σας ρωτήσει εάν θέλετε να εγκαταστήσετε κάποιο modem και θα χρειαστεί να επιλέξετε σε ποια συριακή θύρα είναι συνδεδεμένο.

38 Τοπικές ρυθμίσεις Αυτή η ρύθμιση έχει να κάνει με την επιλογή του τόπου και της ώρας του χρήστη. Όλες οι περιοχές βρίσκονται σε αλφαβητική σειρά Ποντίκι Σε αυτό το βήμα πρέπει να επιλέξετε τον τύπο ποντικιού που έχετε όπως και το αν χρειάζεστε υποστήριξη ποντικιού και στην κονσόλα.

39 Ρολόι του υπολογιστή Σε αυτό το βήμα πρέπει να επιλέξετε αν το ρολόι του υπολογιστή είναι ρυθμισμένο στην ώρα Γκρίνουϊτς ή όχι. Οι περισσότεροι υπολογιστές έχουν διαφορετική ώρα οπότε και εσείς όχι θα επιλέξετε..

40 Γραμματοσειρές Εδώ επιλέγετε ποιες γραμματοσειρές θα εγκατασταθούν στο σύστημά σας LILO Το επόμενο βήμα έχει να κάνει με την εγκατάσταση του LILO (Linux Loader). Για περισσότερες πληροφορίες μπορείτε να δείτε την ενότητα 7.1

41 Εάν το Slackware είναι το μόνο λειτουργικό σύστημα στον υπολογιστή σας, θα πρέπει τότε επιλέξετε την πρώτη επιλογή και να μην υπάρχει κανένα πρόβλημα μετά την εγκατάσταση. Εάν όμως έχετε και κάποιο άλλο λειτουργικό, τότε η επιλογή για προχωρημένους είναι η σωστή επιλογή (κάποιες φορές και η πρώτη επιλογή κάνει σωστά τη δουλειάς της και για δυο λειτουργικά). Περισσότερες πληροφορίες σχετικά με την ύπαρξη δυο λειτουργικών σε έναν υπολογιστή υπάρχουν στην ενότητα 7.3. Η τρίτη επιλογή, του να μην εγκατασταθεί το LILO, δεν συνίσταται εκτός και αν γνωρίζεται ακριβώς τι κάνετε. Εάν έχετε πραγματοποιήσει την εγκατάσταση για προχωρημένους, τότε θα σας ζητηθεί να επιλέξετε που θέλετε να εγκατασταθεί και το LILO Δίκτυο Η ρύθμιση δικτύου γίνεται με το netconfig. Η ενότητα 5.1 έχει τις απαραίτητες πληροφορίες Διαχειριστής Παραθύρων Χ (X Window Manager) Εδώ θα επιλέξετε ποιον διαχειριστή παραθύρων θέλετε να έχετε προεπιλεγμένο για το Χ. Το κεφάλαιο 6 περιέχει όλες τις λεπτομέρειες για το Χ και για τους διαχειριστές παραθύρων.

42 Ανεξαρτήτως με το τι πακέτα έχετε εγκαταστήσει, το τελευταίο πράγμα που θα σας ζητηθεί είναι να δώσετε ένα κωδικό για τον υπερχρήστη (root).

43 Κεφάλαιο 4: Ρύθμιση Συστήματος Πριν ρυθμίσετε τα πιο προχωρημένα μέρη του συστήματος σας, είναι καλό να γνωρίζεται για το πως το σύστημα είναι δομημένο και ποιες εντολές μπορούν να χρησιμοποιηθούν για την αναζήτηση αρχείων και προγραμμάτων. Είναι επίσης καλό να γνωρίζεται αν χρειάζεται να μεταγλωττίσετε τον πυρήνα και ποια βήματα πρέπει να ακολουθήσετε σε αυτή τη διαδικασία. Το κεφάλαιο αυτό θα σας κάνει οικία την οργάνωση του συστήματος και τη ρύθμιση των αρχείων. Τότε θα μπορείτε να ρυθμίσετε και τα ποιο απαιτητικά μέρη του συστήματος. 4.1 Περιληπτική ματιά Είναι σημαντικό να καταλάβετε πως ένα σύστημα Linux είναι δομημένο πριν αρχίσετε να ρυθμίζεται τα διάφορα ζητήματα. Το Linux διαφέρει από το DOS, τα Windows και τους Machintosh (με την εξαίρεση του Mac OS X το οποίο είναι βασισμένο στο Unix), και οι παρακάτω ενότητες θα σας βοηθήσουν να καταλάβετε τη δομή του και πως να ρυθμίσετε το σύστημα ώστε να έρχεται στα μέτρα σας Δομή φακέλων συστήματος Η πρώτη εμφανής διαφορά μεταξύ του Linux και του DOS ή των Windows, βρίσκεται στα αρχεία συστήματος. Για τους πρωτάρηδες, το Linux, όπως κάθε λειτουργικό βασισμένο στο Unix, δε χρησιμοποιεί γράμματα για τις διάφορες συσκευές αλλά σε κάθε συσκευή αντιστοιχεί μια διαδρομή καταλόγου η οποία θα βρίσκεται μέσα στον κύριο κατάλογο. Ο κύριος κατάλογος ονομάζεται root directory, και συμβολίζεται με το (/). Αυτή η ιδέα ίσως να φαίνεται παράξενη σε κάποιους, αλλά πραγματικά καθιστά πολύ εύκολη τη διαδικασία πρόσθεσης επιπλέον χώρου στο σύστημα. Για παράδειγμα, ας υποθέσουμε ότι δεν υπάρχει άλλος χώρος στον σκληρό που αντιστοιχείται στον κατάλογο /home. Μπορείτε λοιπόν να αγοράσετε ένα καινούργιο σκληρό και να τον αντιστοιχείσετε στον κατάλογο που θέλετε, μπορεί να είναι ο /home, τότε έχετε πολύ εύκολα περισσότερο. Παρακάτω ακολουθεί μια περιγραφή το βασικών καταλόγων του Slackware. bin boot dev Τα βασικά προγράμματα για τους χρήστες βρίσκονται σε αυτόν τον κατάλογο όπως το κέλυφος και οι βασικές εντολές του συστήματος (ls, cd κλπ). Συνήθως ο κατάλογος αυτός δεν αλλάζει ως προς το περιεχόμενό του μετά την εγκατάσταση. Εάν γίνει κάτι τέτοιο, τότε έχει να κάνει με το τι πακέτα εγκαταστήσατε στο σύστημά σας. Τα αρχεία τα οποία χρησιμοποιούνται από τον Linux Loader (LILO) περιέχονται σε αυτόν τον φάκελο. Και αυτός ο φάκελος δεν αλλάζει ιδιαίτερα μετά την εγκατάσταση εκτός και αν εσείς θέλετε να αλλάξετε κάτι συγκεκριμένο. Ο πυρήνας βρίσκεται επίσης σε αυτόν τον κατάλογο. Σε εκδόσεις του Slackware πριν την 8.1, ο πυρήνας βρίσκονταν στον γενικό κατάλογο /, αλλά είναι προτιμότερα να βρίσκεται στον κατάλογο όπου υπάρχουν αρχεία σχετικά με την εκκίνηση του υπολογιστή. Όπως είπαμε, το καθετί στο Linux αντιπροσωπεύεται από αρχεία, ακόμη και οι συσκευές όπως οι σειριακές θύρες, ο σκληρός δίσκος, οι σαρωτές κλπ. Προκειμένου να αποκτήσετε πρόσβαση

44 στις συσκευές αυτές πρέπει να υπάρχει το αντίστοιχο αρχείο, ένας device node όπως λέγεται. Όλα αυτά τα αρχεία βρίσκονται μέσα στον κατάλογο /bin. Το ίδιο συμβαίνει με όλα τα συστήματα Unix. etc home lib mnt opt proc root Εδώ βρίσκονται όλα τα αρχεία σχετικά με τις ρυθμίσεις του συστήματος. Ότι έχει να κάνει με τις ρυθμίσεις του X Window, τους χρήστες, τα αρχεία (script)s που τρέχουν κατά την εκκίνηση. Οι διαχειριστές συστημάτων θα εξοικειωθούν ιδιαίτερα με αυτό τον κατάλογο με το πέρασμα του χρόνου. Το Linux είναι ένα λειτουργικό που υποστηρίζει πολλούς χρήστες. Ο κάθε χρήστης έχει τον δικό του λογαριασμό και τον δικό του κατάλογο για τα προσωπικά του αρχεία. Αυτός ο κατάλογος ονομάζεται home και ο προσωπικός κατάλογος έχει το όνομα του χρήστη και βρίσκεται στον κατάλογο /home. Οι απαραίτητες βιβλιοθήκες συστήματος για τις βασικές λειτουργίες βρίσκονται σε αυτόν τον κατάλογο. Οι βιβλιοθήκες της C, ο δυναμικός φορτωτής (dynamic loader), η βιβλιοθήκη ncurses και οι μονάδες του πυρήνα βρίσκονται κάτω από αυτόν τον κατάλογο. Ο κατάλογος αυτός περιέχει όλα τα προσωρινά mount points, δηλαδή όσες εξωτερικές ή εσωτερικές συσκευές είναι αντιστοιχισμένες στο σύστημα όπως ο σκληρός δίσκος, το DVD- ROM, συσκευές USB κλπ. Περιέχει προαιρετικά πακέτα λογισμικού. Η ιδέα πίσω από τον κατάλογο /opt είναι η εγκατάσταση κάθε πακέτου λογισμικού να είναι της μορφής /opt/software-package, το οποίο σημαίνει ότι μπορεί να αφαιρεθεί εύκολα. Το Slackware εγκαθιστά διάφορα πακέτα σε αυτόν τον κατάλογο (για παράδειγμα το KDE βρίσκεται στο /opt/kde), αλλά εσείς είστε ελεύθεροι να προσθέσετε ότι επιπλέον θέλετε. Ο κατάλογος proc ξεχωρίζει από τους άλλους καταλόγους. Δεν είναι ακριβώς μέρος του συστήματος, αλλά είναι εικονικό σύστημα αρχείων το οποίο παρέχει πληροφορίες σχετικά με τον πυρήνα. Διάφορες πληροφορίες σχετικά με τον πυρήνα και χρειάζεται ο χρήστης να τις ξέρει βρίσκονται μέσα σε αυτόν τον κατάλογο. Υπάρχει επίσης η δυνατότητα αποστολής εντολής στον πυρήνα μέσα από κάποιο αρχεία του /proc προκειμένου να επιστρέψει κάποια στοιχεία. Για παράδειγμα εάν δώσετε στην κονσόλα την εντολή cat /proc/cpuinfo θα πληροφορηθείτε για το τι επεξεργαστή έχετε στο σύστημά σας. Ο διαχειριστής του συστήματος έχει το προσωπικό του φάκελο στον κατάλογο /root αντί του /home/root. Ο λόγος είναι απλός. Εάν ο κατάλογος /home είναι διαφορετική κατάτμηση και όχι μαζί με το / και δε μπορεί να προσαρτηθεί στο σύστημα; Ο υπερχρήστης θα χρεαστεί να

45 εισέλθει στο σύστημα και να διορθώσει το πρόβλημα. Εάν ο προσωπικός τους κατάλογος βρίσκονταν στη προβληματική κατάτμηση τότε δεν θα μπορούσε να εισέλθει στο σύστημα. sbin Βασικά προγράμματα στα οποία έχει δικαιώματα μόνο ο υπερχρήστης (root) και κατά τη διάρκεια της εκκίνησης του συστήματος κρατούνται εκεί. Οι απλοί χρήστες δεν έχουν τη δυνατότητα να τρέξουν τα προγράμματα από αυτόν τον κατάλογο. tmp Ένας κατάλογος για προσωρινά αρχεία όπου όλοι οι χρήστες έχουν το δικαίωμα εγγραφής σε αυτόν. usr Αυτός είναι ο μεγαλύτερος κατάλογος του Linux. Οτιδήποτε άλλο εκτός από τα όσα προαναφέρθηκαν βρίσκεται σε αυτόν τον κατάλογο όπως τα προγράμματα, οι τεκμηριώσεις, ο πηγαίος κώδικας του πυρήνα και το X Window. Σε αυτόν το κατάλογο θα εγκαταστήσετε τα περισσότερο από τα προγράμματα σας. var Αρχεία καταγραφής του συστήματος βρίσκονται σε αυτόν τον κατάλογο. Τα περισσότερα αρχεία εδώ αλλάζουν συχνά. Μετά από τις παραπάνω περιγραφές θα πρέπει να έχετε μαι καλή αίσθηση για το τι περιέχεται σε ένα σύστημα αρχείων του Linux. Περισσότερες πληροφορίες με περισσότερες λεπτομέρειες μπορείτε να βρείτε στη σελίδα man του hier(7). Η επόμενη ενότητα θα σας βοηθήσει να βρείτε συγκεκριμένα αρχεία εύκολα, επομένως δε χρειάζεται να το κάνετε από μόνοι σας Βρίσκοντας αρχεία Τώρα γνωρίζεται πάνω-κάτω τι περιέχει κάθε κύριος κατάλογος, αλλά ακόμη δεν σας πολυβοηθάει να βρείτε διάφορα αρχεία που χρειάζεστε για τον έναν ή άλλον λόγο. Θα μπορούσατε να κοιτάξετε όλα τα αρχεία μέσα στον κάθε κατάλογο προκειμένου να βρείτε αυτό το οποίο θέλετε αλλά υπάρχουν γρηγορότεροι τρόποι. Στο Slackware υπάρχουν τέσσερις βασικές εντολές για την εύρεση αρχείων which Η πρώτη εντολή είναι η which(1). Η εντολή αυτή χρησιμοποιείται συνήθως για να βρεθεί εύκολα η διαδρομή ενός προγράμματος. Ελένχει το PATH και επιστρέφει την πρώτη τιμή που θα αντιστοιχεί σε αυτή. Για παράδειγμα: % which bash /bin/bash Θα πρέπει να πούμε πως η εντολή αυτή είναι αρκετά περιορισμένη μιας και ελέγχει για τιμές μόνο το PATH.

46 whereis Η whereis(1) μοιάζει λειτουργικά με τη which, αλλά μπορεί να ψάξει επίσης για σελίδες man και αρχεία πηγαίου κώδικα. Ένα αντίστοιχο παράδειγμα με τη which: % whereis bash bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz Όπως η which, έτσι και αυτή η εντολή είναι περιορισμένη. Τι γίνεται στη περίπτωση που θέλετε να βρείτε ένα συγκεκριμένο αρχείο ρύθμισης κάποιου προγράμματος. Τότε καμία από τις παραπάνω εντολές δε μπορούν να σας βοηθήσουν find Η find(1) δίνει τη δυνατότητα στο χρήστη να ψάξει αρχεία μέσα σε όλους τους φακέλους όπου με διάφορες ρυθμίσεις μπορεί να δώσει καταπληκτικά αποτελέσματα. Ο χρήστης μπορεί να δώσει ένα μέρος του ονόματος του αρχείου που θέλει να βρει και στη συνέχεια να το ακολουθεί ένα * που υποδηλώνει να ψάξει για το αρχείο με το όνομα που έχει δοθεί και οτιδήποτε ακολουθεί μετά από αυτό. Υπάρχουν διάφορες τέτοιες δυνατότητες. Για παράδειγμα, η εύρεση του προ επιλεγμένου αρχείου xinitrc θα έχει ως εξής: % find / -name xinitrc /var/x11r6/lib/xinit/xinitrc Η εντολή αυτή όμως θα χρειαστεί λίγη ώρα μέχρι να επιστρέψει τα αποτελέσματα καθώς πρέπει να ψάξει όλους τους καταλόγους. Εάν αυτή η εντολή δοθεί από έναν απλό χρήστη, τότε θα εμφανιστούν αρκετά μηνύματα απαγόρευσης των δικαιωμάτων καταλόγων για τους οποίους μόνο ο υπερχρήστης έχει τη δυνατότητα να ανοίξει. Σημασία πάντως έχει ότι η εντολή find βρήκε το αρχείο που ζητούσαμε. Λίγο γρηγορότερη να ήτανε μόνο slocate Η slocate(1) ψάχνει και αυτή σε ολόκληρο το σύστημα αρχείων όπως και η find, αλλά ψάχνει μια βάση δεδομένων αντί για τους καταλόγους τους συστήματος.. Η βάση αυτή ανανεώνεται αυτόματα μόνη της κάθε ημέρα όποτε δε χρειάζεται να κάνετε κάτι. Μπορείτε όμως να τρέξετε την εντολή updatedb(1) για να ανανεώσετε τη βάση δεδομένων της slocate (πριν το κάνετε αυτό θα χρειαστεί να έχετε συνδεθεί ως υπερχρήστης). Ένα παράδειγμα στη πράξη: % slocate xinitrc # we don't have to go to the root /var/x11r6/lib/xinit/xinitrc /var/x11r6/lib/xinit/xinitrc.fvwm2 /var/x11r6/lib/xinit/xinitrc.openwin /var/x11r6/lib/xinit/xinitrc.twm Πήραμε πολύ περισσότερα αποτελέσματα από όσα ψάχναμε. Με αυτές τις δύο εντολές μπορούμε να βρούμε ότι είδους αρχείο θέλουμε από το σύστημά μας Ο κατάλογος /etc/rc.d Όλα τα αρχεία τα οποία χρησιμοποιούνται κατά την εκκίνηση του υπολογιστή για τις διάφορες υπηρεσίες και διεργασίες βρίσκονται στον κατάλογο /etc/rc.d. Το Slackware χρησιμοποιεί το μοτίβο του BSD σε αντίθεση αυτού του System V init scripts, το οποίο κάνει την αλλαγή ρυθμίσεων αρκετά πιο δύσκολη χωρίς να είναι δυνατή η χρήση ενός συγκεκριμένου προγράμματος. Στα BSD init scripts, κάθε επίπεδο φόρτωσης του συστήματος (runlevel) έχει τη μορφή rc.0, rc.4, rc.6, ενώ στο

47 System V, κάθε επίπεδο φόρτωσης έχει το δικό του κατάλογο, και ο κάθε κατάλογος περιέχει διάφορα init scripts. Υπάρχουν διάφορες κατηγορίες των αρχείων που χρησιμοποιούνται κατά την εκκίνηση του συστήματος. Αυτά είναι τα αρχεία συστήματος εκκίνησης, τα αρχεία φόρτωσης συστήματος, αρχεία εκκίνησης υπηρεσιών δικτύου και η συμβατικότητα με το System V. Όπως και στις προηγούμενες ενότητα, έτσι και εδώ θα αναλύσουμε παρακάτω αναλυτικότερα τι κάνει το κάθε τι Η εκκίνηση του συστήματος Το πρώτο πρόγραμμα το τρέχει στο Slackware, μετά το φόρτωση του πυρήνα, είναι το init(8). Το αρχείο αυτό, ένα μικρό πρόγραμμα είναι στην ουσία, διαβάζει το αρχείο /etc/inittab(5) προκειμένου να δει τι υπηρεσίες και προγράμματα πρέπει να φορτώσει. Αρχικά τρέχει το αρχείο /etc/rc.d/rc.s για να προετοιμάσει το σύστημα πριν μπεί στο κανονική επίπεδο φόρτωσης και λειτουργίας (runlevel). Tο αρχείο rc.s ενεργοποιεί την εικονική μνήμη, αντιστοιχεί τους σκληρούς δίσκους στο σύστημα, καθαρίζει τα αρχεία log, ελέγχει για συσκευές άμεσης τοποθέτησης και λειτουργίας (Plug and Play), φορτώνει τις μονάδες του πυρήνα (kernel modules), ρυθμίζει τις συσκευές PCMCIA, ενεργοποιεί τις σειριακές και παράλληλες θύρες του υπολογιστή και τρέχει τα System V init scripts (εάν υπάρχουν). Προφανώς όπως βλέπεται το rc.s εκτελεί πολλές βασικές λειτουργίες για την εκκίνηση του συστήματος αλλά υπάρχουν και άλλα αρχεία script στον κατάλογο /etc/rc.d τα οποία θα καλέσει το rc.s για να ολοκληρώσει τη δουλειά του: rc.s Το βασικό αρχείο αρχικοποίησης του συστήματος. rc.modules Φορτώνει τις μονάδες του πυρήνα. Συσκευές όπως η κάρτα δικτύου, υποστήριξη για PPP και άλλα διάφορα προγράματα υποστήριξης. Εάν το αρχείο αυτό εντοπίσει το rc.netdevice, θα το εκτελέσει αυτόματα. rc.pcmcia Ψάχνει και ρυθμίζει τις υπάρχουσες PCMCIA συσκεύες οι οποίες μπορεί να υπάρχουν στο σύστημα. Αυτό είναι χρήσιμο κυρίως για χειριστές φορητών υπολογιστών καθώς λογικά θα έχουν PCMCIA modem ή κάρτα δικτύου. rc.serial Ρυθμίζει τις σειριακές θύρες του υπολογιστή rc.sysvinit Ελέγχει για τα System V init scripts για το επιθυμητό επίπεδο φόρτωσης. Αυτή η λειτουργία περιγράφεται αναλυτικότερα παρακάτω Ρύθμιση δικτύου κατά την εκκίνηση Τα επίπεδα εκκίνησης και λειτουργίας 2,3 και 4 θα ξεκινήσουν τις υπηρεσίες δικτύου. Τα παρακάτω αρχεία είναι υπεύθυνα για την εκκίνηση των λειτουργιών του δικτύου. rc.inet1 Το αρχείο αυτό έχει δημιουργηθεί από το netconfig και είναι υπεύθυνο για βασικό στήσιμο του δικτύου.

48 rc.inet2 rc.atalk rc.httpd rc.news Τρέχει μετά το rc.inet1 και ξεκινά τις βασικές υπηρεσίες του δικτύου. Ξεκινά τις υπηρεσίες AppleTalk. Ξεκινά τον εξυπερετητή δικτύου Apache. Όπως και άλλα αρχεία rc, έτσι κι αυτό μπορεί να χρησιμοποιηθεί για να ξεκινήσει και να σταματήσει την αντίστοιχη υπηρεσία. Το rc.httpd δέχετε εντολές όπως stop, start και restart. Ξεκινά τον εξυπηρετητή δικτύου Συμβατικότητα με το System V Η συμβατικότητα με το System V init ξεκίνησε στο Slackware 7.0. Μπορεί άλλες διανομές Linux να χρησιμοποιούν αυτό το είδος αντί του BSD. Όπως είπαμε και προηγουμένως, το στυλ του System V δίνει τα αρχεία init ξεχωριστό φάκελο, ενώ το BSD δίνει για ένα init αρχείο για κάθε runlevel. Το αρχείο rc.susvinit ψάχνει για την ύπαρξη System V init scripts τα οποία μπορεί να υπάρχουν στο κατάλογο /etc/rc.d και στη συνέχεια τα τρέχει, εάν το επίπεδο λειτουργίας το επιτρέπει. Αυτό είναι χρήσιμο για εμπορικά λογισμικά πακέτα τα οποία εγκαθηστούν System V init scripts.

49 4.2 Επιλέγοντας τον Πυρήνα Ο πυρήνας είναι μέρος του λειτουργικού συστήματος και είναι αυτό ο οποίος παρέχει τη πρόσβαση στο υλικό του υπολογιστή, ελέγχει τις εργασίες και γενικότερα έχει τον έλεγχο πάνω στο σύστημα σας. Ο πυρήνας παρέχει την υποστήριξη στις συσκευές του υπολογιστής σας, πράγμα που σημαίνει ότι η επιλογή του πυρήνα είναι ένα σημαντικό βήμα στη διαδικασία της εγκατάστασης και ρύθμισης του συστήματος. Το Slackware σας παρέχει με αρκετούς έτοιμους, μεταγλωττισμένους,πυρήνες για να επιλέξετε έναν από αυτούς. Ο καθένας παρέχει επιπλέον υποστήριξη σε κάποιο συγκεκριμένο υλικό. Μπορείτε να εγκαταστήσετε αυτούς τους έτοιμους πυρήνες ή να μεταγλωττίσετε τον δικό σας με τις ρυθμίσεις που εσείς θέλετε. Όπως και να έχει όμως πρέπει να είστε σίγουροι πως ο πυρήνας υποστηρίζει το υλικό που έχετε στη κατοχή σας Ο κατάλογος /kernels στο CD/DVD-ROM του Slackware Οι ήδη μεταγλωττισμένοι πυρήνες βρίσκονται στον κατάλογο /kernels στο CD ή DVD του Slakcware όπως επίσης στο FTP site στο κύριο κατάλογο του Slackware. Η διαθεσιμότητα των πυρήνων αλλάζει καθώς κυκλοφορούν νέες εκδόσεις, πράγμα που σημαίνει πως οι οδηγίες που υπάρχουν σε αυτόν τον κατάλογο έχουν να κάνουν με τον κάθε πυρήνα ή σειρά πυρήνων (2.4.x ή 2.6.x). Ο κατάλογος /kernels έχει υποκαταλόγους για κάθε πυρήνα ξεχωριστά. Ο κάθε υποκοκατάλογος περιέχει τα παρακάτω αρχεία: Αρχείο System.map bzimage config Σκοπός Το system map αρχείο για τον πυρήνα Το ουσιαστικό image αρχείο του πυρήνα Οι ρυθμίσεις του πυρήνα Για να χρησιμοποιήσετε έναν πυρήνα, αντιγράψτε το αρχείο System.map και config στον κατάλογο /boot και το image αρχείο του πυρήνα στο /boot/vmlinuz. Τρέξτε το /sbin/lilo για να εγκαταστήσετε το LILO για τον νέο πυρήνα και στη συνέχεια κάντε επανεκκίνηση. Αυτό είναι όλο που χρειάζεται να να εγκαταστήσετε ένα νέο πυρήνα από το CD/DVD. Οι πυρήνες που έχουν κατάληξη.i υποστηρίζουν συσκευές IDE. Αυτό σημαίνει οτι δεν παρέχουν υποστήριξη SCSI. Υποστήριξη SCSI παρέχουν οι πυρήνες με κατάληξη.s. Παρέχουν όλη την υποστήριξη που παρέχουν και οι.i πυρήνες συν επιπλέον υποστήριξη SCSI Μεταγλώτιση ενός πυρήνα από τον πηγαίο κώδικα Η ερώτηση Πρέπει να μεταγλωττίσω ο ίδιος τον πυρήνα για το σύστημα μου είναι πολύ συχνή από τους νέους χρήστες. Η απάντηση είναι ίσως. Υπάρχουν κάποιες περιπτώσεις όπου θα χρειαστείτε να μεταγλωττίσετε τον πυρήνα μόνοι σας για να ταιριάζει με τις απαιτήσεις σας. Οι περισσότεροι χρήστες κάνουν χρήση κάποιου έτοιμοι πυρήνα με τις αντίστοιχες μονάδες του (modules) και έχουν ένα απολύτως σταθερό και λειτουργικό σύστημα. Θα χρειαστεί να μεταγλωττίσετε έναν πυρήνα σε περίπτωση που θέλετε να χρησιμοποιήσετε κάποιον που δεν προσφέρει έτοιμο το Slackware ή εάν, όπως είπαμε προηγουμένως, θέλετε υποστήριξη για κάποια συγκεκριμένη συσκευή η οποία δεν υποστηρίζεται εξ' αρχής. Οποιοςδήποτε με σύστημα SMP θα θέλει να έχει στήριξη του SMP που σημαίνει ότι θα πρέπει να ρυθμίσει αντίστοιχα τον πυρήνα και στη συνέχεια να τον μεταγλωττίσει. Επίσης, είναι πολλοί οι χρήστες όπου το σύστημα τους τρέχει πολύ γρηγορότερα με κάποιο πυρήνα ραμμένο στα μέτρα τους.

50 Το να ρυθμίσετε και μεταγλωττίσετε τον δικό σας πυρήνα δεν είναι δα και τόσο δύσκολο. Το πρώτο βήμα είναι να βεβαιωθείτε πως έχετε τον πηγαίο κώδικα του πυρήνα. Επίσης να σιγουρευτείτε ότι έχετε εγκαταστήσει τα πακέτα της σειράς K κατά τη διάρκεια εγκατάστασης του Slackware, όπως επίσης τη σειρά D και συγκεκριμένα τον μεταγλωττιστή C, GNU make και GNU binutils. Γενικά, είναι καλό να έχετε εγκαταστήσει όλα τα πακέτα της σειρά D εάν έχετε σκοπό να κάνετε κάθε είδους ανάπτυξη στο σύστημα σας. Μπορείτε επίσης να κατεβάσετε τον πηγαίο κώδικα του τελευταία πυρήνα από το Μεταγλώττιση πυρήνα της σειράς 2.4.x % su - Password: # cd /usr/src/linux Το πρώτο βήμα είναι να φέρεται τον πυρήνα στην βασική του κατάσταση. Αυτό γίνεται δίνοντας τη παρακάτω εντολή (προσέξτε όμως πως εάν θέλετε να σώσετε το προηγούμενο.config αρχείο του πυρήνα θα πρέπει να το σώσετε πριν την εντολή αυτή μιας και θα το διαγράψει χωρίς προειδοποίηση. # make mrproper Τώρα μπορείτε να ρυθμίσετε τον πυρήνα για το σύστημα σας. Ο τρέχοντας πυρήνας παρέχει τρεις τρόπους για να κάνετε κάτι τέτοιο. Ο πρώτος είναι ο κλασσικός τρόπος μέσα από τη κονσόλα/κέλυφος (console/shell) με το σύστημα ερωτήσεων απαντήσεων. Σας ρωτάει διάφορες ερωτήσεις και στη συνέχεια δημιουργεί το.config αρχείο βάση των απαντήσεών σας. Το πρόβλημα με αυτό το σύστημα είναι πως εάν κάτι πάει στραβά τότε πρέπει να ξεκινήσετε από την αρχή. Οι περισσότεροι χρήστες ακολουθούν όμως τη μέθοδο με τα μενού. Τέλος, υπάρχει και ένας γραφικό σύστημα ρυθμίσεις του πυρήνα. Διαλέξτε ότι σας ταιριάζει περισσότερο με μία από τις παρακάτω εντολές: # make config (κονσόλα, ερωτήσεις και απαντήσεις) # make menuconfig (κονσόλα με μενού) # make xconfig (γραφική έκδοση, πρέπει να τρέχετε τo X)

51 Figure 4-1. Kernel Configuration Menu Οι νέοι χρήστες θα βρουν ευκολότερο στη χρήση το menuconfig. Δίνονται και επεξηγήσεις για τα διάφορα μέρη του πύρινα. Αφού ρυθμίσετε τον πυρήνα σας, κλείστε το πρόγραμμα ρύθμισης. Θα δημιουργήσει αυτόματα το αρχείο.config. Τώρα χρειάζεται απλώς ετοιμάσετε τον κατάλογο που περιέχει τον κώδικα του πυρήνα: # make dep # make clean Το επόμενο βήμα είναι η μεταγλώττιση του πυρήνα. Αρχικά δοκιμάστε να δώσετε την εντολή με το bzimage: # make bzimage Αυτό ίσως πάρει λίγη ώρα, εξαρτάται από τη ταχύτητα του επεξεργαστή. Κατά τη διάρκεια της μεταγλώττισης του πυρήνα θα βλέπετε διάφορα μηνύματα. Αφού έχει γίνει η μεταγλώττιση θα χρειαστεί να συνεχίσετε με όσα μέρη του πυρήνα έχουν χαρακτηριστεί ως modular. # make modules Τώρα μπορούμε να εγκαταστήσουμε τον πυρήνα και τις μονάδες του (modules). Για να εγκαταστήσετε έναν πυρήνα στο Slackware πρέπει απλώς να δώσετε τις παρακάτω εντολές: # mv /boot/vmlinuz /boot/vmlinuz.old # cat arch/i386/boot/bzimage > /vmlinuz # mv /boot/system.map /boot/system.map.old # cp System.map /boot/system.map # make modules_install Θα χρειαστεί να επεξεργαστείτε το αρχείο /etc/lilo.conf και να προσθέσετε και τον παλαιό πυρήνα σε περίπτωση που ο νέος δε δουλεύει. Αφού κάνετε τις απαραίτητες ρυθμίσεις, τρέξτε το /sbin/lilo για να εφαρμοστούν οι νέες ρυθμίσεις. Τώρα μπορείτε να κάνετε μια επανεκκίνηση και να

52 χρησιμοποιήσετε τον νέο πυρήνα Μεταγλώτιση πυρήνα σειράς 2.6.x Η μεταγλώττιση ενός πυρήνα σειράς 2.6.x διαφέρει λίγο ως προς αυτή του 2.4.x. και του 2.2.x, αλλά είναι σημαντικό να κατανοήσετε αρχικά τις διαφορές. Δεν χρειάζεται να τρέξετε τα make dep και make clean. Επίσης, η διαδικασία μεταγλώττισης του πυρήνα είναι πολύ πιο κατανοητή αλλά έχει κάποια ιδιαίτερα σημεία που πρέπει να προσέξετε. Εάν όμως έχετε προβλήματα κατά τη διάρκεια της μεταγλώττισης ή θέλετε να ξέρετε τι ακριβώς γίνεται τότε μπορείτε να δώσετε τη παρακάτω εντολή. Η παράμετρος V=1 σας επιτρέπει να παίρνετε πολύ περισσότερες πληροφορίες σχετικά με τη μεταγλώττιση οι οποίες μπορούν να βοηθήσουν εσάς ή κάποιον άλλον που θα έρθει αντιμέτωπος με κάποιο πρόβλημα. # make bzimage V= Χρησιμοποιώντας τις μονάδες του πυρήνα (Kernel Modules) Οι μονάδες του πυρήνα είναι ένα άλλο όνομα για τους οδηγούς συσκευών οι οποίοι χρησιμοποιούνται από έναν πυρήνα Σας επιτρέπουν να διευρύνεται την υποστήριξη συσκευών χωρίς να χρειάζεται να χρησιμοποιήσετε κάποιον άλλον πυρήνα Μπορείτε επίσης να φορτώσετε ή να ξεφορτώσετε τις μονάδες που θέλετε οποιαδήποτε στιγμή. Αυτό βοηθάει τους διαχειριστές συστημάτων να αναβαθμίζουν τους οδηγούς χωρίς ιδιαίτερες διαδικασίες. Μια νέα μονάδα μπορεί να εγκατασταθεί, η παλαιά να αφαιρεθεί, και μια νέα να φορτώσετε στο σύστημα. Όλα αυτά χωρίς να κάνετε ούτε μία επανεκκίνηση. Οι μονάδες βρίσκονται στον κατάλογο /lib/modules/έκοδοση_του_πυρήνα/. Μπορούν να φορτωθούν κατά τη διάρκεια της εκκίνησης μέσω του αρχείου rc.modules. Το αρχείο περιέχει πολύ καλά σχόλια και παραδείγματα για τα κυριότερες μονάδες. Για να δείτε όλες τις μονάδες που βρίσκονται σε λειτουργία δώστε την εντολή lsmod: # lsmod Module Size Used by parport_pc parport [parport_pc] Μπορείτε να δείτε εδώ πως η μόνη μονάδα που είναι φορτωμένη είναι αυτή για τη παράλληλη θύρα. Για να αφαιρέσετε μια μονάδα μπορείτε να δώσετε την εντολή rmmod. Για να φορτώσετε μια μονάδα δίνετε την εντολή mordpobe ή insmod. Συνήθως η modprobe είναι ασφαλέστερη λύση γιατί θα φορτώσει οποιεσδήποτε άλλες μονάδες που χρειάζονται από αυτή που θέλετε να φορτώσετε. Πολλοί από τους χρήστες δεν χρειάστηκε ποτέ να φορτώσουν ή να ξεφορτώσουν κάποια μονάδα. Χρησιμοποιούν απλώς τον ίδιο τον πυρήνα να φορτώσει τις μονάδες (kernel autoloader / module managment). To Slackware εξ' αρχής περιέχει το kmod στους πυρήνες που περιέχονται μαζί με αυτό. Το kmod είναι μια επιλογή του πυρήνα όπου του επιτρέπει να φορτώνει αυτόματα όλες τις μονάδες οι οποίες χρειάζονται. Για περισσότερες πληροφορίες σχετικά με το kmod και τη χρήση του δείτε στο αρχείο: /usr/src/linux/documentation/kmod.txt. Θα χρειαστεί όμως να έχετε το κώδικα του πυρήνα, διαφορετικά κατεβάστε τον από εδώ: Περισσότερες πληροφορίες μπορούν να βρεθούν στα αρχεία man τις παραπάνω εντολές όπως επίσης και στο αρχείο rc.modules που αναφερθήκαμε προηγουμένως.

53 Κεφάλαιο 5: Ρύθμιση Δικτύου 5.1 Εισαγωγή: το netconfig είναι φίλος σου. Όταν εγκαταστήσατε αρχικά το Slackware, το πρόγραμμα εγκατάστασης κάλεσε το πρόγραμμα netconfig. Το netconfig προσπάθησε να εκτελέσει τις ακόλουθες λειτουργίες για εσάς: Ρώτησε το όνομα του υπολογιστή, και το όνομα του domain για τον υπολογιστή σας. Έδωσε μια σύντομη εξήγηση για διάφορους τρόπους σχημάτων διευθυνσιοδότησης, και πότε θα πρέπει να χρησιμοποιηθούν, και σας ρώτησε ποιο σχήμα διευθυνσιοδότησης IP επιθυμείτε για να ρυθμίσει την κάρτα δικτύου σας: Static-IP DHCP Loopback Στη συνέχεια του δίνετε η εντολή για την ρύθμιση της κάρτας δικτύου. Το netconfig βασικά αναλαμβάνει περίπου το 80% από την εργασία για την ρύθμιση της σύνδεσης σας στο LAN δίκτυο σας εαν το αφήσετε. Σημειώστε ότι προτείνουμε έντονα να ελέγξετε το αρχείο μορφοποίησης για μερικούς λόγους: 1. Δεν πρέπει ποτέ να εμπιστεύεστε ένα πρόγραμμα εγκατάστασης για να ρυθμίσει σωστά τον υπολογιστή σας. Εάν χρησιμοποιείτε ένα πρόγραμμα εγκατάστασης, πρέπει να ελέγχετε το αρχείο μορφοποίησης μόνοι σας. 2. Εάν ακόμα μαθαίνετε το Slackware και το σύστημα διαχείρισης του Linux, η ανάγνωση ενός λειτουργικού αρχείου μορφοποίησης μπορεί να φανεί χρήσιμη. Θα γνωρίζετε τουλάχιστον πως πρέπει να μοιάζει ένα αρχείο μορφοποίησης. Αυτό θα σας επιτρέπει να διορθώνετε προβλήματα από λάθος ρύθμιση (misconfiguration) του συστήματος αργότερα. 5.2 Ρύθμιση Δικτυακού Υλικού Έχοντας αποφασίσει ότι θέλετε να φέρετε το Slackware μηχάνημα σας σε κάποιο είδος δικτύου, το πρώτο πράγμα που θα χρειασθείτε είναι μια συμβατή με Linux κάρτα δικτύου. Θα χρειασθεί να ασχοληθείτε λίγο ώστε να είστε σίγουροι ότι η κάρτα είναι πραγματικά συμβατή με Linux (παρακαλούμε να κοιτάξετε στα αρχεία τεκμηρίωσης (Linux Documentation Project) και/ή στα αρχεία τεκμηρίωσης του πυρήνα για πληροφορίες για την τωρινή κατάσταση της προτεινόμενης κάρτας δικτύου σας). Ως γενικός κανόνας, το πιθανότερο είναι να εκπλαγείτε ευχάριστα από τον αριθμό καρτών δικτύου που υποστηρίζονται από τους νέους πυρήνες. Έχοντας πει αυτό, συνεχίζω να προτείνω την παραπομπή σε οποιαδήποτε από τις διάφορες λίστες συμβατότητας για Linux (όπως το The GNU/Linux Beginners Group Hardware Compatibility Links 1 και το The Linux Documentation Project Hardware HOWTO 2) που είναι διαθέσιμες στο Internet προτού αγοράσετε την κάρτα σας. Λίγο παραπάνω χρόνος σε έρευνα μπορεί να σας γλιτώσει από μέρες ή ακόμα και εβδομάδες προσπαθειών για διόρθωση προβλημάτων μιας κάρτας που δεν θα είναι συμβατή με Linux τελικά. Όταν επισκεφθείτε τις λίστες συμβατότητας υλικού για Linux που είναι διαθέσιμες στο internet, ή όταν απευθυνθείτε στα αρχεία τεκμηρίωσης του πυρήνα που εγκαταστήσατε στο μηχάνημα σας, θα ήταν σωστό να βρείτε πιο κομμάτι (module) θα πρέπει να εγκαταστήσετε στον πυρήνα σας για να υποστηρίζει την κάρτα δικτύου σας Φόρτωση μονάδων δικτύου

54 Τα modules του πυρήνα που εκκινούν κατά την εκκίνηση του συστήματος φορτώνονται από το αρχείο rc.modules στο /etc/rc.d ή από το αυτόματο φόρτωμα modules του πυρήνα που εκκινεί από το /etc/rc.d/rc/hotplug. Το προκαθορισμένο αρχείο rc.modules περιλαμβάνει ένα τομέα για υποστήριξη συσκευών δικτύου. Εαν ανοίξετε το rc.modules και ψάξετε για αυτό τον τομέα, θα παρατηρήσετε ότι πρώτα ελέγχει για ένα εκτελέσιμο αρχείο rc.netdevice στο /etc/rc.d/. Αυτό το αρχείο διαταγών δημιουργείτε αν το setup έχει βρει αυτόματα την συσκευή δικτύου σας κατά την εγκατάσταση Κάτω από μια δομή if υπάρχει μια λίστα από συσκευές δικτύου και modprobe γραμμές, η κάθε μία έχει το σύμβολο του σχόλιου. Βρείτε την συσκευή σας και αφαιρέστε το σύμβολο του σχολίου στην κατάλληλη γραμμή modprobe, στη συνέχεια αποθηκεύστε το αρχείο. Εκτελώντας το rc.modules ως root θα φορτώσετε τον οδηγό της δικτυακής σας συσκευής (όπως και κάθε άλλο module που δεν είναι σε σχόλιο). Σημειώστε ότι κάποια modules (όπως ο οδηγός ne2000) απαιτούν παραμέτρους, να είστε σίγουροι ότι επιλέξατε την σωστή γραμμή Τοπικό Δίκτυο - LAN (10/100/1000Base-T και Base-2) Αυτός ο τίτλος περιλαμβάνει όλες τις εσωτερικές PCI και ISA κάρτες δικτύου. Οδηγοί για αυτές τις κάρτες παρέχονται μέσο της φόρτωσης κάποιων modules στον πυρήνα όπως καλύφθηκε στην προηγούμενη παράγραφο. Το /sbin/netconfig πρέπει να έχει φορτωθεί για την κάρτα σας και να έχει επιτυχώς ρυθμίσει το αρχείο rc.netdevice. Εαν αυτό δεν συνέβει, το πιθανότερο πρόβλημα θα είναι ότι το module που προσπαθείτε να φορτώσετε για αυτή την κάρτα δεν είναι το σωστό (δεν είναι άγνωστο ότι διαφορετικές γενιές από την ίδια εταιρία καρτών δικτύου από τον ίδιο κατασκευαστή χρειάζονται διαφορετικά modules). Εαν είστε σίγουρος ότι αυτό είναι το σωστό module, η δεύτερη πιθανότητα είναι να αναφερθείτε στα αρχεία τεκμηρίωσης για αυτό το module ώστε να ανακαλύψετε αν χρειάζονται ή όχι κάποιες ειδικές παράμετροι κατά την αρχικοποίηση του module Modems Όπως και οι LAN κάρτες, τα modems μπορούν να έχουν διάφορες επιλογές υποστήριξης. Μέχρι πρόσφατα, τα περισσότερα modems ήταν 8 ή 16 bit κάρτες ISA. Με την βοήθεια της Intel και των κατασκευαστών μητρικών πλακών οι διάυλοι ISA είναι τελείως νεκροί, είναι σύνηθες πλέον για τα περισσότερα modems να είναι είτε εξωτερικά modems που συνδέονται με σειριακή θύρα ή USB είτε εσωτερικά PCI modems. Εαν θέλετε το modem σας να λειτουργεί στο Linux, είναι ΠΟΛΥ σημαντικό να κάνετε μια έρευνα για το ποιο modem να αγοράσετε, ιδιαίτερα αν σκέφτεσθε να αγοράσετε κάποιο PCI modem. Πολλά, αν όχι όλα, τα PCI modems που είναι διαθέσιμα στα ράφια των καταστημάτων σήμερα είναι WinModems. Στα WinModems λοίπουν κάποια βασικά τμήματα του υλικού από την κάρτα του modem: οι λειτουργίες που λογικά εκτελούντε από αυτή τη συσκευή μέτα-φορτώνονται στον επεξεργαστή από τον οδηγό του modem και το λειτουργικό σύστημα Windows. Αυτό σημαίνει ότι δεν έχουν πρότυπη σειριακή διεπαφή που το PPPD θα περιμένει να δει όταν θα προσπαθήσετε να καλέσετε τον παροχέα σας για να μπείτε στο Internet. Αν θέλετε να είστε απόλυτα σίγουρος για ότι modem που θα αγοράσετε θα δουλεύει στο Linux, αγοράστε ένα εξωτερικό modem που να συνδέεται στη σειριακή θύρα στο PC σας. Αυτά είναι σίγουρο ότι θα δουλεύουν καλύτερα και με λιγότερα προβλήματα στην εγκατάσταση και στη συντήρηση, αλλά απαιτούν εξωτερική παροχή ρεύματος και κοστίζουν περισσότερο. Υπάρχουν αρκετές ιστοσελίδες που παρέχουν οδηγούς και βοήθεια για τη ρύθμιση για συσκεύες βασισμένες σε WinModem. Κάποιοι χρήστες έχουν δηλώσει ότι κατάφεραν επιτυχώς να ρυθμίσουν και να εγκαταστήσουν οδηγούς για δίαφορα winmodems, συμπεριλαμβανομένων των Lucent,

55 Conexant, και Rockwell. Καθώς το απαιτούμενο λογισμικό για αυτές τις συσκεύες δεν περιλαμβάνετε στο Slackware, και διαφέρει από οδηγό σε οδηγό, δεν θα αναφερθούμε λεπτομεριακά σε αυτό PCMCIA Ως κομμάτι από την εγκατάσταση του Slackware, σας προσφέρεται η δυνατότητα να εγκαταστήσετε το πακέτο pcmcia (στη σειρά A από τα πακέτα). Αυτό το πακέτο περιλαμανει εφαρμογές και αρχεία εγκατάστασης που απαιτούνται για να λειτουργήσουν οι PCMCIA κάρτες στο Slackware. Είναι σημαντικό να σημειώσουμε ότι το πακέτο pcmcia εγκαθιστά μόνο το γενικό λογισμικό που χρειάζεται για να λειτουργήσουν οι κάρτες PCMCIA στο Slackware. ΔΕΝ περιλαμβάνει κάποιον οδηγό συσκεύης ή κάποια modules. Τα διαθέσιμα modules και οδηγοί είναι διαθέσιμα στον κατάλογο /lib/modules/`uname -r`/pcmcia. Μπορεί να χρειασθεί να κάνετε κάποιους πειραματισμούς για να βρείτε ένα module που να δουλεύει με την κάρτα σας. Θα επεξεραστείτε το /etc/pcmcia/network.opts (για μία Ethernet κάρτα) ή το /etc/pcmcia/wireless.opts (αν έχετε μια ασύρματη κάρτα δικτύου). Όπως τα περισσότερα αρχεία διαμόρφωσης στο Slackware, και αυτά τα δύο αρχεία είναι πολύ ωραία σχολιασμένα και θα πρέπει να είναι εύκολο να καθορίσετε ποιες μετατροπές θα πρέπει να κάνετε. 5.3 Ρύθμιση TCP/IP Σε αυτό το σημείο η κάρτα δικτύου πρέπει να είναι τοποθετημένη στον υπολογιστή, και τα σχετικά modules του πυρήνα να είναι φορτωμένα. Δεν μπορείτε ακόμα να επικοινωνήσετε μέσω της κάρτας δικτύου, αλλά πληροφορίες για τη δικτυακή συσκευή μπορούν να βρεθούν με την εντολή ifconfig -a. # ifconfig -a eth0 Link encap:ethernet HWaddr 00:A0:CC:3C:60:A4 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:1 dropped:0 overruns:0 frame:0 TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes: (109.5 Mb) TX bytes: (8.9 Mb) Interrupt:5 Base address:0x8400 lo Link encap:local Loopback inet addr: Mask: UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2234 errors:0 dropped:0 overruns:0 frame:0 TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes: (164.8 Kb) TX bytes: (164.8 Kb) Αν δώσατε /sbin/ifconfig χωρίς την παράμετρο -a δεν θα δείτε τη διεπαφή eth0, καθώς η κάρτα δικτύου δεν έχει προς το παρόν μια έγκυρη διεύθυνση IP ή προορισμό. Αν και υπαρχουν αρκετοί τρόπου για να ρυθμίσει κανείς ένα δίκτυο, όλοι οι τρόποι μπορούν να χωριστούν σε δυο τύπους: Στατικοί και Δυναμικοί. Τα στατικά δίκτυα ρυθμίζονται έτσι ώστε κάθε κόμβος (υπολογιστής με μια διεύθυνση IP) να έχει πάντα την ίδια διεύθυνση IP.Τα δυναμικά δίκτυα ρυθμίζονται έτσι ώστε οι διευθύνσεις IP για τους κόμβους να ελέγχονται απο έναν server ο οποίος ονομάζεται DHCP server DHCP Το DHCP (Πρωτόκολλο Δυναμικής Ρύθμισης Κόμβων), είναι ένα μέσο με το οποίο ένας

56 υπολογιστής κατα την εκκίνηση του μπορεί να πάρει μια διεύθυνση IP. Όταν ο πελάτης υπολογιστής ξεκινάει, στέλνει μια αίτηση στο Τοπικό Δίκτυο (LAN) για να βρει αν υπάρχει κάποιος DHCP server να του αποδώσει μια διεύθυνση IP. Ο DHCP έχει μια δεξαμενή απο διαθέσιμες IP διευθύνσεις και θα απαντήσει στην αίτηση με μια IP διεύθυνση απο τη δεξαμενή, μαζί με έναν χρόνο απόδοσης. Μόλις ο χρόνος αυτός λήξει, ο πελάτης υπολογιστής πρέπει να επικοινωνήσει ξανά με τον server και να επαναλάβει την διαπραγμάτευση. Ο πελάτης αφού δεχτεί την διεύθυνση IP απο τον server ρυθμίζει τη συγκεκριμένη διεπαφή (interface) με την διεύθυνση IP. Οι πελάτες DHCP χρησιμοποιούν για διαπραγμάτευση με τον server την τελευταία IP που τους είχε ανατεθεί την προηγούμενη φορά. Αν αυτό δεν είναι εφικτό, ο server θα τους αποδώσει καινούργια διεύθυνση. Έτσι η επικοινωνία έχει ως εξήςs : πελάτης: Υπάρχει κάποιος DHCP server διαθέσιμος στο LAN? Server: Ναι, εγώ. πελάτης: Χρειάζομαι μια διεύθυνση IP. Server: Μπορείς να πάρεις την για δευτερόλεπτα. πελάτης: Ευχαριστώ. πελάτης: Υπάρχει κάποιος DHCP server διαθέσιμος στο LAN? Server:Ναι, εγώ. πελάτης:χρειάζομαι μια διεύθυνση IP.Την τελευταία φορά που μιλήσαμε, είχα την Μπορώ να τη χρησιμοποιήσω ξανά? Server:Ναι, μπορείς ( ή "Όχι, δεν μπορείς, πάρε την " ). πελάτης: Ευχαριστώ. Ο πελάτης DHCP στο Linux είναι το /sbin/dhcpcd. Στο /etc/rc.d/rc.inet1 φαίνεται οτι το /sbin/dhcpcd καλείται στη μέση του script. Το dhcpcd πέρα απο την παραπάνω διαπραγμάτευση, κρατάει επίσης το χρόνο που παραμένει για να λήξει η τρέχουσα IP διεύθυνση και αυτόματα θα επικοινωνήσει τον DHCP server με αίτηση να ανανεώσει το χρόνο όταν αυτό χρειαστεί. Επίσης μπορεί να χειρειστεί σχετικές πληροφορίες, όπως τι ntp server να χρησιμοποιήσει, ποια route να χρησιμοποιείσει για τη δρομολόγηση κτλ. Η ρύθμιση του DHCP στο Slackware είναι απλή, εκτελούμε την εντολή netconfig και διαλέγουμε DHCP. Η διεπαφή eth0 είναι η default, οπότε αν θέλουμε να ρυθμίσουμε κάποια άλλη διεπαφή, πρέπει να αλλάξουμε τη σχετική μεταβλητή για τη συγκεκριμένη διεπαφή σε "YES" στο αρχείο /etc/rc.d/rc.inet1.conf Στατική IP Οι στατικές διευθύνσεις IP είναι ρυθμισμένες διευθύνσεις που αλλάζουν μόνο αν το κάνουμε χειρωνακτικά. Αυτές χρησιμοποιούνται σε κάθε περίπτωση που δεν θέλουμε οι πληροφορίες για τις διευθύνσεις IP να αλλάζουν, όπως για παράδειγμα στους servers σε ένα δίκτυο, σε οποιονδήποτε server στο διαδίκτυο και δικτυακούς δρομολογητές. Με τη στατική διευθυνσιοδότηση μπορούμε να αποδώσουμε μια διεύθυνση και αυτή να παραμείνει μέχρι να θελήσουμε να την αλλάξουμε. Οι άλλοι υπολογιστές γνωρίζουν οτι πάντα θα έχουμε αυτή την συγκεκριμένη IP και μπορούν να επικοινωνήσουν ευκολότερα /etc/rc.d/rc.inet1.conf Για να πάρει μια διεύθυνση ip το Slackware σύστημα μας μπορούμε να το ρυθμίσουμε είτε μεσω του netconfig script, είτε τροποποιώντας το αρχείο /etc/rc.d/rc.inet1.conf, το οποίο περιέχει τα εξής: # Primary network interface card (eth0) //Πρωτεύων δικτυακή επαφή (eth0)

57 IPADDR[0]="" //διεύθυνση IP NETMASK[0]="" //μάσκα δικτύου USE_DHCP[0]="" /χρήση DHCP DHCP_HOSTNAME[0]="" Στο ίδιο αρχείο στο τέλος: GATEWAY="" //πύλη δρομολόγησης Πρέπει να δώσουμε τις κατάλληλες πληροφορίες ανάμεσα στα διπλά εισαγωγικά (""). Οι μεταβλητές αυτές διαβάζονται απο το /etc/rc.d/rc.inet1 κατά την εκκίνηση του συστήματος για να ρυθμίσουν τις δικτυακές διεπαφές. Για κάθε δικτυακή διεπαφή δίνουμε τις σωστές πληροφορίες, ή δίνουμε YES στην μεταβλητή USE_DHCP. Η μεταβλητή DEFAULT_GW ορίζει την default δρομολόγηση για το Slackware. Όλες οι επικοινωνίες του υπολογιστή με άλλους υπολογιστές περνούν από αυτή την πύλη (gateway), αν δεν ορίζεται άλλη διαδρομή. Αν χρησιμοποιούμε DHCP, τις περισσότερες φορές δεν θα χρειαστεί να προσθέσουμε τίποτα εδώ, καθώς ο DHCP server ρυθμίζει όλες τις πληροφορίες /etc/resolv.conf Τώρα που έχουμε μια διεύθυνση IP και default πύλη δρομολόγησης (gateway),χρειαζόμαστε να μπορούμε να αντιστοιχίζουμε ονόματα σε IP διευθύνσεις. Κανείς δεν θέλει να δίνει στον browser τους για να δουν το Για να μην χρειάζεται να αποστηθίζουμε διευθύνσεις ip πρέπει να ρυθμίσουμε το DNS, μέσω του αρχείου /etc/resolv.conf. Σε περίπτωση που ρυθμίζουμε τη δικτυακή μας σύνδεση με DHCP, ο DHCP server μας έχει ήδη δώσει τις κατάλληλες πληροφορίες που ο πελάτης dhcp προσθέτει αυτόματα στο αρχείο αυτό. Αν παρόλαυτα χρειαστεί να ανανεώσουμε χειρωνακτικά τη λίστα με τους DNS server που θα χρησιμοποιήσουμε, τροποποιούμε το /etc/resolv.conf όπως στο παράδειγμα: # cat /etc/resolv.conf nameserver search lizella.net Η πρώτη γραμμή του αρχείου ορίζει τον nameserver (dns server) που θα χρησιμοποιoύμε. Η τιμή αυτή μπορεί να είναι μόνο διευθύνσεις IP (και όχι hostnames). Μπορούμε να έχουμε περισσότερες απο μια τιμές για nameserver. Το σύστημα προφανώς θα χρησιμοποιήσει την πρώτη και σε περίπτωση που αποτύχει θα χρησιμοποιήσει τη δεύτερη κοκ. Η δεύτερη γραμμή ορίζει την οδηγία search η οποία μας προμηθεύει με μια λίστα από domain names τα οποία θα εννούνται οτι είναι δικά μας σε κάθε περίπτωση που γίνεται μια αίτηση DNS. Αυτό μας επιτρέπει να επικοινωνούμε με άλλα συστήματα προσδιορίζοντας μόνο το πρώτο μέρος του FQDN (Fully Qualified Domain Name) τους. Για παράδειγμα αν το slackware.com είναι στο search path μας, μπορούμε να βλέπουμε το στον web browser μας αν δώσουμε απλά # ping -c 1 store PING store.slackware.com ( ): 56 data bytes 64 bytes from : icmp_seq=0 ttl=64 time=0.251 ms 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.251/0.251/0.251 ms

58 5.3.5 /etc/hosts Αν για κάποιο λόγο θέλουμε να παρακάμψουμε τον DNS server μας ή να προσθέσουμε πληροφορίες για συστήματα τα οποία δεν εξυπηρετούνται απο κάποιο DNS server, μπορούμε να τροποποιήσουμε το αρχείο /etc/hosts το οποίο περιέχει μια "τοπική" λίστα με ονόματα DNS και τις ΙP διευθύνσεις στις οποίες αντιστοιχούν. # cat /etc/hosts localhost locahost.localdomain redtail foobar.slackware.com Εδώ οι αντιστοιχίες dns ονομάτων και IP διευθύνσεων είναι όπως τις βλέπουμε, πχ το σύστημα redtail έχει την IP διεύθυνση και το foobar.slackware.com την PPP Πολλοί άνθρωποι ακόμα συνδέονται στο διαδύκτιο μέσο κάποιας dialup σύνδεσης. Η πιο συνηθισμένη μέθοδος είναι το PPP, επίσης συχνά χρησιμοποιείται και το SLIP. Η ρύθμιση του συστήματος σας για να επικοινωνεί με PPP με κάποιον απομακρυσμένο εξυπηρετητή είναι αρκετά απλή. Έχουμε συμπεριλάβει μερικά εργαλεία για να σας βαηθήσουμε στην ρύθμιση. pppsetup Το Slackware περιλαμβάνει το πρόγραμμα pppsetup για να ρυθμίσετε το σύστημα σας για να χρησιμοποιείτε τον dialup λογαριασμό σας. Μοιράζεται μια εμφάνιση και αίσθηση όμοια με αυτή του προγράμματος netconfig. Για να εκτελέσετε το πρόγραμμα, σιγουρευτείτε ότι έχετε συνδεθεί ως υπερ-χρήστης (root). Μετά πληκτρολογήστε pppsetup για να το εκτελέσετε. Θα πρέπει να δείτε μια οθόνη όμοια με την παρακάτω: Το πρόγραμμα θα παρουσιάσει μια σειρά από ερωτήσεις, στις οποίες δίνετε τις ανάλογες απανησεις. Πράγματα όπως τη συσκευή modem, το αλφαριθμητικό για την αρχικοποίηση του modem, και το τηλέφωνο του παροχέα σας (ISP). Κάποια αντικείμενα θα έχουν κάποια προκαθορισμένη τιμή, που μπορείτε να δεχθήτε τις περοσσότερες φορές. Αφού ολοκληρωθεί η εκτέλεση του προγράμματος, θα δημιουργισει ένα ppp-go πρόγραμμα και ένα ppp-off πρόγραμμα. Αυτά χρησιμοποιούντε για την εκκίνηση και τον τερματισμό, της PPP σύνδεσης. Τα δύο αυτά προγράμματα βρίσκονται στο /usr/sbin και απαιτούν δικαιώματα υπερ-χρήστη για την εκτελεσή τους. /etc/ppp Για τους περισσότερους χρήστες, η εκτέλεση του pppsetup θα είναι αρκετή. Ωστόσο, μπορεί να υπάρχει μια πιθανότητα να θέλετε να αλλάξετε τις τιμές που χρησιμοποιεί ο PPP δέμονας. Όλες οι πληροφορίες μορφοποίησης κρατούντε στο /etc/ppp. Ακολουθεί μια λίστα για το τι είναι το κάθε διαφορετικό αρχείο: ip-down Αυτό το αρχείο διαταγών τρέχει από το pppd μετά τον τερματισμό της PPP σύνδεσης. ip-up Αυτό το αρχείο διαταγών τρέχει από το pppd οταν υπάρχει μια επιτυχημένη ppp σύνδεση. Βάλτε όποιες εντολές επιθυμείτε να εκτελούντε έπειτα από κάθε επιτυχημένη σύνδεση σε αυτό το αρχείο.

59 options Γενικές επιλογές μορφοποίησης για το pppd. options.demand Γενικές επιλογές μορφοποίησης για το pppd όταν αυτό εκτελείτε σε κατάσταση αναμονής κλήσης. pppscript Οι εντολές που στέλνονται στο modem. pppsetup.txt Ένα αρχείο καταγραφής (log) που έχει τις ρυθμίσεις που κάνατε όταν εκτελέσατε το pppsetup. Σημείωση: Τα περισσότερα από αυτά τα αρχεία δεν θα βρίσκονται εκεί μέχρι να εκτελέσετε το pppsetup. 5.5 Wireless Αν και σχετικά καινούργια για τον κόσμο των υπολογιστών, η ασύρματη δικτύωση έχει προκαλέσει τεράστιο ενδιαφέρον και ολοένα και περισσότεροι θέλουν να επωφεληθούν από τα μεγάλα πλεονεκτήματα που παρέχει. Στο linux η υποστήριξη για την ασύρματη δικτύωση δεν είναι τόσο ισχυρή όσο για την παραδοσιακή ενσύρματη δικτύωση. Υπάρχουν τρια βασικά βήματα για τη ρύθμιση μιας κάρτας ασύρματου δικτύου (802.11): 1. Υποστήριξη hardware για την κάρτα ασύρματου δικτύου 2. Ρύθμιση της κάρτας ώστε να συνδεθεί σε ένα σημείο πρόσβασης ασύρματου δικτύου (wireless access point) 3. Ρύθμιση του δικτύου Υποστήριξη hardware Η υποστήριξη του υλικού μιας κάρτας ασύρματου δικτύου παρέχεται από τον πυρήνα, είτε σαν ενσωματωμένο (built in) χαρακτηριστικό είτε σαν module που φορτώνεται οποιαδήποτε στιγμή. Η εντολή netconfig θα προσπαθήσει να εντοπίσει το κατάλληλο module και να το φορτώσει, σε περίπτωση που αυτό δεν συμβεί προσπαθούμε να να βρούμε ποιο είναι το κατάλληλο kernel module για την κάρτα μας και να το φορτώσουμε στο /etc/rc.d/rc.modules ώστε να φορτώνεται αυτόματα μετα απο κάθε εκκίνηση του υπολογιστή. Στο υπάρχουν πληροφορίες πάνω στους kernel drivers για τις διαφορετικές κάρτες ασύρματου δικτύου Ρυθμίζοντας τις ιδιότητες του ασύρματου δικτύου Η περισσότερη δουλειά γίνεται με την εντολή iwconfig, έτσι όπως πάντα η ανάγνωση των σελίδων τεκμηρίωσης (man pages) για την εντολή αυτή μας δίνει όλες τις πληροφορίες που θέλουμε. Πρώτα θα πρέπει να ρυθμίσουμε το σημείο πρόσβασης ασύρματου δικτύου (wireless access point).αν και αυτά διαφέρουν σημαντικά μεταξύ τους ανάλογα με τον κατασκευαστή, τα παρακάτω τουλάχιστον θα πρέπει να ρυθμιστούν:

60 Το domain ID, ή όνομα δικτύου (ESSID) Το κανάλι που χρησιμοποιεί Τις ρυθμίσεις κρυπτογράφησης, πχ τα κλειδιά που χρησιμοποιούνται (κατά προτίμηση σε δεκαεξαδική μορφή). ΠΡΟΣΟΧΗ Σημείωση για το WEP. Το WEP έχει σοβαρά προβλήματα στην ασφάλεια του αλλά είναι καλύτερο απο τη μη χρήση κρυπτογραφίας. Για μεγαλύτερο βαθμό ασφάλειας στο ασύρματο δίκτυο προτείνεται η χρήση VPNs ή IPSec, τα οποία είναι πέρα απο το σκοπό αυτού του κειμένου. Μπορούμε επίσης να ρυθμίσουμε το access point να μην διαφημίζει το ESSID του. Υπάρχει μια τεράστια ποσότητα πληροφορίας πάνω σε αυτά τα θέματα στο διαδίκτυο. Αφού έχουμε συγκεντρώσει αυτές τις πληροφορίες και έχουμε φορτώσει τον κατάλληλο kernel driver για την κάρτα μας, μπορούμε να προσθέσουμε τις ρυθμίσεις στο rc.wireless.conf.πρέπει να προσθέσουμε τουλάχιστον το ESSID και το κλειδί, καθώς επίσης το CHANNEL, αν απαιτείται απο την κάρτα. (Δοκιμάζουμε πρώτα να μην θέσουμε τιμή στο CHANNEL και μόνο αν δεν δουλέψει θέτουμε την κατάλληλη τιμή). Οι τιμές στο rc.wireless.conf αντιστοιχούν σε παραμέτρους για την iwconfig και διαβάζονται απο το rc.wireless. Αν έχουμε κλειδί wep σε δεκαεξαδική μορφή είμαστε περισσότερο σίγουροι οτι η επικοινωνία με τo access point θα είναι πετυχημένη, απ'οτι αν το έχουμε μόνο σε μορφή λέξης. Αφού έχουμε έτοιμο το rc.wireless.conf, μπορούμε να τρέξουμε το rc.wireless ως χρήστης root, και μετά το rc.inet1, σαν root επίσης. Μπορούμε να τεστάρουμε την ασύρματη σύνδεση με τα κλασσικά δικτυακά εργαλεία ping και iwconfig. Αν έχουμε και ενσύρματη διεπαφή καλό θα είναι να την απενεργοποιήσουμε προσωρινά, με τη χρήση της ifconfig όσο τεστάρουμε την ασύρματη σύνδεση μας, ώστε να είμαστε σίγουροι οτι δεν υπάρχουν διενέξεις. Ας δούμε όμως πιο κοντά τη χρήση της iwconfig, ώστε να είμαστε σε θέση να συνδεόμαστε σε ασύρματα δίκτυα. Το πρώτο βήμα είναι να δώσουμε το όνομα δικτύου στο οποίο θέλουμε να συνδεθούμε. Αντικαθιστούμε το eth0 του παραδείγματος με τη δικτυακή επαφή που η κάρτα μας χρησιμοποιεί και αλλάζουμε το mynetwork με το ESSID που θέλουμε.έπειτα δίνουμε το κλειδί κρυπτογράφισης -αν υπάρχει- για τη σύνδεση μας με το ασύρματο δίκτυο και κατόπιν το κανάλι -αν υπάρχει. # iwconfig eth0 essid "mynetwork" # iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX # iwconfig eth0 channel n Αυτό είναι λίγο πολύ ό,τι θα χρειαστούμε Ρυθμίζοντας το δίκτυο Αυτό γίνεται με τον ίδιο τρόπο όπως στα ενσύρματα δίκτυα και καλύπτεται σε προηγούμενα μέρη αυτού του κεφαλαίου. 5.6 Δικτυακά Συστήματα Αρχείων Σε αυτό το σημείο θα πρέπει ήδη να έχουμε μια σύνδεση TCP/IP στο δίκτυο μας, να μπορούμε να κάνουμε ping σε άλλους υπολογιστές του δικτύου μας και αν έχουμε ορίσει το κατάλληλο gateway, να κάνουμε ping σε υπολογιστές στο διαδίκτυο. Για την περίπτωση που θέλουμε να μοιράζουμε

61 αρχεία και εκτυπωτές με άλλους υπολογιστές, χρησιμοποιώντας κάποιο δικτυακό σύστημα αρχείων, έχουμε τις εξής επιλογές: SMB και NFS. Πρόκειται για τα πιο ευρέως χρησιμοποιούμενα δικτυακά συστήματα αρχείων SMB/Samba/CIFS Το SMB ( Server Message Block) είναι η εξέλιξη του παλιότερου NetBIOS πρωτοκόλλου, το οποίο αρχικά χρησιμοποιούσε η IBM στο προιόν της για διαχείριση δικτύων. Η Microsoft πάντα ενδιαφερόταν για το NetBIOS και τους διαδόχους του (NetBEUI, SMB και CIFS). Το project Sambe ξεκίνησε το 1991, οπου και αρχικά γράφτηκε για να συνδέει έναν υπολογιστή IBM που χρησιμοποιεί NetBIOS, με έναν Unix server. Σήμερα το SMB είναι η προτιμούμενη μέθοδος για το διαμοιρασμό αρχείων και υπηρεσιών εκτύπωσης μέσω δικτύου εξαιτίας της υποστήριξης του απο τη Microsoft στα προιόντα της. Το αρχείο ρύθμισης της Samba στο slackware είναι το /etc/samba/smb.conf; ένα απο τα πιο καλά σχολιασμένα και τεκμηριωμένα κείμενα! Παραδείγματα για διαφόρων ειδών shares υπάρχουν και είναι έτοιμα για χρήση και τροποποίηση ανάλογα με τις ανάγκες μας. Οι manual σελίδες του smb.conf είναι ανεκτίμητης αξίας ως συνήθως. Εφόσον η τεκμηρίωση σε αυτές τις πηγές είναι πολύ καλή, δεν θα αναφερθούν σε αυτό το κεφάλαιο παρά λίγα βασικά. Το smb.conf αποτελείται απο αρκετές κατηγορίες: μια κατηγορία για κάθε share, και μια καθολική -global- κατηγορία για να ορίσουμε παραμέτρους που θα χρησιμοποιούνται παντού. Κάποιες επιλογές μπορούν να οριστούν μόνο στην καθολική κατηγορία, ενώ κάποιες άλλες μόνο εκτός της καθολικής κατηγορίας. Ανάλογα με τις ρυθμίσεις για το δίκτυο μας θα χρειαστεί να αλλάξουμε κάποια πράγματα στο smb.conf: [global] # workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 // ορίζουμε το workgroup μας workgroup = MYGROUP Αλλάζουμε το όνομα workgroup με το δικό μας # server string is the equivalent of the NT Description field //το αντίστοιχο με την περιγραφή για τον υπολογιστή μ server string = Samba Server Αυτό θα είναι το όνομα του Slackware συστήματος μας στο Network Neighborhood (ή My Network Places) φάκελο των Microsoft windows. # Security mode. Most people will want user level security. See # security_level.txt for details. NOTE: To get the behaviour of # Samba , you'll need to use "security = share". security = user Η πιο συνηθισμένη επιλογή για το security mode (ΣΜ: security = share στην περίπτωση που θέλουμε ελεύθερη πρόσβαση στα shares, χωρίς αυθεντικοποίηση χρηστών) # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba # documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes Αν η επιλογή encrypt passwords δεν είναι ενεργοποιημένη, η Samba δεν θα μπορεί να επικοινωνεί με NT4.0, Win2k, WinXP, και Win2003. Αυτό γιατί προηγούμενες εκδόσεις των Microsoft

62 Windows δεν απαιτούσαν κρυπτογράφηση για το διαμοιρασμό αρχείων. Το SMB χρειάζεται ένα σωστό ζεύγος username / password πριν μπορέσουμε να χρησιμοποιήσουμε τις υπηρεσίες του. Με την εντολή smbpasswd δίνουμε στον samba server ένα έγκυρο ζεύγος username / password. Η smbpasswd δέχεται κάποια ορίσματα προκειμένου να προσθέσει χρήστες, ή υπολογιστές χρήστες στην περίπτωση που θέλουμε να περιορίσουμε τους υπολογιστές που θα μπορούν να αυθεντικοποιούνται, ανάλογα με το NETBIOS όνομα τους. Προσθήκη ενός χρήστη στο αρχείο /etc/samba/private/smbpasswd. # smbpasswd -a user Προσθήκη ενός υπολογιστή στο αρχείο /etc/samba/private/smbpasswd file. # smbpasswd -a -m machine Για την προσθήκη ενός χρήστη ή ονόματος υπολογιστή στο παραπάνω αρχείο που χρησιμοποιεί η samba για αποθήκευση των χρηστών, θα πρέπει πρώτα να υπάρχει αυτός ο χρήστης στο αρχείο /etc/passwd. Αυτό μπορεί να γίνει με την εντολή adduser. Προσοχή κατά τη χρήση της adduser,για την προσθήκη ενός ονόματος υπολογιστή πρέπει να περιέχεται ο χαρακτήρας δολλάριο ( $ ) στο όνομα του υπολογιστή. Αυτό δεν πρέπει να γίνει με την smbpasswd., καθώς η smbpasswd βάζει το χαρακτήρα απο μόνη της. Αν ο χαρακτήρας δολλάριο δεν δωθεί σωστά με την adduser θα υπάρχει πρόβλημα κατά την προσθήκη του συστήματος στην samba. # adduser machine$ Network File System (NFS) Το NFS (Network File System) αρχικά σχεδιάστηκε απο την Sun για το λειτουργικό της σύστημα Solaris. Αν και πιο εύκολα ρυθμίζεται και είναι έτοιμο για χρήση σε σχέση με το SMB, είναι πολύ λιγότερο ασφαλές. Στο NFS είναι πολυ εύκολο να ξεγελαστεί το σύστημα με χρήστες και ονόματα γκρουπ από άλλα συστήματα. Επόμενες εκδόσεις του πρωτοκόλλου πιθανόν να αντιμετωπίζουν αυτά τα προβλήματα, κάτι που δεν συμβαίνει προς το παρον. Η ρύθμιση του ΝFS γίνεται στο αρχείο /etc/exports. Αρχικά το αρχείο περιέχει 2 γραμμές με σχόλια. Πρέπει να προσθέσουμε μια γραμμή για κάθε φάκελο που θέλουμε να κάνουμε export, η οποία θα περιέχει λίστα με τους πελάτες υπολογιστές που μπορεί να έχουν πρόσβαση. Για παράδειγμα, αν θέλουμε να κάνουμε export το /home/foo στον υπολογιστή Bar, δημιουργούμε την γραμμή: /home/foo Bar(rw) στο /etc/exports. Τα εξής είναι παραδείγματα απο την σελίδα manual του /etc/exports (man exports): # sample /etc/exports file / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash) Υπάρχουν κάποιες επιλογές όσον αφορά τα σημεία προσάρτησης (mount points) τις οποίες είναι εύκολο να κατανοήσουμε. Το NFS υποθέτει οτι ένας χρήστης έχει το ίδιο όνομα για διαφορετικά συστήματα σε ένα δίκτυο. Όταν μια αίτηση γίνεται να διαβάσει ή να γράψει απο έναν πελάτη NFS σε έναν NFS server, το

63 αναγνωριστικό χρήστη (UID) στέλνεται ως μέρος αυτής της αίτησης. Έτσι, αν κάποιος μπορεί να στείλει ένα διαφορετικό αναγνωριστικό από αυτό που έχει στο σύστημα του, κάτω απο τις κατάλληλες συνθήκες θα μπορεί να έχει πρόσβαση σε shares που δεν προορίζονται γι'αυτόν. Σαν μερική λύση κάθε φάκελος προσαρτάται με την τιμή root_squash. Αυτό καταχωρεί το αναγνωριστικό (UID) για οποιονδήποτε χρήστη ισχυρίζεται οτι είναι ο root σε ένα διαφορετικό αναγνωριστικό, εμποδίζοντας έτσι πρόσβαση root στα αρχεία/φακέλους αυτού του share. Αν και η root_squash φαίνεται πως είναι ενεργοποιημένη εξ'ορισμού, καλό είναι να την προσδιορίζουμυ στο /etc/exports αρχείο μας. Μπορούμε επίσης να κάνουμε export ένα φάκελο απευθείας απο την γραμμή εντολών με την εντολή exportfs : # exportfs -o rw,no_root_squash Bar:/home/foo το οποίο εκχωρεί το /home/foo στον υπολογιστή Bar με δικαιώματα ανάγνωσης/εγγραφής. Επιπλέον μιας και χρησιμοποιούμε την επιλογή no_root_squash, κάθε χρήστης στον υπολογιστή Bar με UID 0 (το UID για το χρήστη root) θα έχει τα ίδια προνόμια με τον χρήστη root στον server. Και πάλι οι σελίδες manual (man exports) θα μας δώσουν πολύτιμες πληροφορίες για να κάνουμε τη δουλειά μας.

64 Κεφάλαιο 6: Ρύθμιση του X Ξεκινώντας με το Slackware-10.0, το περιβάλλον X Window στο Slackware παρέχεται από το Xorg. Το X είναι υπεύθυνο για την παροχή γραφικού περιβάλλοντος. Είναι ανεξάρτητο από το λειτουργικό σύστημα, σε αντίθεση με τα Windows ή το MacOS. Το σύστημα X Window υλοποιείτε μέσω πολλών προγραμμάτων που τρέχουν στην user-land. Τα δύο κύρια στοιχεία του είναι ο εξυπηρετητής (server) και ο διαχειριστής παραθύρων (window manager). Ο εξυπηρετητής παρέχει τις χαμηλού επιπέδου λειτουργίες για αλληλεπίδραση με το υλικό γραφικών, έτσι είναι ειδικός για κάθε σύστημα. Ο διαχειριστής παραθύρων κάθετε πάνω από τον εξυπηρετητή και παρέχει το γραφικό περιβάλλον στο χρήστη. Το πλεονέκτημα σε αυτό είναι ότι μπορείς να έχεις πολλά διαφορετικά περιβάλλοντα απλός αλλάζοντας τον διαχειριστή παραθύρων που χρησιμοποιείς. Η ρύθμιση του X μπορεί να γίνει μία πολύπλοκη διαδικασία. Ο λόγος είναι ο τεράστιος αριθμός διαθέσιμων καρτών γραφικών για την αρχιτεκτονική των προσωπικών υπολογιστών (PC), οι περισσότερες από τις οποίες χρησιμοποιούν διαφορετικές προγραμματιστικές διεπαφές. Ευτυχώς, οι περισσότερες κάρτες σήμερα υποστηρίζουν τα βασικά πρότυπα βίντεο γνωστά και ως VESA και εάν η κάρτα σας είναι ανάμεσα σε αυτές θα είστε ικανός να εκκινήσετε το X χρησιμοποιώντας την εντολή startx κατευθείαν. Εάν αυτό δεν λειτουργεί με την κάρτα σας, ή θέλετε να εκμεταλλευτείτε τις δυνατότητες υψηλής απόδοσης υλικού ή απόδοσης 3D γραφικών, τότε θα πρέπει να ξανά-ρυθμίσετε το X. Για να ρυθμίσετε το X, πρέπει να δημιουργήσετε ένα αρχείο /etc/x11/xorg.conf. Αυτό το αρχείο περιέχει πολλές λεπτομέρειες για την κάρτα γραφικών, το ποντίκι, και την οθόνη. Είναι ένα πολύπλοκο αρχείο διαμόρφωσης (configuration file), αλλά ευτυχώς υπάρχουν αρκετά προγράμματα για να βοηθήσουν δημιουργώντας ένα για εσάς. Θα αναφέρουμε μερικά από αυτά εδώ. 6.1 xorgconfig Αυτό είναι ένα απλό πρόγραμμα οδηγούμενο από μενού όμοιο σε χρήση με το πρόγραμμα εγκατάστασης του Slackware. Απλά λέει στον εξυπηρετητή X να ρίξει μια ματιά στην κάρτα γραφικών, και μετά να εγκαταστήσει το καλύτερο αρχικό αρχείο διαμόρφωσης με βάση τις πληροφορίες που πήρε. Το παραγόμενο αρχείο /etc/x11/xorg.conf πρέπει να είναι μια καλή αρχή για τα περισσότερα συστήματα (και πρέπει να λειτουργήσει χωρίς μετατροπές). Αυτό είναι ένα βασισμένο στο κείμενο πρόγραμμα ρύθμισης του X που σχεδιάστηκε για έμπειρους διαχειριστές συστημάτων. Εδώ υπάρχει ένα δείγμα της πορείας της ρύθμισης χρησιμοποιώντας το xorgconfig. Πρώτα, εκκινήστε το πρόγραμμα: # xorgconfig Αυτό θα παρουσιάσει πληροφορίες για το xorgconfig. Για να συνεχίσετε, πατάτε ENTER. Το xorgconfig θα σας ρωτήσει για να επιβεβαιώσετε ότι έχετε ορίσει το μονοπάτι (PATH) σωστά. Πρέπει να είναι σωστά, άρα συνεχίστε πατώντας ENTER.

65 Σχήμα 6-1.xorgconfig Ρύθμιση Ποντικιού list: First specify a mouse protocol type. Choose from the following 1. Auto 2. SysMouse 3. MouseSystems 4. PS/2 5. Microsoft 6. Busmouse 7. IMPS/2 8. ExplorerPS/2 9. GlidePointPS/2 10. MouseManPlusPS/2 11. NetMousePS/2 12. NetScrollPS/2 13. ThinkingMousePS/2 14. AceCad The recommended protocol is Auto. If you have a very old mouse or don't want OS support or auto detection, and you have a two-button or three-button serial mouse, it is most likely of type Microsoft. Enter a protocol number: Επιλέξτε το ποντίκι σας από το μενού που παρουσιάστηκε. Εάν δεν βλέπετε στη λίστα το ποντίκι σας που συνδέετε μέσο της σειριακής θύρας, επιλέξτε το πρωτόκολλο Microsoft είναι το πιο σύνηθες και πιθανότατα θα δουλέψει. Μετά το xorgconfig θα σας ρωτήσει εάν θέλετε να χρησιμοποιήσετε ChordMiddle και Emulate3Buttons. Θα δείτε αυτές τις επιλογές να περιγράφονται λεπτομερειακά στην οθόνη σας. Χρησιμοποιείστε τις εάν το μεσαίο πλήκτρο του ποντικιού σας δεν λειτουργεί στο X, ή εάν το ποντίκι σας έχει δύο πλήκτρα (το Emulate3Buttons επιτρέπει την εξομοίωση του μεσαίου πλήκτρου πατώντας και τα δύο ταυτόχρονα). Μετά, προσθέστε το όνομα του ποντικιού σας. Η προκαθορισμένη επιλογή, /dev/mouse, πρέπει να λειτουργήσει εφόσον ο σύνδεσμος είχε διαμορφωθεί κατά την εγκατάσταση του Slackware. Εάν τρέχετε το GPM (ο εξυπηρετητής ποντικιού στο Linux) στη μέθοδο αναμετάδοσης (repeater mode), μπορείτε να ορίσετε το ποντίκι σας στο /dev/gpmdata για να μπορεί το X να παίρνει πληροφορίες για το ποντίκι μέσο του gpm. Σε μερικές περιπτώσεις (με τα busmouse ιδιαίτερα) αυτό μπορεί να δουλέψει καλύτερα, αλλά οι περισσότεροι χρήστες δεν πρέπει να το κάνουν αυτό.

66 Σχήμα 6-2.xorgconfig Οριζόντιος Συγχρονισμός (Horizontal Sync) You must be indicate the horizontal sync of your monitor. You can either select one of the predefined ranges below that correspond to industry-standard monitor types, or give a specific range. It is VERY IMPORTANT that you do not specify a monitor type with horizontal sync range that it is beyond the capabilities of your monitor. If in doubt, choose a conservative setting. hsync in khz; monitor type with characteristic modes Standard VGA, 60 Hz ; Super VGA 56 Hz , 35.5; 8514 Compatible, Hz interlaced (no 800x600) , 35.15,35.5; Super VGA, 87 Hz interlaced, 56 Hz ; Extended Super VGA, 60 Hz, 72 Hz ; Non-Interlaced SVGA, 60 Hz, 72 Hz ; High Frequency SVGA, 70 Hz ; Monitor that can do 60 Hz ; Monitor that can do 74 Hz ; Monitor that can do 76 Hz 11 Enter your own horizontal sync range Enter your choice (1-11): Στο επόμενο τμήμα εισάγεται το εύρος συγχρονισμού (sync range) της οθόνης σας. Για να εκκινήσετε την ρύθμιση της οθόνης, πατήστε ENTER. Θα δείτε μία λίστα από τύπους οθόνης επιλέξτε έναν από αυτούς. Προσέξτε να μην ξεπεράσετε τις δυνατότητες της οθόνης σας. Με αυτόν τον τρόπο μπορεί να βλάψετε το υλικό σας. Σχήμα 6-3.xorgconfig Κάθετος Συγχρονισμός (Vertical Sync) You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry-standard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one (e.g. 87 Hz rather tha 43 Hz) Enter your own vertical sync range Enter your choice:

67 Καθορίστε το κάθετο εύρος συγχρονισμού (vertical sync) της οθόνης σας (θα το βρείτε αυτό στο εγχειρίδιο της οθόνης σας).το xorgconfig θα σας ζητήσει να εισάγετε κείμενο για να αναγνωρίσει το τύπο της οθόνης σας στο αρχείο xorg.conf. Εισάγεται ότι θέλετε σε αυτές τις 3 γραμμές (ή τίποτα απολύτως). Σχήμα 6-4.xorgconfig Κάρτα Γραφικών 0 * Generic VESA compatible - 1 * Generic VGA compatible - 2 * Unsupported VGA compatible - 3 ** 3DLabs, TI (generic) [glint] - 4 ** 3Dfx (generic) [tdfx] - 5 ** ATI (generic) [ati] - 6 ** ATI Radeon (generic) [radeon] - 7 ** ATI Rage 128 based (generic) [r128] - 8 ** Alliance Pro Motion (generic) [apm] - 9 ** Ark Logic (generic) [ark] - 10 ** Chips and Technologies (generic) [chips] - 11 ** Cirrus Logic (generic) [cirrus] - 12 ** Cyrix MediaGX (generic) [cyrix] - 13 ** DEC TGA (generic) [tgz] - 14 ** Intel i740 (generic) [i740] - 15 ** Intel i810 (generic) [i810] - 16 ** Linux framebuffer (generic) [fbdev] - 17 ** Matrox Graphics (generic) [mga] - Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. Τώρα έχετε την ευκαιρία να δείτε την βάση δεδομένων με τους τύπους καρτών γραφικών. Θέλετε να το κάνετε αυτό, άρα πείτε y, και επιλέξτε μία κάρτα από την λίστα που εμφανίστηκε. Εάν δεν βλέπετε συγκεκριμένα την κάρτα σας, προσπαθήστε να διαλέξετε μία που να χρησιμοποιεί το ίδιο chipset και πιθανότατα θα δουλέψει καλά. Μετά, πείτε στο xorgconfig πόση μνήμη RAM έχει η κάρτα γραφικών σας. Το xorgconfig θα θέλει να εισάγεται κάποιο πιο περιγραφικό κείμενο για την κάρτα γραφικών σας. Εάν θέλετε, μπορείτε να εισάγεται περιγραφές σε αυτές τις τρεις γραμμές. Αμέσως μετά θα ερωτηθήτε για το ποιες αναλύσεις οθόνης θέλετε να χρησιμοποιήσετε. Ξανά, συνεχίζοντας με τις παρεχόμενες προκαθορισμένες (default) ρυθμίσεις πρέπει να δουλέψει καλά. Αργότερα, μπορείτε να διαμορφώσετε το αρχείο /etc/x11/xorg.conf και να επανορίσετε τα στοιχεία έτσι ώστε το 1024x768 (ή όποιο άλλο θέλετε) να είναι το προκαθορισμένο. Σε αυτό το σημείο, το πρόγραμμα xorgconfig θα σας ρωτήσει για το αν θέλετε να αποθηκεύσετε το συγκεκριμένο αρχείο διαμόρφωσης (configuration file). Απαντήστε yes, και το αρχείο διαμόρφωσης του X θα αποθηκευτεί, ολοκληρώνοντας την διαδικασία εγκατάστασης. Τώρα μπορείτε να εκκίνησετε το X χρησιμοποιώντας την εντολή startx.

68 6.2 xorgsetup Ο δεύτερος τρόπος να ρυθμίσετε το X είναι η χρήση του xorgsetup, ένα αυτόματο πρόγραμμα διαμόρφωσης που υπάρχει μέσα στο Slackware. Για να εκτελέσετε το xorgsetup, συνδεθείτε ως root και πληκτρολογήστε: # xorgsetup Εάν ήδη έχετε ένα /etc/x11/xorg.conf αρχείο (γιατί ήδη είχατε ρυθμίσει το X), θα ερωτηθήτε εάν θέλετε να γίνει αντίγραφο ασφαλείας (backcup) του υπάρχοντος αρχείου διαμόρφωσης πριν ξεκινήσετε. Το πρώτο αρχείο θα μετονομαστεί σε /etc/x11/xorg.conf.backup. 6.3 xinitrc Το xinit(1) είναι το πρόγραμμα που πραγματικά ξεκινά το X, καλείται από το startx(1), αλλά μπορεί να μην το έχετε προσέξει (και το πιθανότερο είναι ότι δεν θα χρειαστεί). Είναι ένα αρχείο διαμόρφωσης, όμως, καθορίζει ποια προγράμματα (ειδικά συμπεριλαμβανομένου του διαχειριστή παραθύρων) θα τρέχουν όταν θα εκκινεί ο X. To xinitrc πρώτα ελέγχει τον προσωπικό φάκελο (home) για να βρει εάν υπάρχει κάποιο αρχείο.xinitrc. Εάν το αρχείο βρεθεί, θα εκκινήσει από αυτό, αλλιώς, θα χρησιμοποιηθεί το /var/x11r6/lib/xinit/xinitrc (το προκαθορισμένο από το σύστημα). Ένα παράδειγμα ενός απλού xinitrc αρχείο είναι αυτο: #!/bin/sh # $XConsortium: xinitrc.cpp,v /08/22 11:41:34 rws Exp $ userresources=$home/.xresources usermodmap=$home/.xmodmap sysresources=/usr/x11r6/lib/x11/xinit/.xresources sysmodmap=/usr/x11r6/lib/x11/xinit/.xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap -merge $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap -merge $usermodmap fi # start some nice programs

69 twm & xclock -geometry 50x & xterm -geomerty 80x & xterm -geomerty 80x & exec xterm -geometry 80x name login Όλες αυτές οι δομές if υπάρχουν για να συγχωνεύουν διάφορες ρυθμίσεις διαμόρφωσης από άλλα αρχεία. Το ενδιαφέρον τμήμα από το αρχείο είναι πριν το τέλος όπου εκτελούνται διάφορα προγράμματα. Αυτή η σύνοδος X (X Session) θα ξεκινήσει με τον διαχειριστή παραθύρων twm(1), ένα ρολόι και τρία τερματικά. Προσέξτε το exec πριν το τελευταίο xterm. Αυτό που κάνει είναι να αντικαθιστά τον φλοιό που τρέχει εκείνη τη στιγμή (εκείνον που εκτελεί αυτό το xinitrc αρχείο) με αυτή την εντολή xterm(1). Όταν ο χρήστης θα τερματίσει αυτό το xterm, η σύνοδος X θα τελειώσει. Για να αλλάξετε την εκκίνηση του X, αντιγράψτε το προκαθορισμένο /var/x11r6/lib/xinit/xinitrc στο ~/.xinitrc και επεξεργασθείτε το, αλλάζοντας αυτές τις γραμμές κώδικα με ότι θέλετε. Το δικό μου τελικό είναι απλό: # Start the window manager: exec startkde Σημειώστε ότι υπάρχουν πολλά αρχεία xinitrc.* μέσα στο /var/x11r6/lib/xinit που αντιστοιχούν σε διάφορους διαχειριστές παραθύρων και γραφικών περιβάλλοντων (GUI). Μπορείτε να χρησιμοποιήσετε οποιοδήποτε από αυτά, εάν θέλετε. 6.4 xwmconfig Για χρόνια, το UNIX χρησιμοποιούνταν σχεδόν αποκλειστικά ως το λειτουργικό σύστημα για τους εξυπηρετητές (servers), με εξαίρεση τους μεγάλης ισχύος επαγγελματικούς σταθμούς εργασίας. Μόνο οι τεχνικοί επαγγελματίες ήταν πιθανό να χρησιμοποιήσουν ένα παρόμοιο με UNIX λειτουργικό σύστημα, και αυτό το γεγονός επηρέασε το γραφικό περιβάλλον του χρήστη. Τα γραφικά περιβάλλοντα έτειναν να γίνουν σωστές ραχοκοκαλιές (bare-bones), σχεδιασμένα να τρέχουν μόνο τις απαραίτητες γραφικές εφαρμογές όπως τα σχεδιαστικά προγράμματα CAD και προγράμματα επεξεργασίας εικόνας. Η το μεγαλύτερο κομμάτι από την διαχείριση αρχείων και συστήματος πραγματοποιούνταν μέσο της γραμμής εντολών. Διάφορες εταιρίες (Sun Microsystems, Silicon Graphics, κτλ.) πουλούσαν σταθμούς εργασίας με μία προσπάθεια να παράγουν ένα συνεκτικό εμφάνιση και αίσθηση, αλλά η μεγάλη ποικιλία από εργαλεία γραφικών περιβάλλοντων που χρησιμοποιούσαν οι προγραμματιστές οδήγησε αναπόφευκτα στην διάλυση της ομοιομορφίας του υπολογιστή. Μία μπάρα κύλισης (scrollbar) μπορεί να εμφανίζονταν όμοια σε δύο διαφορετικές εφαρμογές. Τα μενού μπορεί να εμφανίζονταν σε διαφορετικά σημεία. Τα προγράμματα μπορεί να είχαν διαφορετικά κουμπιά και checkboxes. Τα χρώματα αυξήθηκαν ευρύτατα, και ήταν κυρίως γραμμένα με το χέρι (hard coded) για κάθε εργαλείο. Για όσο οι χρήστες ήταν κυρίως τεχνικοί επαγγελματίες, κανένα από αυτά δεν είχε μεγάλη σημασία. Με την έλευση των δωρεάν παρόμοιων με UNIX λειτουργικών συστημάτων, τον ρυθμό ανάπτυξης και την ποικιλία από γραφικές εφαρμογές, το X πρόσφατα κέρδισε ένα μεγάλο τμήμα στους χρήστες υπολογιστών. Οι περισσότεροι χρήστες, φυσικά, είναι εξοικειωμένοι με τη σταθερή εμφάνιση και αίσθηση από τα Microsoft Widnows ή από το Apple MacOS, η απώλεια αυτής της συνέπειας στις βασισμένες στο X εφαρμογές έγινε ένα φράγμα στην ευρύτερη αποδοχή του. Σε απάντηση, ανέλαβαν δύο έργα ανοικτού λογισμικού (open source): το K Desktop Environment ή αλλιώς KDE, και το GNU Network Object Model Environment, γνωστό και ως GNOME. Το καθένα έχει ευρύ φάσμα από εφαρμογές, από μπάρες λειτουργιών (taskbars), διαχειριστές αρχείων (file managers) μέχρι παιχνίδια και εφαρμογές γραφείου, γραμμένα με το ίδιο εργαλείο γραφικών και καλά ολοκληρωμένα ώστε να προσφέρουν μία φόρμα, ένα σταθερό περιβάλλον.

70 Οι διαφορές μεταξύ του KDE και του GNOME είναι γενικά αρκετά δυσδιάκριτες. Το καθένα εμφανίζεται διαφορετικό από το άλλο, γιατί το καθένα χρησιμοποιεί διαφορετικά εργαλεία γραφικών. Το KDE είναι βασισμένο στην βιβλιοθήκη Qt library της Troll Tech AS, ενώ το GNOME χρησιμοποιεί GTK, ένα σύνολο εργαλείων που αρχικά αναπτύχθηκε για το The GNU Image Manipulation Program (ή αλλιώς το GIMP, για συντομία). Σαν ξεχωριστά έργα, το KDE και το GNOME έχουν τα καθένα τους δικούς τους σχεδιαστές και προγραμματιστές, με διαφορετικούς τρόπους ανάπτυξης και φιλοσοφίες. Το αποτέλεσμα σε κάθε περίπτωση, ωστόσο, είναι βασικά το ίδιο: ένα σταθερό, πολύ ολοκληρωμένο γραφικό περιβάλλον και μια συλλογή εφαρμογών. Η λειτουργικότητα, η χρηστικότητα, και η καθαρή ομορφιά και των δύο KDE και GNOME ανταγωνίζονται οτιδήποτε διαθέσιμο στα άλλα λειτουργικά συστήματα. Το καλύτερο κομμάτι, ωστόσο, είναι ότι αυτά τα ανεπτυγμένα γραφικά περιβάλλοντα είναι δωρεάν. Αυτό σημαίνει ότι μπορείς να έχεις είτε το ένα είτε και τα δύο (ναι, την ίδια στιγμή). Η επιλογή είναι δική σου. Επιπρόσθετα με το GNOME και το KDE, το Slackware περιλαμβάνει μία μεγάλη συλλογή από διαχειριστές παραθύρων. Μερικοί είναι σχεδιασμένοι να εξομοιώνουν άλλα λειτουργικά συστήματα, κάποιοι για μετατροπές, και άλλοι για ταχύτητα. Υπάρχει αρκετή ποικιλία. Φυσικά όμως μπορείτε να εγκαταστήσετε τόσους όσους εσείς θέλετε, παίξτε μαζί με όλους, και αποφασίστε ποιος σας αρέσει περισσότερο. Για να κάνετε εύκολα την επιλογή, το Slackware περιλαμβάνει επίσης ένα πρόγραμμα που ονομάζεται xwmconfig που μπορεί να χρησιμοποιηθεί για την επιλογή ενός γραφικού περιβάλλοντος ή ένος διαχειριστή παραθύρων. Τρέχει κάπως έτσι: % xwmconfig Σχήμα 6-5. Ρύθμιση του Γραφικού Περιβάλλοντος με το xorgconfig Θα σας δοθεί μία λίστα από όλα τα γραφικά περιβάλλοντα και διαχειριστές παραθύρων που έχουν εγκατασταθεί. Απλά επιλέξτε το ένα που θέλετε από την λίστα. Ο κάθε χρήστης στο σύστημα σας θα χρειαστεί να τρέξει αυτό το πρόγραμμα, εφόσον διαφορετικοί χρήστες μπορούν να χρησιμοποιήσουν

71 διαφορετικά περιβάλλοντα, και δεν θα θέλουν όλοι να έχουν το προκαθορισμένο που επιλέξατε κατά την εγκατάσταση. Μετά απλός εκκινήστε το X, και είστε έτοιμος. 6.5 xdm Καθώς το Linux γίνετε όλο και ποιο χρήσιμο σαν λειτουργικό σύστημα για προσωπικούς υπολογιστές, σε πολλούς χρήστες είναι επιθυμητό να εκκινεί το μηχάνημα τους κατευθείαν σε ένα γραφικό περιβάλλον. Για αυτό, πρέπει να πείτε στο Slackware να εκκινεί μέσα στο X, και να δώσετε έναν διαχειριστή σύνδεσης (login manager). Το Slackware έρχεται με τρία γραφικά εργαλεία σύνδεσης, xdm(1), kdm, και gdm(1). Το xdm είναι ένας διαχειριστής σύνδεσης που έρχεται μαζί με το σύστημα X.org. Είναι πανταχού παρών αλλά όχι τόσο λειτουργικός όσο οι εναλλακτικοί του. Το kdm είναι ένας διαχειριστής σύνδεσης που έρχεται μαζί με το KDE, το K Desktop Environment. Τέλος, το gdm ναι ένας διαχειριστής σύνδεσης που έρχεται μαζί με το GNOME. Οποιοδήποτε από τις επιλογές θα σας επιτρέψει να συνδέεστε με όποιον χρήστη θέλετε, και να επιλέγετε τι γραφικό περιβάλλον επιθυμείτε να χρησιμοποιήσετε. Δυστυχώς, το Slackware δεν διαθέτει ένα ωραίο πρόγραμμα σαν το xwmconfig για την επιλογή του διαχειριστή σύνδεσης, έτσι εάν έχουν εγκατασταθεί και οι τρεις μπορεί να χρειαστεί να κάνετε κάποια επεξεργασία για να επιλέξτε αυτόν της προτίμησης σας. Αλλά πρώτα, θα περιγράψουμε το πως να εκκινήσετε σε γραφικό περιβάλλον. Προκειμένου να εκκινήσετε το X κατά την εκκίνηση, πρέπει να εκκινήσετε στο run-level 4. Τα runlevels είναι απλά ένας τρόπος να λέμε στο init(8) να κάνει κάτι διαφορετικό όταν ξεκινά το λειτουργικό σύστημα. Το κάνουμε αυτό με την επεξεργασία του αρχείου διαμόρφωσης για το init, το /etc/inittab. # These are the default runlevels in Slackware: # 0 = halt # 1 = single user mode # 2 = unused (but configured the same as runlevel 3) # 3 = multiuser mode (default Slackware runlevel) # 4 = X11 with KDM/GDM/XDM (session managers) # 5 = unused (but configured the same as runlevel 3) # 6 = reboot # Default runlevel. (Do not set to 0 or 6) id:3:initdefault: Για να κάνουμε το Slackware να εκκινεί σε γραφικό περιβάλλον, απλά αλλάζουμε το 3 σε 4. # Default runlevel. (Do not set to 0 or 6) id:4:initdefault: Τώρα το Slackware θα εκκινεί στο runlevel 4 και θα εκτελεί το /etc/rc.d/rc.4. Αυτό το αρχείο ξεκινά το X και καλεί οποινδήποτε διαχειριστή σύνδεσης έχετε επιλέξει. Λοιπόν, πως επιλέγουμε διαχειριστές συνδέσεων; Υπάρχουν λίγοι τρόποι για να το κάνεις αυτό, θα τους εξηγήσω αφού πρώτα δούμε το rc.4. # Try to use GNOME's gdm session manager:

72 if [ -x /usr/bin/gdm ]; then exec /usr/bin/gdm -nodaemon fi # Not there? OK, try to use KDE's kdm session manager: if [ -x /opt/kde/bin/kdm ]; then exec /opt/kde/bin/kdm -nodaemon fi # If all you have is XDM, I guess it will have to do: if [ -x /usr/x11r6/bin/xdm ]; then exec /usr/x11r6/bin/xdm -nodaemon fi Όπως μπορείτε να δείτε εδώ, το rc.4, πρώτα ελέγχει εάν το gdm είναι εκτελέσιμο, και εάν είναι τότε το τρέχει. Το δεύτερο στη λίστα είναι το kdm, και τέλος το xdm. Μία λύση για την επιλογή ενός διαχειριστή σύνδεσης είναι να αφαιρέσετε αυτούς που δεν επιθυμείτε με τη χρηση της εντολής removepkg. Μπορείτε να μάθετε περισσότερα για την removepkg στο Κεφάλαιο 18. Επιλεκτικά, μπορείτε να αφαιρέσετε τα δικαιώματα εκτέλεσης από τα αρχεία αυτά που δεν θέλετε να χρησιμοποιήσετε. Περιγράφουμε την chmod στο Κεφάλαιο 9. # chmod -x /usr/bin/gdm Τέλος, μπορείτε απλά να βάλετε σε σχόλια τις γραμμές για τους διαχειριστές σύνδεσης που δεν θέλετε να χρησιμοποιήσετε. # Try to use GNOME's gdm session manager: #if [ -x /usr/bin/gdm ]; then # exec /usr/bin/gdm -nodaemon #fi # Not there? OK, try to use KDE's kdm session manager: if [ -x /opt/kde/bin/kdm ]; then exec /opt/kde/bin/kdm -nodaemon fi # If all you have is XDM, I guess it will have to do: #if [ -x /usr/x11r6/bin/xdm ]; then # exec /usr/x11r6/bin/xdm -nodaemon #fi Όποιες γραμμές έχουν μπροστά το σύμβολο (#) θεωρούνται σχόλια και ο φλοιός ήσυχα τις αποφεύγει. Έτσι, ακόμα και εάν το gdm είναι εγκατεστημένο και εκτελέσιμο, ο φλοιός (σε αυτή την περίπτωση bash) δεν θα ασχοληθεί με το να ψάξει για αυτό.

73 ΚΕΦΑΛΑΙΟ 7 Εκκίνηση Συστήματος Η διαδικασία εκκίνησης του συστήματος Linux σε μερικές περιπτώσεις είναι πολύ εύκολη και σε άλλες δύσκολη. Πολλοί χρήστες εγκαθιστούν το Slackware στον υπολογιστή τους και αυτό είναι αρκετό. Απλά τον ανοίγουν και είναι έτοιμος προς χρήση. Σε άλλες περιπτώσεις, και μόνο το να εκκινήσει το σύστημα μπορεί να είναι δύσκολο.για τους περισσότερους χρήστες το LILO λειτουργεί άρτια.το Slackware συμπεριλαμβάνει το LILO και το Loadlin για την εκκίνηση του. Το LILO μπορεί να λειτουργήσει μέσω μιάς κατάτμησης σκληρού δίσκου (partition),της κεντρικής εγγραφής ενός σκληρού δίσκου (Master Boot Record) ή μιας δισκέττας, καθιστώντας το ως ένα πολύ ευπροσάρμοστο εργαλείο.το Loadlin λειτουργεί μέσω της γραμμής εντολής του DOS, τερματίζοντας την λειτουργία του DOS και βάζoντας σε λειτουργία το Linux. Ένα άλλο δημοφιλές εργαλείο εκκίνησης του Linux είναι το GRUB.Το GRUB δεν συμπεριλαμβάνεται ή υποστηρίζεται επίσημα από το Slackware.Το Slackware εμμένει στο tried and true πρότυπο που αφορά το περιεχόμενο της διανομής. Μολονότι το GRUB λειτουργεί καλά και συμπεριλαμβάνει κάποιες λειτουργίες οι οποίες δεν υπάρχουν στο LILO, το τελευταίο χειρίζεται τις απαραίτητες διεργασίες ενός Boot Loader αξιόπιστα και είναι δοκιμασμένο με το πέρασμα του χρόνου σε αυτό.ώς νεότερο, το GRUB δεν έχει φτάσει ακόμα σε αυτό το σημείο αξιολόγησης. Εφόσον δεν συμπεριλαμβάνεται στο Slackware δεν θα γίνει περαιτέρω αναφορά σε αυτό. Εάν είναι επιθυμητή η χρήση του ( ίσως μέσω ενός άλλου λειτουργικού συστήματος Linux στο οποίο συμπεριλαμβάνεται, και το οποίο θα χρησιμοποιηθεί για εκκίνηση και των δύο λειτουργικών - Dual Boot ) συμβουλευτείτε τα έγγραφα τεκμηρίωσης του GRUB. Αυτό το κεφάλαιο καλύπτει τα θέματα που αφορούν την χρήση του LILO και του Loadlin,των δύο εργαλείων εκκίνησης που περιλαμβάνει το Slackware. Επίσης παραθέτονται και επεξηγούνται κάποια τυπικά σενάρια εκκίνησης δύο λειτουργικών συστημάτων και τα βήματα για την ρύθμισή τους. 7.1 LILO Το Slackware Linux έρχεται με ένα εργαλείο διαχείρησης μέσω μενού,το liloconfig. Αυτό καλείται για πρώτη φορά κατα την διαδικασία εγκατάστασης, αλλά μπορεί να κληθεί και αργότερα πληκτρολογώντας liloconf στην γραμμή εντολής. Το LILO διαβάζει τις ρυθμίσεις από το αρχείο /etc/lilo.conf(5), κάτι το οποίο δεν γίνεται κάθε φορά κατά την διαδικασία εκκίνησης αλλά κάθε φορά που εγκαθίσταται το LILO. Μετά απο κάθε αλλαγή ρύθμισης το LILO πρέπει να επανεγκαθίσταται. Πολλά σφάλματα παρουσιάζονται μετά από απευθείας εσφαλμένες αλλαγές στο lilo.conf αφού η επανεκκίνηση του LILO για να ενεργοποιηθούν οι αλλαγές αυτές είναι αδύνατη.το liloconfig βοηθάει στο σωστό στήσιμο του αρχείου ρυθμίσεων, έτσι ώστε να εγκατασταθεί το LILO στο σύστημα.εάν προτιμάτε να επεξεργαστείτε το αρχείο /etc/lilo.conf χειροκίνητα, για την επανεγκατάσταση του LILO θα χρειαστεί απλά να πληκτρολογήσετε /sbin/lilo ( ως χρήστης root ) στην γραμμή εντολής. Μόλις εκτελέσετε το liloconfig θα μεταφερθείτε στην εξής οθόνη

74 Εάν αυτή είναι η πρώτη φορά που ρυθμίζετε το LILO θα πρέπει να επιλέξετε το simple, αλλιώς η επιλογή expert μπορεί να αποδειχθεί γρηγορότερη εάν είστε εξοικοιωμένος με το LILO και το Linux.Επιλέγοντας το simple θα ξεκινήσει η ρύθμιση του LILO. Εάν η υποστήριξη του Frame Buffer έχει ενεργοποιηθεί κατά την μεταγλώττιση του πυρήνα, το Liloconfig θα ρωτήσει ποιά ανάλυση οθόνης να χρησιμοποιήσει. Αυτή είναι η ανάλυση που 8α χρησιμοποιηθεί και από τον Xfree 86 frame buffer server. Το επόμενο μέρος της ρύθμισης του LILO σχετίζεται με την επιλογή της τοποθεσίας στην οποία θα γίνει η εγκατάστασή του.αυτό είναι ίσως το πιό σημαντικό βήμα.η ακόλουθη λίστα εξηγεί τις τοποθεσίες εγκατάστασής του. Root Αυτή η επιλογή εγκαθιστά το LILO στην αρχή της root κατάτμησης*.είναι η πιο ασφαλής επιλογή εάν υπάρχουν και άλλα λειτουργικά συστήματα εγκατεστημένα στον υπολογιστή. Διασφαλίζει οτι δεν θα διαγραφούν άλλα ήδη υπάρχοντα εργαλεία εκκίνησης. Ένα μειονέκτημα είναι οτι το LILO θα φορτωθεί σε αυτή την περιοχή μόνο εαν η κατάτμηση του Linux είναι η πρώτη του συστήματος.για αυτό τον λόγο πολλοί χρήστες επιλέγουν να δημιουργήσουν μια πολυ μικρή /boot κατάτμηση ως πρώτη κατάτμηση του συστήματος. Αυτό επιτρέπει στον πυρήνα και το LILO να εγκατασταθούν στην αρχή του σκληρού δίσκου. Προηγούμενες εκδόσεις του LILO είχαν ένα πρόβλημα γνωστό ώς 1024 cylider limit (περιορισμός 1024 κυλίνδρων). Το LILO αδυνατούσε να εκκινήσει πυρήνες οι οποίοι βρίσκονταν σε κατατμήσεις μεγαλύτερες των 1024 κυλίνδρων. Αυτό το πρόβλημα διορθώθηκε σε πιο πρόσφατες εκδόσεις του. Floppy Αυτή η μέθοδος είναι ακόμα πιο ασφαλής από την προηγούμενη. Επιτυγχάνεται μέσω μιας δισκέττας η οποία μπορεί να χρησιμοποιηθεί για την εκκίνηση του συστήματος. Με αυτό τον τρόπο δεν εγκαθίσταται το εργαλείο εκκίνησης στον σκληρό δίσκο αλλά στην δισκέττα, έτσι ώστε η τελευταία να χρησιμοποιηθεί όταν θέλετε να χρησιμοποιήσετε το Slackware. Τα μειονεκτήματα αυτής της μεθόδου είναι προφανή. Οι δισκέττες είναι κοινώς γνωστό οτι είναι ασταθείς και αρκετά επιρρεπείς σε σημείο να αποτύχουν. Επιπροσθέτως, εφόσον το εργαλείο εκκίνησης δεν βρίσκεται

75 πλέον μέσα στον σκληρό δίσκο, εάν η δισκέττα χαθεί θα πρέπει να δημιουργηθεί καινούργια.για να γίνει η εκκίνηση του συστήματος. MBR Αυτή η μέθοδος χρησιμοποιείται αν το Slackware είναι το μοναδικό λειτουργικό σύστημα ή αν θα χρησιμοποιήσετε το LILO για να επιλέξετε μεταξύ πολλαπλών λειτουργικών συστημάτων στον υπολογιστή. Αυτή είναι η προτιμώτερη μέθοδος εγκατάστασης του LILO και λειτουργεί σε σχεδόν οποιοδήποτε σύστημα με επιτυχία. Προσοχή: Αυτή η επιλογή θα διαγράψει οποιοδήποτε τρέχων εργαλείο εκκίνησης εγκατεστημένο στον MBR. Αφού γίνει επιλογή της περιοχής εγκατάστασης, το liloconfig θα δημιουργήσει το αρχείο ρυθμίσεων και θα εγκαταστήσει το LILO. Εάν επιλέξετε expert mode ( προηγμένο μενού για προχωρημένους ) θα εμφανισθεί ένα ειδικό μενού, το οποίο επιτρέπει στον χρήστη να ρυθμίσει το αρχείο /etc/lilo.conf, να προσθέσει άλλα λειτουργικά συστήματα στο μενού εκκίνησης και να ρυθμίσει το LILO με ειδικές παραμέτρους εκκίνησης. Το προηγμένο μενού είναι κάπως έτσι* Εικόνα 7-2 liloconfig Προηγμένο μενού Η ρύθμιση και εγκατάσταση του εργαλείου εκκίνησης είναι εύκολη όποια και αν είναι η σύνθεση και οι ρυθμίσεις του συστήματος.το liloconfig καθιστά την ρύθμιση σίγουρη. 7.2 LOADLIN Η άλλη επιλογή εκκίνησης που περιλαμβάνει το Slackware Linux είναι το LOADLIN. Το LOADLIN είναι ένα εκτελέσιμο που μπορεί να χρησιμοποιηθεί για να εκκινήσει το Linux από μια κατάτμηση DOS. Κατά την διαδικασία εγκατάστασης, το LOADLIN θα αντιγραφεί στον αρχικό κατάλογο root με την μορφή αρχείου.zip. Δεν υπάρχει αυτοματοποιημένη διαδικασία εκατάστασης για το LOADLIN. Θα γρειαστεί να αντιγράψετε τον πυρήνα του Linux και το αρχείο

76 ZIP του LOADLIN από τον αρχικό κατάλογο root στην κατάτμηση DOS. Το LOADLIN είναι χρήσιμο εάν θέλετε να φτιάξετε ένα μενού εκκίνησης στην DOS κατάτμηση. Το μενού αυτό μπορεί να προστεθεί στο AUTOEXEC.BAT αρχείο και θα επιτρέψει να επιλέγετε μεταξύ του Linux και του DOS.Η επιλογή του Linux θα φορτώνει το LOADLIN έτσι ώστε να εκκινείται το Slackware σύστημά σας. Το ακόλουθο AUTOEXEC.BAT αρχείο παρέχει ένα επαρκές μενού OFF SET PROMPT=$P$G SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\ CLS ECHO Please Select Your Operating System: ECHO. ECHO [1] Slackware Linux ECHO [2] Windows 95 ECHO. CHOICE /C:12 "Selection? -> " IF ERRORLEVEL 2 GOTO WIN IF ERRORLEVEL 1 GOTO LINUX :WIN CLS ECHO Starting Windows WIN GOTO END :LINUX ECHO Starting Slackware Linux... CD \LINUX LOADLIN C:\LINUX\VMLINUZ ROOT=<root partition device> RO GOTO END :END Ίσως θελήσετε να καθορίσετε την root κατάτμηση ως μια συσκευή Linux,όπως πχ /dev/hda2. Φυσικά μπορείτε να χρησιμοποιείτε το LOADLIN και στην γραμμή εντολής, χειρίζοντας το όπως στο ανωτέρω παράδειγμα. Ο οδηγός χρήσης του συμπεριλαμβάνει πολλά παραδείγματα για το πως μπορεί να χρησιμοποιηθεί. 7.3 Διπλή Εκκίνηση Πολλοί χρήστες έχουν ρυθμισμένους τους υπολογιστές τους να εκκινούν το Slackware Λίνουξ παράλληλα με άλλα λειτουργικά συστ.ήματα. Παρακάτω περιγράφονται διάφορα σενάρια διπλής εκκίνησης σε περίπτωση που υπάρξει δυσκολία ρύθμισης του συστήματος. Windows Η ρύθμιση του υπολογιστή με Ms Windows και Λίνουξ παράλληλα είναι πιθανότατα το πιο συχνό σενάριο.υπάρχουν πολλοί τρόποι για να επιτευχθεί η ρύθμιση αυτή, εκ των οποίων οι δύο κυριότεροι θα αναλυθούν σε αυτή την ενότητα. Πολλές φορές, κατά την ρύθμιση ενός συστήματος το οποίο θα περιέχει πολλαπλά λειτουργικά συστήματα, γίνεται σχεδιασμός ενός καλά μελετημένου πλάνου για την τοποθέτηση των επιμέρους στοιχείων λογισμικού.μερικές φορές όμως, όλα αυτά καταρίπτονται λόγω της εσφαλμένης σειράς

77 εγκατάστασης του κάθε στοιχείου. Είναι πολύ σημαντικό να γίνει κατανοητό οτι τα λειτουργικά συστήματα πρέπει να πρέπει να εγκατασταθούν με την σωστή σειρά, ούτως ώστε να λειτουργήσει η διαδικασία εκκίνησης χωρίς προβλήματα.το Λίνουξ παρέχει πάντα την σωστή υποστήριξη σε αυτό το θέμα και οτιδήποτε αφορά την εγγραφή στον Master Boot Record, οπότε προτείνεται να εγκατασταθεί τελευταίο από τα υπόλοιπα λειτουργικά. Τα Windows πάντα θα πρέπει να εγκαθίστανται πρώτα,αφού με την εγραφή τους στον Master Boot Record μετά την εγκατάστασή τους διαγράφουν κάθε εγγραφή εκκίνησης του Λίνουξ. Χησιμοποιώντας το LILO Οι περισσότεροι χρήστες θα προτιμήσουν να χρησιμοποιήσουν το πρόγραμμα εκκίνησης LILO για την επιλογή λειτουργικού μεταξύ Windows και Λίνουξ.Όπως αναφέρθηκε παραπάνω, πρώτα θα πρέπει να εγκαταστήσετε τα Windows και μετα το Λίνουξ. Ας υποθέσουμε οτι έχουμε ένα σκληρό δίσκο 40GB IDE,ο οποίος είναι και ο μοναδικός στο σύστημά μας και θέλουμε να χρησιμοποιήσουμε τα 20GB για την κατάτμηση του Λίνουξ, και τα άλλα 20GB για την κατάτμηση των Windows. Με αυτή η ρύθμιση θα παρουσιαστεί πρόβλημα. Θα πρέπει οπωσδήποτε να οριστεί μια Linux swap κατάτμηση με επαρκή χώρο. Ένας κανόνας είναι να χρησιμοποιηθεί για την κατάτμηση χώρος διπλάσιος απο την χωρητικότητα της μνήμης RAM.Για παράδειγμα, ένα σύστημα με 64ΜΒ RAM θα έχει 128ΜΒ χώρου swap.το θέμα της χωρητικότητας του swap χώρου συζητήται συνεχώς στο IRC και το Usenet.Στην πραγματικότητα δεν υπάρχει κάποιος απόλυτα σωστός κανόνας για την ρύθμιση αυτή,αλλά η χρήση του παραπάνω αρκεί για την σωστή λειτουργία του συστήματος. Μετά τον σχεδιασμό για κατανομή των κατατμήσεων μπορούμε να προχωρήσουμε στην εγκατάσταση των Windows. Μετα την ορθή εγκατάστασή τους θα πρέπει να εγκατασταθεί σο Λίνουξ.Η εγκατάσταση του LILO πρέπει να γίνει με ιδιαίτερη προσοχή.θα πρέπει να χρησιμοποιηθεί η προχωρημένη εγκατάσταση για το LILO. Ξεκινάμε να δημιουργήσουμε μια καινούργια ρύθμιση του LILO.Θα πρέπει να την τοποθετήσουμε στον Master Boot Record,έτσι ώστε να είναι εκκινήσιμα και τα δυο λειτουργικά συστήματα και φυσικά έχωντας την δυνατότητα επιλογής μεταξύ τους. Από το μενού προσθέστε την κατάτμηση για το Λίνουξ και για τα Windows.Όταν αυτά τα παραπάνω βήματα ολοκληρωθούν μπορείτε να εγκαταστήσετε το LILO. Επανεκκινούμε τον υπολογιστή.κατά την εκκίνηση θα πρέπει να φορτωθεί το LILO,οπότε θα εμφανιστεί ένα μενού το οποίο μας δίνει την δυνατότητα επιλογής μεταξύ των λειτουργικών συστημάτων που εγκαταστήσαμε.επιλέγουμε το λειτουργικό σύστημα το οποίο επιθυμούμε να φορτώσουμε (τα εμφανιζόμενα ονόματα είναι αυτά που είχαμε ορίσει κατά την ρύθμιση του LILO). Το LILO είναι ένα αρκετά παραμετροποιήσιμο εργαλείο εκκίνησης.δεν περιορίζεται μόνο στην εκκίνηση συστημάτων Λίνουξ ή DOS. Μπορεί να χρησιμοποιηθεί για την εκκίνηση σχεδόν οποιουδήποτε λειτουργικού συστήματος. Οι man pages για το lilo(8) και το lilo.conf(5) περιλαμβάνουν πιο λεπτομερείς πληροφορίες. Υπάρχουν κάποιες σπάνιες περιπώσεις αποτυχίας του LILO σε συγκεκριμένα μηχανήματα. Σε τέτοιες περιπτώσεις υπάρχει ένας εναλλακτικός τρόπος για την εκκίνηση διπλών λειτουργικών συστημάτων και στην συγκεκριμένη περίπτωση του Λίνουξ και των Windows. Χησιμοποιώντας το Loadlin

78 Αυτός ο τρόπος μπορεί να χρησιμοποιηθεί εναλλακτικά σε περίπτωση αποτυχίας εκκίνησης ή εάν δεν είναι επιθυμητή η εκκίνηση μέσω του LILO.Είναι ιδανικός επίσης για όσους χρήστες επανεγκαθιστούν συχνά τα Windows. Κάθε φορά που γίνεται επανεγκατάσταση των Windows γίνεται αντικατάσταση του περιεχομένου του Master Boot Record, οπότε διαγράφεται η οποιαδήποτε υπάρχουσα ρύθμιση του LILO.Με το Loadlin δεν υπάρχει τέτοιο πρόβλημα.tο μόνο μειονέκτημα είναι οτι δεν υπάρχει σε αυτή την περίπτωση άλλος τρόπος εκκίνησης του Λίνουξ πέραν του Loadlin.Με το Loadlin μπορούμε να εγκαταστήσουμε τα λειτουργικά συστήματα με οποιαδήποτε σειρά επιθυμούμε. Θα πρέπει να προσέχουμε όταν εγκαθιστούμε κάτι στο Master Boot Record.Το Loadlin βασίζεται στο οτι η κατάτμηση Windows είναι η εκκινήσιμη στο σύστημα.έτσι κατά την εγκατάσταση του Slackware πρέπει να παρακάμψουμε την ρύθμιση / εγκατάσταση του LILO. Μετά την εγκατάσταση των λειτουργικών συστημάτων αντιγράψτε το αρχείο loadlinx.zip (όπου Χ η έκδοση,πχ. 16a) από το root του home directory στην κατάτμηση Windows. Θα πρέπει να κάνετε αυτή την διαδικασία από Λίνουξ για να λειτουργήσει. Το παρακάτω παράδειγμα παρουσιάζει τον τρόπο: # mkdir /win # mount -t vfat /dev/hda1 /win # mkdir /win/linux # cd /root # cp loadlin* /win/linux # cp /boot/vmlinuz /win/linux # cd /win/linuz # unzip loadlin16a.zip Με την παραπάνω διαδικασία θα δημιουργηθεί ένας φάκελος C:\Linux στην κατάτμηση των Windows (/dev/hda1 στο παράδειγμα) και θα αντιγραφούν σε αυτόν τα απαραίτητα αρχεία λειτουργίας του Loadlin.Μετά απο αυτό το βήμα θα χρειαστεί να επανεκκινήσουμε το σύστημα και να τρέξουμε τα Windows έτσι ώστε να ρυθμίσουμε μέσω αυτών ένα μενού εκκίνησης. Αφού φορτώσουν τα Windows πρέπει να σιγουρευτούμε οτι δεν θα φορτώνεται απευθείας κατα την εκκίνηση γραφικό περιβάλλον. Για να το επιτύχουμε αυτό ανοίγουμε την γραμμή εντολής του DOS και πληκτρολογούμε τις εξής εντολές C:\> cd \ C:\> attrib -r -a -s -h MSDOS.SYS C:\> edit MSDOS.SYS Στη συνέχεια, προσθέτουμε την εξής γραμμή στο αρχείο που ανοίξαμε: BootGUI=0 Αφού αποθηκεύσουμε το αρχείο και πατήσουμε έξοδο μπορούμε να προχωρήσουμε στην προσθήκη του μενού εκκίνησης.πληκτρολογούμε στην γραμμή εντολής DOS: edit c:\autoexec.bat Παρακάτω θα δούμε ένα παράδειγμα του αρχείου autoexec.bat, στο οποίο περιλαμβάνεται ένα μενού εκκίνησης. cls

79 echo System Boot Menu echo. echo 1 - Linux echo 2 - Windows echo. choice /c:12 "Selection? -> " if errorlevel 2 goto WIN if errorlevel 1 goto LINUX :LINUX cls echo "Starting Linux..." cd \linux loadlin c:\linux\vmlinuz root=/dev/hda2 ro goto END :WIN cls echo "Starting Windows..." win goto END :END Η γραμμή που μας ενδιαφέρει είναι αυτή που φορτώνει το Loadlin.Ώς παραμέτρους περνάμε τον πυρήνα προς εκκίνηση, την κεντρική κατάτμηση Linux και οτι αρχικά θέλουμε να φορτωθεί ως readonly. Τα εργαλεία για αυτές τις δυο μεθόδους παρέχονται με το Slackware Linux. Υπάρχουν πολλά άλλα εργαλεία εκκίνησης αλλά αυτά τα δύο λειτουργούν με επιτυχία στις περισότερες περιπτώσεις. Σενάριο επέμβασης στα Windows NT Αυτό είναι το λιγότερο σύνηθες σενάριο.σε παλαιότερες εποχές,το LILO αδυνατούσε να εκκινήσει τα Windows NT παρά μόνο αν οι χρήστες επενέβαιναν στο NTLDR,κάτι το οποίο παρουσίαζε περισσότερα προβλήματα από την διπλή εκκίνηση μεταξύ Windows 9x και Linux.To LILO εδώ και πολλά χρόνια υποστηρίζει την εκκίνηση των λειτουργικών συστημάτων Windows NT/2000/XP/2003/VISTA.Εάν παρόλα αυτά χρησιμοποιείτε παλαιό υλικό μπορεί να χρειαστεί να χρησιμοποιήσετε αυτό τον τρόπο. 1. Εγκαθιστούμε τα Windows NT 2. Εγκαθιστούμε το Linux και σιγουρευόμαστε οτι το LILO είναι εγκατεστημένο στην κεντρική κατάτμηση του Linux. 3. Παίρνουμε τα πρώτα 512 bytes της κεντρικής κατάτμησης του Linux και τα αποθηκεύουμε στην κατάτμηση των Windows NT. 4. Προσθέστε στο αρχείο C:\BOOT.INI των Windows NT επιλογή λειτουργικού Linux. Η εγκατάσταση των Windows NT είναι πολύ απλή, όπως και η εγκατάσταση του Linux.Σε αυτό το σημείο γίνεται λίγο πιο περίπλοκη.το να πάρουμε τα πρώτα 512 bytes της κεντρικής κατάτμησης του Linux είναι ευκολότερο απο όσο ακούγεται.θα πρέπει να βρισκόμαστε στο Linux για να το καταφέρουμε αυτό.υποθέτωντας οτι η κατάτμηση Linux είναι η /dev/hda2, πληκτρολογούμε την εξής εντολή: # dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512

80 Το μόνο που χρειάζεται τώρα είναι να αντιγράψουμε το bootsect.lnx στην Windows NT κατάτμηση.ένα πρόβλημα που προκύπτει σε αυτό το σημείο είναι το εξής.το Linux δεν παρέχει υποστήριξη εγγραφής για το NTFS σύστημα αρχείων.εάν εγκαταστήσουμε τα Windows ΝΤ και κάνουμε format τον σκληρό μας ως NTFS, θα χρειαστεί να αντιγράψουμε το bootsect.lnx σε δισκέττα,να τρέξουμε τα Windows και μετά απο την δισκέττα να το αντιγράψουμε στην κατάτμηση τους.εάν κάναμε format τον σκληρό μας ως FAT κατά την εγκατάσταση των Windows μπορούμε να τον φορτώσουμε μέσα απο Linux και να αντιγράψουμε το αρχείο απευθείας σε αυτόν.οποιονδήποτε κι αν χρησιμοποιήσουμε απ' τους δυο προαναφερθέντες τρόπους, στη συνέχεια πρέπει να αντιγραφεί το αρχείο /tmp/bootsect.lnx από την Linux κατάτμηση στο C:\BOOTSECT.LNX στην Windows κατάτμηση. Το τελευταίο βήμα είναι να προσθέσουμε μια παραπάνω επιλογή στο μενού εκκίνησης των Windows NT. Αφού έχουν φορτώσει τα Windows NT ανοίγουμε την γραμμή εντολής και πληκτρολογούμε: C:\WINNT> cd \ C:\> attrib -r -a -s -h boot.ini C:\> edit boot.ini Προσθέτουμε αυτή τη γραμμή στο τέλος του αρχείου: C:\bootsect.lnx="Slackware Linux" Αποθηκεύουμε το αρχείο και βγαίνουμε από τον editor.όταν θα επανεκκινήσουμε τα Windows NT, στο μενού εκκίνησης θα έχει προστεθεί μια επιλογή που αφορά το Linux. Μόλις την πατήσουμε θα γίνει εκκίνηση του Linux Linux Είναι αναμφίβολα το ευκολότερο σενάριο διπλής εκκίνησης. Υπάρχει η δυνατότητα χρήσης του LILO προσθέτωντας καταχωρήσεις στο αρχείο /etc/lilo.conf. Είναι τόσο απλό.

81 Κεφάλαιο 8 Το Κέλυφος Σε ένα γραφικό περιβάλλον, η διεπαφή παρέχεται από ένα πρόγραμμα που δημιουργεί παράθυρα, μπάρες κύλισης, μενού κλπ. Σε ένα περιβάλλον γραμμής εντολών, η διεπαφή χρήστη παρέχεται από ένα κέλυφος, το οποίο διερμηνεύει εντολές και γενικά κάνει τα πράγματα χρηστικά. Αμέσως μετά την επιβεβαίωση χρήστη (login, η οποία καλύπτεται σε αυτό το κεφάλαιο), οι χρήστες μεταφέρονται σε ένα κέλυφος και τους επιτρέπεται να κοιτάξουν τη δουλειά τους. Αυτό το κεφάλαιο λειτουργεί σαν μια εισαγωγή στο κέλυφος, και στο πιο διαδεδομένο κέλυφος μεταξύ των χρηστών Linux Το Bourne Again Shell (bash). Για αναλυτικότερη περιγραφή οποιουδήποτε σημείου αυτού του κεφαλαίου, ανατρέξτε στη σελίδα man του bash(1). 8.1 Χρήστες Κάνοντας logging Λοιπόν, μόλις ο υπολογιστής ξεκίνησε και βλέπετε κάτι σαν αυτό: Welcome to Linux Last login: Wed Jan 1 15:59: on tty6. darkstar login: Κανείς δεν μίλησε για επιβεβαίωση χρήστη. Και τι είναι ένα darkstar; Μην ανησυχείτε, πιθανότατα δεν πυροδοτήσατε έναν κοινοτικό υπερδιαστημικό σύνδεσμο στο τεχνητό φεγγάρι της αυτοκρατορίας (φοβάμαι ότι το πρωτόκολλο του κοινοτικού υπερδιαστημικού συνδέσμου δεν υποστηρίζεται αυτή τη στιγμή από τον Linux πυρήνα. Ίσως το κλαδί 2.8 του πυρήνα θα παρέχει επιτέλους αυτή την πολυαναμενόμενη υποστήριξη). Όχι, darkstar είναι απλά το όνομα ενός από τους υπολογιστές σας, και είναι το προεπιλεγμένο του όνομα. Αν καθορίσατε ένα όνομα για τον υπολογιστή σας κατά τη ρύθμιση, θα πρέπει να βλέπετε αυτό αντί για το darkstar. Σχετικά με την επιβεβαίωση χρήστη... Αν είναι η πρώτη σας φορά, θα θέλετε να εισέλθετε ως root. Θα σας ζητηθεί ένας κωδικός. Αν καθορίσατε έναν κατά τη διαδικασία ρύθμισης, είναι αυτός που ζητάτε. Αν όχι, απλά πατήστε enter. Αυτό είναι είστε μέσα! Root: Ο Υπερχρήστης OK, ποιος ή τι είναι root; Και τι κάνει με έναν λογαριασμό στο δικό σας σύστημα; Λοιπόν, στον κόσμο του Unix και των παρόμοιων λειτουργικών συστημάτων (όπως το Linux), υπάρχουν χρήστες και χρήστες. Θα το δούμε με περισσότερες λεπτομέρειες αργότερα, αλλά το σημαντικό που πρέπει να ξέρετε τώρα είναι ότι ο root είναι ο χρήστης πάνω από όλους τους άλλους. Ο root είναι πανίσχυρος, τα ξέρει όλα και κανείς δεν είναι ανυπάκουος στον root. Απλά δεν επιτρέπεται. Ο root είναι αυτό που αποκαλούμε υπερχρήστης, και δίκαια. Και το καλύτερο από όλα, ο root είστε εσείς. Ωραία; Αν δεν είστε σίγουροι: ναι, πολύ ωραία. Το μειονέκτημα είναι, ωστόσο, ότι στον root επιτρέπεται εκ φύσεως να καταστρέψει ότι θέλει. Ίσως να θέλετε να προτρέξετε στην ενότητα και να δείτε πως θα προσθέσετε έναν χρήστη. Μετά θα εισέλθετε ως εκείνος ο χρήστης και θα δουλέψετε από εκεί. Η παραδοσιακή σοφία είναι ότι είναι καλύτερα να γίνετε υπερχρήστης μόνο όταν είναι απολύτως απαραίτητο, ώστε να μειώσετε την πιθανότατα κατά λάθος να χαλάσετε κάτι. Με την ευκαιρία, αν αποφασίσετε ότι θέλετε να γίνετε root ενώ έχετε εισέλθει ως κάποιος άλλος, κανένα πρόβλημα. Απλά χρησιμοποιήστε την εντολή su(1). Θα σας ζητηθεί ο κωδικός του root και μετά θα σας κάνει root μέχρι να δώσετε την εντολή exit ή logout. Μπορείτε επίσης να γίνετε οποιοσδήποτε άλλος χρήστης με την su, αρκεί να ξέρετε τον κωδικό αυτού του χρήστη: su logan, για παράδειγμα, θα σας έκανε εμένα.

82 Στον root επιτρέπεται με την su να γίνει οποιοσδήποτε χρήστης, χωρίς κωδικό. 8.2 Η Γραμμή Εντολών Τρέχοντας Προγράμματα Είναι δύσκολο να καταφέρετε πολλά χωρίς να τρέξετε ένα πρόγραμμα. Ίσως να καταφέρετε να στηρίξετε κάτι με τον υπολογιστή σας ή να κρατήσετε μια πόρτα ανοικτή, και μερικοί κάνουν τον πιο υπέροχο θόρυβο όταν τρέχουν, αλλά ως εκεί. Και νομίζω όλοι μπορούμε να συμφωνήσουμε ότι η χρήση του ως ένα στήριγμα πόρτας που μουγκρίζει δεν είναι αυτό που εξασφάλισε στον προσωπικό υπολογιστή την δημοτικότητα που τώρα απολαμβάνει. Άρα, θυμάστε πως οτιδήποτε σχεδόν στο Linux είναι αρχείο; Λοιπόν, αυτό ισχύει και για τα προγράμματα. Κάθε εντολή που τρέχετε (που δεν είναι ενσωματωμένη στο κέλυφος) βρίσκεται κάπου σε ένα αρχείο. Τρέχετε ένα πρόγραμμα απλά καθορίζοντας το πλήρες μονοπάτι προς αυτό. Για παράδειγμα, θυμάστε την εντολή su από την προηγούμενη ενότητα; Λοιπόν, στην πραγματικότητα βρίσκεται στον κατάλογο /bin: το /bin/su θα την έτρεχε μια χαρά. Γιατί λοιπόν, τότε, πληκτρολογώντας απλά su δουλεύει; Εν τέλει δεν είπατε ότι βρίσκεται στο /bin. Θα μπορούσε το ίδιο εύκολα να βρίσκεται στο /usr/local/share, σωστά; Πως ήξερε; Η απάντηση σε αυτό βρίσκεται στην PATH μεταβλητή περιβάλλοντος. Τα περισσότερα κελύφη έχουν είτε την PATH ή κάτι που μοιάζει πολύ με αυτή. Βασικά περιέχει μια λίστα καταλόγων στους οποίους το κέλυφος αναζητά τα προγράμματα που προσπαθείτε να τρέξετε. Έτσι, μόλις τρέξατε την su, το κέλυφος διέτρεξε τη λίστα καταλόγων του, ελέγχοντας κάθε ένα για ένα εκτελέσιμο αρχείο su το οποίο θα μπορούσε να τρέξει. Το πρώτο που βρήκε το έτρεξε. Αυτό συμβαίνει κάθε φορά που τρέχετε ένα πρόγραμμα χωρίς να καθορίσετε ένα πλήρες μονοπάτι προς αυτό. Αν λάβετε ένα σφάλμα command not found (η εντολή δεν βρέθηκε), αυτό σημαίνει μόν ότι το πρόγραμμα που προσπαθήσατε να τρέξετε δεν βρίσκεται στο PATH σας. (Φυσικά, αυτό θα συνέβαινε και αν το πρόγραμμα δεν υπάρχει γενικά...) Θα μιλήσουμε για τις μεταβλητές περιβάλλοντος πιο αναλυτικά στην ενότητα Θυμηθείτε επίσης ότι το. είναι συντομογραφία για τον ενεργό κατάλογο, άρα αν έτυχε να βρίσκεστε στο /bin, το./su θα δούλευε ως ρητό πλήρες μονοπάτι Ταίριασμα χαρακτήρων Σχεδόν κάθε κέλυφος αναγνωρίζει μερικούς χαρακτήρες ως υποκατάστατα ή συντομογραφίες που σημαίνουν πως οτιδήποτε μπορεί να έρθει εδώ. Τέτοιοι χαρακτήρες εύστοχα ονομάζονται wildcards. Οι πιο συνηθισμένοι είναι το * και το?. Κατά σύμβαση, το? συνήθως ταιριάζει έναν μοναδικό χαρακτήρα. Για παράδειγμα, ας υποθέσουμε ότι βρίσκεστε σε έναν κατάλογο με τρία αρχεία: ex1.txt, ex2.txt και ex3.txt. Θέλετε να αντιγράψετε όλα αυτά τα αρχεία (χρησιμοποιώντας την εντολή cp που καλύπτουμε στην ενότητα ) σε έναν άλλο κατάλογο, ας πούμε τον /tmp. Λοιπόν, το να πληκτρολογήσετε cp ex1.txt ex2.txt ex3.txt /tmp είναι υπερβολικά πολλή δουλειά. Είναι πολύ ευκολότερο να πληκτρολογήσετε cp ex?.txt /tmp. Το? θα ταιριάξει με κάθε έναν από τους χαρακτήρες 1, 2 και 3, και θα αντικατασταθεί για καθέναν από αυτούς. Τι λέτε; Ακόμα και αυτό είναι πολλή δουλειά; Σωστά. Είναι αποκρουστικό. Έχουμε εργασιακούς νόμους να μας προστατεύουν από τέτοια πράγματα. Ευτυχώς έχουμε και το *. Όπως ήδη αναφέραμε το * ταιριάζει με οποιονδήποτε αριθμό χαρακτήρων, συμπεριλαμβανομένου του 9. Άρα αν υπάρχουν τρία αρχεία και είναι τα μόνα σε έναν κατάλογο, θα μπορούσαμε απλά να έχουμε πει cp * /tmp και να τα μαζεύαμε όλα μαζί. Ας υποθέσουμε, ωστόσο, ότι υπάρχει και ένα αρχείο που λέγεται ex.txt και ένα που λέγεται hejaz.txt. Θέλουμε να αντιγράψουμε το ex.txt αλλά όχι το hejaz.txt. Η cp ex* /tmp θα κάνει αυτό για εμάς. Η cp ex?.txt /tmp θα συμπεριλάμβανε, φυσικά, μόνο τα τρία αρχικά αρχεία μας. Δεν υπάρχει χαρακτήρας στο ex.txt για να ταιριάξει με το?, άρα θα έμενε έξω.

83 Μια ακόμη συνηθισμένη wildcard είναι το ζεύγος αγκυλών []. Οποιοιδήποτε χαρακτήρες στις αγκύλες θα αντικατασταθούν στη θέση του [] για να βρεθούν ταιριάσματα. Ακούγεται περίπλοκο; Δεν είναι τόσο άσχημο. Ας υποθέσουμε για παράδειγμα ότι έχουμε έναν κατάλογο που περιλαμβάνει τα εξής 8 αρχεία: a1, a2, a3, a4, aa, ab, ac και ad. Θέλουμε να βρούμε μόνο τα αρχεία που τελειώνουν με αριθμούς. Η [] θα το κάνει αυτό. % ls a[1-4] a1 a2 a3 a4 Αλλά τι γίνεται αν θέλουμε μόνο τα a1, a2, a4; Στο προηγούμενο παράδειγμα χρησιμοποιήσαμε το εννοώντας όλες τις τιμές από 1 έως 4. Μπορούμε επίσης να χωρίσουμε μεμονωμένες τιμές με κόμματα. % ls a[1,2,4] a1 a2 a4 Ξέρω τι σκέφτεστε τώρα, τι γίνεται με τα γράμματα;. Το Linux είναι ευαίσθητο στα κεφαλαία και τα πεζά (case sensitive) που σημαίνει ότι το a και το A είναι διαφορετικοί χαρακτήρες και σχετίζονται μόνο στο μυαλό σας. Τα κεφαλαία πάντα είναι μπροστά από τα μικρά, άρα τα A και B είναι πριν τα a και b. Συνεχίζοντας το προηγούμενο παράδειγμα, αν θα θέλαμε τα αρχεία a1 και A1 θα μπορούσαμε να τα βρούμε γρήγορα με []. % ls [A,a]1 A1 a1 Σημειώστε ότι αν περιλαμβάναμε παύλα αντί για κόμμα θα παίρναμε λάθος αποτελέσματα. % ls [A-a]1 A1 B1 C1 D1 a1 Μπορείτε επίσης να συνδυάσετε συμβολοσειρές με παύλες και κόμματα. % ls [A,a-d] A1 a1 b1 c1 d Ανακατεύθυνση Εισόδου/Εξόδου και Διασωλήνωση (Έρχεται κάτι θαυμάσιο) % ps > blargh Ξέρετε τι είναι αυτό; Είμαι εγώ που τρέχω το ps για να δω ποιες διεργασίες τρέχουν. Το ps καλύπτεται στην ενότητα Δεν είναι αυτό το ενδιαφέρον μέρος. Το ενδιαφέρον είναι το > blargh, που σημαίνει, χοντρικά, πάρε την έξοδο της ps και γράψε την σε ένα αρχείο που λέγεται blargh. Αλλά περιμένετε, γίνεται ακόμα καλύτερο. % ps less Αυτό παίρνει την έξοδο της ps και την διασωληνώνει μέσω της less, άρα μπορώ να κυλώ μέσω αυτής με την ησυχία μου. % ps >> blargh Αυτή είναι ο τρίτη πιο συχνά χρησιμοποιούμενη ανακατεύθυνση. Κάνει το ίδιο με το >, εκτός του ότι το >> προσθέτει την έξοδο της ps στο αρχείο blargh, αν αυτό υπάρχει. Αν όχι, ακριβώς όπως με την >, θα δημιουργηθεί. (το > θα εξαφανίσει το τωρινό περιεχόμενο του blargh.)

84 Υπάρχει επίσης ο τελεστής <, που σημαίνει πάρε την είσοδό σου από το εξής, αλλά δεν χρησιμοποιείται τόσο συχνά. % fromdos < dosfile.txt > unixfile.txt Η ανακατεύθυνση γίνεται πραγματικά διασκεδαστική όταν αρχίσετε να τη στοιβάζετε: % ps tac >> blargh Αυτό θα τρέξει το ps, θα αντιστρέψει τις γραμμές της εξόδου του και θα τις προσθέσει στο αρχείο blargh. Μπορείτε να στοιβάσετε όσες από αυτές θέλετε. Απλά να θυμάστε ότι διερμηνεύονται από τα αριστερά προς τα δεξιά. Δείτε τη σελίδα man του bash(1) για πιο αναλυτική περιγραφή της ανακατεύθυνσης. 8.3 Το κέλυφος Bourne Again (bash) Μεταβλητές Περιβάλλοντος Ένα σύστημα Linux είναι ένα περίπλοκο τέρας, και υπάρχουν πολλά τα οποία πρέπει να παρακολουθείτε, πολλές μικρές λεπτομέρειες που έρχονται στο παιχνίδι στην κανονική διεπαφή σας με διάφορα προγράμματα (μερικά από τα οποία μπορεί ακόμα και να μην τα γνωρίζετε). Κανείς δεν θέλει να περάσει μια δέσμη επιλογών σε κάθε πρόγραμμα που τρέχει, λέγοντάς του τι τερματικό χρησιμοποιείται, το όνομα του υπολογιστή, πως πρέπει να φαίνεται η γραμμή εντολών... Άρα ως μηχανισμό αντιγραφής οι χρήστες έχουν αυτό που λέμε περιβάλλον. Το περιβάλλον καθορίζει τις συνθήκες στις οποίες τρέχουν τα προγράμματα, και μέρος του ορισμού του είναι μεταβλητό. Ο χρήστης μπορεί να το τροποποιήσει και να παίξει με αυτό, όπως είναι σωστό σε ένα σύστημα Linux. Σχεδόν κάθε κέλυφος έχει μεταβλητές περιβάλλοντος (αν όχι, δεν είναι και πολύ χρηστικό κέλυφος). Εδώ θα δώσουμε μια επισκόπηση των εντολών που παρέχει ο bash για την επεξεργασία των μεταβλητών περιβάλλοντός του. H set από μόνη της θα σας δείξει όλες τις μεταβλητές περιβάλλοντος που έχουν οριστεί, όπως επίσης και τις τιμές τους. Όπως οι περισσότερες ενσωματωμένες στο κέλυφος εντολές, μπορεί να κάνει πολλά άλλα πράγματα (με παραμέτρους). Θα αφήσουμε ωστόσο στη σελίδα man του bash(1) να τα καλύψει αυτά. Το παράδειγμα 8-1 δείχνει ένα απόσπασμα μιας εντολής set να τρέχει σε έναν από τους υπολογιστές του συγγραφέα. Παρατηρήστε σε αυτό το παράδειγμα την μεταβλητή PATH που περιγράψαμε νωρίτερα. Τα προγράμματα σε αυτούς τους καταλόγους μπορούν να τρέξουν απλά πληκτρολογώντας το βασικό τους όνομα αρχείου. % set PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin: /usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin: /usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin PIPESTATUS=([0]="0") PPID=4978 PS1='\h:\w\$ ' PS2='> ' PS4='+ ' PWD=/home/logan QTDIR=/usr/local/lib/qt REMOTEHOST=ninja.tdn SHELL=/bin/bash % unset VARIABLE

85 Η unset θα αφαιρέσει τις μεταβλητές που τις δίνετε, εξαφανίζοντας και τη μεταβλητή και την τιμή της. Ο bash θα ξεχάσει ότι αυτή η μεταβλητή υπήρξε κάποτε. (Μην ανησυχείτε. Αν δεν ήταν κάτι το οποίο ορίσατε ρητά σε αυτή τη σύνοδο του κελύφους, θα ξαναοριστεί πιθανότατα σε κάθε άλλη σύνοδο.) % export VARIABLE=some_value Τώρα, η export είναι πραγματικά χρήσιμη. Χρησιμοποιώντας τη δίνετε στη μεταβλητή περιβάλλοντος VARIABLE την τιμή some_value. Αν η VARIABLE δεν υπήρχε τώρα υπάρχει. Αν η VARIABLE είχε κάποια τιμή τώρα χάθηκε. Αυτό δεν είναι τόσο καλό αν απλά προσπαθείτε να προσθέσετε έναν κατάλογο στο PATH σας. Σε αυτή την περίπτωση, μάλλον θέλετε να κάνετε κάτι σαν αυτό: % export PATH=$PATH:/some/new/directory Προσέξτε τη χρήση του PATH εδώ: όταν θέλετε ο bash να διερμηνεύσει μια μεταβλητή (να την αντικαταστήσει με την τιμή της), βάλτε ένα $ μπροστά στο όνομα της μεταβλητής. Για παράδειγμα, η echo $PATH θα εμφανίσει την τιμή της PATH, στην περίπτωσή μου: % echo $PATH /usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/x11r6/bin: /usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin: /usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin Συμπλήρωση με Tab (Και τώρα κάτι άλλο θαυμάσιο.) 1. Μια διεπαφή γραμμής εντολών σημαίνει πολλή πληκτρολόγηση 2. Η πληκτρολόγηση είναι δουλειά 3. Σε κανέναν δεν αρέσει η δουλειά. Από τα 3 και 2 μπορούμε να συμπεράνουμε ότι (4) σε κανέναν δεν αρέσει να πληκτρολογεί. Ευτυχώς, ο bash μας σώνει από το (5) (σε κανέναν δεν αρέσει μια διεπαφή γραμμής εντολών). Ρωτάτε πως καταφέρνει ο bash αυτόν τον υπέροχο άθλο; Επιπλέον της αντικατάστασης των wildcards που περιγράψαμε νωρίτερα, ο bash προσφέρει συμπλήρωση με tab. Η συμπλήρωση με tab δουλεύει ως εξής: Πληκτρολογείτε το όνομα ενός αρχείου. Ίσως βρίσκεται στο PATH σας, ίσως το καθορίζετε ρητά. Αυτό που πρέπει να κάνετε είναι να πληκτρολογήσετε όσο από το όνομα αρχείου είναι αρκετό για να αναγνωριστεί. Μετά πατήστε το πλήκτρο TAB. Ο bash θα καταλάβει τι θέλετε και θα τελειώσει την πληκτρολόγηση για εσάς! Ώρα για παράδειγμα. Το /usr/src περιλαμβάνει δύο υποκαταλόγους: /usr/src/linux και /usr/src/linuxold. Αν πληκτρολογήσω /usr/src/l και πατήσω TAB, o bash θα συμπληρώσει όσο μπορεί, και θα πάρω το /usr/src/linux. Μπορώ να σταματήσω εδώ, ή μπορώ να ξαναπατήσω το TAB, και ο BASH θα μου δείξει μια λίστα καταλόγων που ταιριάζουν με ότι έχω πληκτρολογήσει μέχρι στιγμής. Άρα, λιγότερη πληκτρολόγηση (και άρα, μπορούν να αρέσουν στους ανθρώπους οι διεπαφές γραμμής εντολών). Σας είπα ότι είναι θαυμάσιο. 8.4 Εικονικά Τερματικά Λοιπόν, βρίσκεστε στη μέση της δουλειάς και αποφασίζετε ότι θέλετε κάτι άλλο. Θα μπορούσατε απλά να αφήσετε αυτό που κάνετε και να αλλάξετε εργασίες, αλλά αυτό είναι πολυχρηστικό σύστημα, σωστά; Και μπορείτε να εισέλθετε όσες φορές θέλετε ταυτόχρονα, σωστά; Άρα γιατί θα έπρεπε να κάνετε ένα πράγμα κάθε φορά;

86 Δεν χρειάζεται. Δεν μπορούμε όλοι να έχουμε πολλά πληκτρολόγια, ποντίκια και οθόνες για το ίδιο μηχάνημα. Οι πιθανότητες είναι ότι οι περισσότεροι από εμάς δεν τα χρειαζόμαστε. Καθαρά το υλικό δεν είναι η λύση. Αυτό μας αφήνει το λογισμικό, και το Linux βαδίζει σε αυτό, παρέχοντας εικονικά τερματικά (virtual terminals) ή Vts. Πατώντας το Alt και ένα πλήκτρο F μπορείτε να μεταβείτε μεταξύ εικονικών τερματικών. Κάθε πλήκτρο F αντιστοιχεί σε ένα. Το Slackware έχει οθόνες εισόδου σε 6 VΤ ως προεπιλογή. Το Alt+F2 θα σας πάει στο δεύτερο, το Alt+F3 στο τρίτο κλπ. Τα υπόλοιπα πλήκτρα F είναι δεσμευμένα για συνόδους X. Κάθε σύνοδος X χρησιμοποιεί το δικό της VT, ξεκινώντας από το έβδομο (Alt+F7) και συνεχίζοντας. Όταν βρίσκεστε σε X, ο συνδυασμός Alt+Πλήκτρο F αντικαθίσταται από τον Ctrl+Alt+F. Άρα αν βρίσκεστε σε Χ και θέλετε να επιστρέψετε σε μη γραφική οθόνη εισόδου (χωρίς να βγείτε από την X σύνοδο), τo Ctrl+Alt+F3 θα σας πάει στην τρίτη. (με το Alt+F7 θα επιστρέψετε, υποθέτοντας ότι χρησιμοποιείτε την πρώτη σύνοδο X) Screen Αλλά τι γίνεται στις περιστάσεις που δεν υπάρχουν εικονικά τερματικά; Τι κάνουμε τότε; Ευτυχώς, το Slackware περιλαμβάνει έναν όμορφο διαχειριστή οθόνης που εύστοχα λέγεται screen. H screen είναι ένας προσομοιωτής τερματικού (terminal emulator) που έχει δυνατότητες ενός εικονικού τερματικού. Εκτελώντας screen εμφανίζεται μια σύντομη εισαγωγή, μετά πετάγεται σε ένα τερματικό. Σε αντίθεση με τα βασικά εικονικά τερματικά, Η screen έχει δικές τις εντολές. Όλες οι εντολές της screen ξεκινούν με τον συνδυασμό πλήκτρων Ctrl+A. Για παράδειγμα, το Ctrl+A+C θα δημιουργήσει μια νέα σύνοδο τερματικού. Με το Ctrl+A+N θα μεταβείτε στο επόμενο τερματικό. Με το Ctrl+A+P θα μεταβείτε στο προηγούμενο τερματικό. Η screen επίσης υποστηρίζει αποπροσάρτηση και προσάρτηση ξανά σε συνόδους screen που είναι ιδιαίτερα χρήσιμο σε απομακρυσμένες συνόδους με ssh και telnet (περισσότερα σχετικά με αυτά αργότερα). Με το Ctrl+A+D θα αποπροσαρτηθείτε από την screen που τρέχει εκείνη τη στιγμή. Η εκτέλεση της screen -r θα εμφανίσει όλες τις συνόδους screen που τρέχουν και στις οποίες μπορείτε να προσαρτηθείτε. % screen -r There are several suitable screens on: 1212.pts-1.redtail (Detached) 1195.pts-1.redtail (Detached) 1225.pts-1.redtail (Detached) pts-1.sanctuary (Dead???) Remove dead screens with 'screen -wipe'. Type "screen [-d] -r [pid.]tty.host" to resume one of them. Τρέχοντας screen -r 1212 θα σας προσαρτούσε ξανά στην πρώτη screen που εμφανίζεται. Ανέφερα νωρίτερα πόσο χρήσιμο είναι αυτό για απομακρυσμένες συνόδους. Αν ήθελα να εισέλθω σε έναν απομακρυσμένο Slackware διακομιστή μέσω ssh, και η σύνοδός μου διακοπτόταν από ένα πιθανό συμβάν όπως μια τοπική διακοπή ρεύματος, οτιδήποτε έκανα εκείνη τη στιγμή στιγμιαία θα χανόταν, κάτι που μπορεί να είναι απαίσιο για τον διακομιστή σας. Η χρήση της screen το αποτρέπει αυτό με την αποπροσάρτηση από τη σύνοδο αν χαθεί η σύνδεση. Μόλις επανέλθει η σύνδεσή μου, μπορώ να προσαρτηθώ ξανά στη σύνοδο screen και να συνεχίσω από εκεί που βρισκόμουν.

87 Κεφάλαιο 9: Δομή αρχείων συστήματος Έχουμε ήδη μιλήσει για τη δομή των καταλόγων στο Slackware Linux. Θα πρέπει λοιπόν να μπορείτε να βρείτε αρχεία και καταλόγους όπου χρειάζεστε. Υπάρχουν όμως πολλά περισσότερα στη δομή τω αρχείων του συστήματος εκτός της δομής των καταλόγων. Το Linux είναι έχει σχεδιαστεί έτσι ώστε να εξυπηρετεί πολλές χρήστες ταυτόχρονα (multiuser). Κάθε οπτική γωνία έχει αυτή την λογική, σύστημα αρχείων. Το σύστημα αποθηκεύει τις πληροφορίες με την ιδέα του σε ποιόν ανήκει εάν αρχείο και ποιος μπορεί απλά να το διαβάσει. Υπάρχουν και άλλα αξιόλογα μέρη γύρω από τα δομή των αρχείων του συστήματος, όπως οι σύνδεσμοι (links) και οι προσαρτημένοι κατάλογοι μέσω NFS (Network File System). Η ενότητα αυτή επεξηγεί αυτά, όπως επίσης και την λογική της εξυπηρέτησης πολλών χρηστών. 9.1 Ιδιοκτησία (Ownership) Η ιδιοκτησία του κάθε αρχείου μπορεί να τεθεί ξεχωριστά για το κάθε αρχείο και κατάλογο μέσα στο σύστημα. Αυτό περιλαμβάνει τόσο το χρήστη όσο και τις ομάδες για ένα συγκεκριμένο αρχείο. Ο ευκολότερος τρόπος για να αντλήσετε τέτοιου είδους πληροφορίες για ένα αρχείο είναι με την εντολή ls: % ls -l /usr/bin/wc -rwxr-xr-x 1 root bin 7368 Jul /usr/bin/wc Μας ενδιαφέρουν η τρίτη και τέταρτη στήλη. Αυτές περιέχουν το όνομα χρήστη και την ομάδα χρηστών όπου ανήκει το συγκεκριμένο αρχείο. Μπορούμε να δούμε ότι το αρχείο ανήκει στον χρήστη root και την ομάδα bin. Μπορούμε, επίσης εύκολα, να αλλάξουμε τις ιδιοκτησία του αρχείου με την εντολή chown(1) (που βγαίνει από το change owner - άλλαξε ιδιοκτήτη ) και με την εντολή chgrp(1) (που βγαίνει από το change group - άλλαξε ομάδα ). Για να αλλάξουμε τον ιδιοκτήτητ από root σε daemon πρέπει να κάνουμε το εξής: # chown daemon /usr/bin/wc Για να αλλάξουμε την ομάδα από bin σε root : # chgrp root /usr/bin/wc Μπορούμε να ορίσουμε τον ιδιοκτήτη και την ομάδα με μια εντολή: # chown daemon:root /usr/bin/wc Στα παραπάνω παραδείγματα, ο χρήστης θα μπορούσε να είχε χρησιμοποιήσει τελεία αντί άνω κάτω τελείας. Το αποτέλεσμα θα ήταν το ίδιο. Η χρήση της τελείας όμως δε συνιστάται και είναι πολύ πιθανό να αφαιρεθεί από μέλλουσες εκδόσεις της chown για να επιτραπούν ονόματα χρηστών με περιόδους. Αυτά τα ονόματα είναι αρκετά διαδεδομένα στους Microsoft Exchange Servers και χρησιμοποιούνται αρκετά σε διευθύνσεις ηλεκτρονικού ταχυδρομείου: Στο Slackware, οι διαχειριστές συστήματος καλό είναι να μην δίνουν τέτοια ονόματα στους χρήστες μιας και υπάρχουν διάφορα scripts

88 όπου χρησιμοποιούν την τελεία για να δηλώσουν χρήστη και ομάδα για κάποιο αρχείο η κατάλογο. Στο δικό μας παράδειγμα, η chmod θα νόμιζε για το mr.jones ότι το mr είναι ο χρήστης και το jones η ομάδα. Θα πρέπει να είστε πολύ προσεκτικοί σχετικά με τα δικαιώματα και την ιδιοκτησία σε ένα σύστημα Linux, ακόμη και αν εσείς είστε ο μόνος χρήστης. Υπάρχουν και περιπτώσεις όπου θα χρειαστεί να ρυθμίσετε την ιδιοκτησία σε ειδικά αρχεία και αρχεία που αντιπροσωπεύουν διάφορες συσκευές. 9.2 Άδειες (Permissions) Οι άδειες είναι το άλλο πολύ σημαντικό κομμάτι για ένα σύστημα που είναι έτσι δομημένο για την εξυπηρέτηση πολλών χρηστών. Με αυτές, μπορείτε να ορίσετε ποιος θα έχει το δικαίωμα να διαβάζει, να γράφει, και να εκτελεί τα αρχεία. Οι πληροφορίες τω αδειών έχουν τη μορφή οκταδικών ψηφίων, όπου το καθένα καθορίζει διαφορετική άδεια. Υπάρχουν οι άδειες του ιδιοκτήτη, της ομάδας και όλων των άλλων. Το τέταρτο οκταδικό ψηφίο χρησιμοποιείται για ειδικές πληροφορίες όπως το ID του χρήστη, της ομάδας και του λεγόμενου stikcy bit. Οι οκταδικές τιμές που ορίζονται ως άδεις είναι (μπορεί επίσης να χρησιμοποιηθούν και γραμματικοί χαρακτήρες για να οριστούν οι άδειες και εμφανίζονται με την εντολή ls αλλά και που μπορούν να χρησιμοποιηθούν με την chmod): Πίνακας 9 1. Οκταδικές τιμές αδειών Οκταδική Τύπος άδειας Χαρακτήρας τιμή sticky bit 1 t user ID 4 s group ID 2 s read 4 r write 2 w execute 1 x Προσθέτετε τις οκταδικές τιμές για κάθε ομάδα αδειών. Για παράδειγμα, εάν θέλετε μια ομάδα να μπορεί να διαβάζει και να γράφει στο αρχείο, τότε θα πρέπει να χρησημοποιήσετε τον αριθμό 6 στο μέρος της ομάδας: Οι άδειες για το bash είναι: % ls -l /bin/bash -rwxr-xr-x 1 root bin Mar 21 19:57 /bin/bash Η πρώτη παύλα θα μπορούσε να αντικατασταθεί με το γράμμα d εάν ήταν κατάλογος. Οι άλλες τρεις ομάδες αδειών (owner, group, world) εμφανίζονται ως γράμματα. Μπορούμε να δούμε ότι ο ιδιοκτήτης μπορεί να διαβάσει, να γράψει και να εκτελέσει το αρχείο (rwx). Η ομάδα μπορεί απλώς να διαβάσει και να εκτελέσει το αρχείο (r-x). Και όλοι οι υπόλοιπη μπορούν επίσης να διαβάσουν και να εκτελέσουν το αρχείο (r-x). Πώς μπορούμε όμως να δώσουμε άλλες τιμές στις άδειες; Ας δούμε ένα παράδειγμα:

89 % touch /tmp/example % ls -l /tmp/example -rw-rw-r--- 1 david users 0 Apr 19 11:21 /tmp/example Θα χρησιμοποιήσουμε την chmod(1) για να ορίσουμε άδειες στο αρχείο example. Προσθέτουμε τις τιμές των οκταδικών αριθμών για τις άδειες που θέλουμε. Για τον ιδιοκτήτη θέλουμε να μπορεί να διαβάζει, να γράφει και να εκτελεί το αρχείο οπότε έχουμε τη τιμή 7. Το να διαβάζει και να εκτελεί το αρχεία τη τιμή 5. Οπότε έχουμε: % chmod 755 /tmp/example % ls -l /tmp/example -rwxr-xr-x 1 david users 0 Apr 19 11:21 /tmp/example Τώρα όμως μπορεί να σκέφτεστε. Γιατί δεν δημιούργησε ένα αρχείο με αυτές τις άδειες από τη πρώτη στιγμή;. Η απάντηση είναι απλή. Το bash περιλαμβάνει μια πολύ καλή λειτουργία η οποία λέγεται umask. Αυτή η λειτουργία βρίσκεται σχεδόν σε όλα τα κέλυφη που είναι διαθέσιμο στο Unix, και ελέγχει το τι άδεις θα δωθούν σε ένα νέο αρχείο. Περισσότερα για εσωτερικές λειτουργίες του μπορείτε να δείτε στο κεφάλαιο Θα χρειαστεί να δώσετε λίγο χρόνο για να καταλάβετε ακριβώς τη umask. Δουλεύει πάντως πανομοιότυπα με τη chmod, μόνο ανάποδα. Πρέπει να ορίσετε τις οκταδικές τιμές των αδειών όπου δεν θέλετε να πάρει το αρχείο, ή ο κατάλογος. Η προεπιλογή είναι % umask 0022 % umask 0077 % touch tempfile % ls -l tempfile -rw david users 0 Apr 19 11:21 tempfile Μπορείτε να δείτε τη σελίδα man του bash για περισσότερες πληροφορίες. Για να ορίσετε τις άδειες με τη chmod, προσθέστε τις τιμές και τοποθετήστε το σύνολο στη πρώτη στήλη. Για παράδειγμα, για να ορίσουμε το ID του χρήστη και της ομάδας, χρησημοποιούμε το 6 στη πρώτη στήλη: % chmod 6755 /tmp/example % ls -l /tmp/example -rwsr-sr-x 1 david users 0 Apr 19 11:21 /tmp/example

90 Εάν σας δυσκολεύουν οι οκταδικές τιμές, τότε μπορείτε να χρησιμοποιήσετε χαρακτήρες με την chmod: Ιδιοκτήτης Ομάδα Υπόλοιποι Όλοι u g o a Για να εφαρμόσετε όμως με χαρακτήρες ότι κάναμε παραπάνω, πρέπει να δώσετε περισσότερες εντολές: % chmod a+rx /tmp/example % chmod u+w /tmp/example % chmod ug+s /tmp/example Μερικοί χρήστες προτιμούν τους χαρακτήρες. Όπως και να έχει όμως, το αποτέλεσμα θα είναι το ίδιο. Οι οκταδικοί μορφή είναι συνήθως γρηγορότερη, και αυτή που χρησιμοποιείται πιο συχνά. Μερικές φορές όμως οι χαρακτήρες μπορούν να αποδώσουν περισσότερο. Δεν είναι δυνατόν με τις οκταδικές τιμές να μπορέστε να αλλάξετε μια ομάδα αδειών ενώ θέλετε να διατηρήσετε μία άλλη. Με τους χαρακτήρες όμως γίνεται: % ls -l /tmp/ -rwxr-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example0 -rwxr-x--- 1 alan users 0 Apr 19 11:21 /tmp/example1 ----r-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example2 % chmod g-rwx /tmp/example? -rwx---r-x 1 alan users 0 Apr 19 11:21 /tmp/example0 -rwx alan users 0 Apr 19 11:21 /tmp/example r-x 1 alan users 0 Apr 19 11:21 /tmp/example2 Μιλήσαμε παραπάνω για το ID του χρήστη και της ομάδας. Πολύ πιθανόν να αναρωτιέστε τι μπορεί να είναι αυτά. Συνήθως, όταν τρέχετε ένα πρόγραμμα, τρέχει κάτω από το όνομα του χρήστη που το ξεκίνησε. Αυτό σημαίνει ότι έχει όλες τις άδειες που έχει και ο χρήστης. Το ίδιο ισχύει και για την ομάδα. Όταν τρέχετε ένα πρόγραμμα, εκτελείται με τις άδειες της ομάδας στην οποία ανήκει ο χρήστης. Με το να ορίσουμε το ID του χρήστη το πρόγραμμα θα τρέχει κάθε φορά με τις άδειες σε αυτόν που ανήκει. Το ίδιο ισχύει και για την ομάδα. Πρέπει όμως να είστε προσεκτικοί όταν ορίζετε τα ID του χρήστη και της ομάδας μιας και μπορεί έτσι να δημιούργησε κενά ασφαλείας στο σύστημά σας. Εάν ορίζετε ID χρήστη σε προγράμματα που ανήκουν στον υπερχρήστη (root), σημαίνει ότι επιτρέπετε σε οποιονδήποτε να τρέξει το συγκεκριμένο πρόγραμμα σαν να είναι ο υπερχρήστης. Μιας και ο υπερχρήστης δεν έχει κανέναν περιορισμό μέσα στο σύστημα, μπορεί εύκολα κάποιος να φανταστεί το κενά ασφαλείας δημιουργούνται. Εν συντομία, δεν είναι κακό να χρησιμοποιείται τα ID του χρήστη και της ομάδας, αλλά χρησιμοποιήστε επίσης τη λογική σας.

91 9.3 Σύνδεσμοι (Links) Οι σύνδεσμοι είναι δείκτες μεταξύ αρχείων. Με τους συνδέσμους μπορείτε να έχετε αρχεία να υπάρχουν σε οποιοδήποτε μέρος του συστήματός σας και να είναι προσβάσιμα από κάπου αλλού και με άλλο όνομα. Οι λεγόμενοι σκληροί σύνδεσμοι - hard links, χρησιμοποιούνται σας ονόματα για συγκεκριμένα αρχεία. Μπορούν να υπάρχουν μόνο σε ένα σύστημα αρχείων και διαγράφονται όταν διαγραφεί και το αρχείο το οποίο συνδέουν. Υπάρχουν και οι μαλακοί σύνδεσμοι - soft links, που επίσης αποκαλούνται συμβολικοί σύνδεσμοι - symbolic links, οι οποίοι στην ουσία είναι μικρά αρχεία τα περιέχουν τις απαραίτητες πληροφορίες και μπορούν να συνδέσουν αρχεία και σε άλλα συστήματα.. Μπορείτε να δημιουργήσετε και να διαγράψετε soft links χωρίς να επηρεαστεί καθόλου το βασικό αρχείο. Μιας και τα soft links είναι αρχεία τα οποία περιέχουν τις δικές τους πληροφορίες, μπορούν να συνδέσουν και καταλόγους. Είναι σύνηθες να υπάρχει ένας σύνδεσμος του /var/tmp στο /tmp. Οι σύνδεσμοι δεν έχουν τις δικές τους άδειες, αλλά δέχονται αυτές του αρχείου, ή του καταλόγου, του οποίου συνδέουν. Το Slackware χρησιμοποιεί κατά κύριο λόγο soft links. Για του λόγου το αληθές ας δούμε το παρακάτω παράδειγμα: % ls -l /bin/sh lrwxrwxrwx 1 root root 4 Apr 6 12:34 /bin/sh -> bash Το sh κέλυφος στο Slackware είναι το bash. Οι σύνδεσμοι διαγράφονται όπως και όλα τα άλλα αρχεία με την εντολή rm. Η εντολή ln χρησιμοποιείται για να δημιουργήσει συνδέσμους. Όλες αυτές οι εντολές αναλύονται στο κεφάλαιο Προσαρτίζοντας συσκευές - Mounting Devices Έχοντας μιλήσει νωρίτερα στο κεφάλαιο 4.1.1, όλες οι συσκευές στο σύστημα σας φαίνονται ως αρχεία και αποτελούν το σύστημα αρχείων. Διάφορες κατατμήσεις σκληρών δίσκων, CD-ROM, οδηγοί δισκέτας, όλα αυτά προσαρτίζονται στο ίδιο σύστημα αρχείων, κάτω από το ίδιο δέντρο. Προκειμένου να προσθέσετε τις συσκευές αυτές στο σύστημά σας, πρέπει να τις προσαρτήσετε με την εντολή mount(1). Και όταν θέλετε να τις αφαιρέσετε, να μην είναι πλέον προσαρτημένες, χρησιμοποιήστε την umount(1). Κάποιες συσκευές προσαρτίζονται αυτόματα με το που ξεκινάτε τον υπολογιστή σας. Αυτές βρίσκονται στο αρχείο /etc/fstab. Οτιδήποτε θέλετε να προσαρτίζεται αυτόματα κατά τη διάρκεια της εκκίνησης θα πρέπει να το προσθέσετε σε αυτό το αρχείο. Για τις υπόλοιπες συσκευές, θα χρειαστεί να το κάνετε χειροκίνητα κάθε φορά που θα θέλετε να τις χρησιμοποιήσετε (αυτό δεν ισχύει για την έκδοση 12 του Slackware και μεταγενέστερες).

92 9.4.1 fstab Ρίχνοντας μια ματιά στο /etc/fstab του συστήματός μου: % cat /etc/fstab /dev/sda1 / ext2 defaults 1 1 /dev/sda2 /usr/local ext2 defaults 1 1 /dev/sda4 /home ext2 defaults 1 1 /dev/sdb1 swap swap defaults 0 0 /dev/sdb3 /export ext2 defaults 1 1 none /dev/pts devpts gid=5,mode= none /proc proc defaults 0 0 /dev/fd0 /mnt ext2 defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 ro 0 0 Η πρώτη στήλη δηλώνει τη συσκευή. Στη δική μας περίπτωση, οι συσκευές είναι πέντε κατατμήσεις από δύο σκληρούς δίσκους τύπου SCSI, δύο ειδικά αρχεία συστήματος όπου δεν χρειάζονται συσκευές, ένας οδηγός δισκέτας και ένα οδηγός CD-ROM. Η δεύτερη στήλη είναι αυτή όπου δηλώνει το που θα προσαρτηθεί η κάθε συσκευή. Χρειάζεται λοιπόν να είναι μια υπαρκτή τοποθεσία στο σύστημά σας, εκτός και αν πρόκειται για κατάτμηση μνήμης swap. Η τρίτη στήλη δηλώνει τον τύπο, το format, της κατάτμησης. Για τα περισσότερα συστήματα Linux αυτό θα είναι ext2 (second extended file system) ή ext3. Οι οδηγοί CD-ROM είναι τύπου iso9660, και οι κατατμήσεις Windows είναι συνήθως vfat ή ntfs. Η τέταρτη στήλη δηλώνει τις επιλογές για το αντίστοιχη κατάτμηση. Το defaults είναι το πιο συνηθισμένο και συνήθως κάνει για όλες τις δουλειές. Συσκευές όμως που είναι μόνο για ανάγνωση θα πρέπει να δηλώνονται ως ro (read only). Υπάρχουν πάρα πολλές επιλογές όπου μπορούν να χρησιμοποιηθούν. Για να τις δείτε ανατρέξτε στη σελίδα man του fstab(5). Οι δύο τελευταίες στήλες χρησιμοποιούνται από το fsck και άλλες εντολές όπου εφαρμόζονται σε συσκευές. Μια ματιά στις αντίστοιχες σελίδες man θα σας βοηθήσει ιδιαίτερα. Όταν πραγματοποιείται την εγκατάσταση του Slakcware, το πρόγραμμα εγκατάστασης θα δημιουργήσει το μεγαλύτερο μέρος του fstab mount και umount Το να προσαρτήσετε κάποια συσκευή στο σύστημά σας είναι σχετικά εύκολο. Το μόνο που χρειάζεται να κάνετε είναι να κάνετε χρήση της εντολής mount, μαζί με τις διάφορες επιλογές τις οποίες έχει διαθέσιμες. Εάν έχετε μία συσκευή δηλωμένη στο fstab τότε με την εντολή mount μπορείτε απλά να δώσετε το όνομα της και αυτή θα προσαρτηθεί στο σύστημα σας. Για παράδειγμα: % mount /cdrom Μιας και υπάρχει δηλωμένη η συσκευή cdrom στο fstab, η mount γνωρίζει τις επιλογές να χρησιμοποιήσει. Εάν δεν υπήρχε η συσκευή αυτή στο fstab, τότε θα έπρεπε να είχαμε χρησιμοποιήσει κάποιες από τις επιλογές της εντολής. Για παράδειγμα:

93 % mount -t iso9660 -o ro /dev/cdrom /cdrom Η εντολή αυτή περιλαμβάνει τις ίδιες πληροφορίες για τη συσκευή με το αρχείο fstab που δώσαμε παραπάνω. Το t iso9660 δηλώνει τον τύπο της συσκευής. Στη περίπτωσή μας είναι iso9660 μιας και αυτό είναι ότι χρησιμοποιούν τα CD ROM. To o ro δηλώνει ότι η συσκευή θα προσφέρετε μόνο για ανάγνωση. Το /dev/cdrom δηλώνει το ποια συσκευή θα προσαρτηθεί, και το /cdrom δηλώνει το που θα προσαρτηθεί. Πριν αφαιρέστε κάποια δισκέτα, CD ROM, ή κάποια άλλη αφαιρούμενη συσκευή, η οποία είναι προσαρτημένη στο σύστημα, θα πρέπει να την αφαιρέσετε από το σύστημα κάνοντας χρήση της εντολή umount. Εάν ρωτήσετε γιατί λείπει ένα n από την εντολή, να ξέρετε ότι δεν έχουμε ιδέα για το που πήγε! Μπορείτε να δηλώσετε είτε τη συσκευή είτε τη διαδρομή όπου η συσκευή έχει προσαρτηθεί προκειμένου να την αφαιρέσετε από το σύστημα σας. Για παράδειγμα, εάν θέλουμε να αφαιρέσουμε το CD ROM από το προηγούμενο παράδειγμα, τότε πρέπει να κάνουμε το εξής: # umount /dev/cdrom # umount /cdrom 9.5 NFS Mounts Τα αρχικά NFS έρχονται από το Network File System. Δεν είναι ένα πραγματικό σύστημα αρχείων, αλλά μπορεί να χρησιμοποιηθεί ώστε να προσθέσει καταλόγους σε ένα υπάρχων σύστημα αρχείων. Μεγάλες συνήθως τοποθεσίες που κάνουν χρήση του Unix, θέλουν να μοιράζονται τα ίδια προγράμματα και τους φακέλους των χρηστών (home directories). Το πρόβλημα του να αντιγράφεις το κάθε τι στο κάθε μηχάνημα λύνεται με το NFS. Μπορούμε να κάνουμε χρήση του NFS για να μοιράσουμε όλες τους φακέλους χρηστών σε όλους τους σταθμούς εργασίας. Οι σταθμοί εργασίας στη συνέχεια προσαρτίζουν στο σύστημα τους τους κοινόχρηστους φακέλους μέσω του NFS και εμφανίζονται σαν να είναι κανονικό κομμάτι του συστήματος. Η ενότητα και οι σελίδες man για τα exports(5), nfsd(8) και mountd(8) παρέχουν αρκετά περισσότερες πληροφορίες.

94 Κεφάλαιο 10 Διαχείριση Αρχείων και Καταλόγων Στόχος του Linux να είναι όσο πιο κοντά στο Unix γίνεται. Παραδοσιακά, τα Unix λειτουργικά συστήματα ήταν προσανατολισμένα στη γραμμή εντολών. Έχουμε γραφικό περιβάλλον στο Slackware, αλλά η γραμμή εντολών παραμένει το βασικό επίπεδο ελέγχου του συστήματος. Κατά συνέπεια είναι σημαντικό να κατανοήσετε κάποιες από τις βασικές εντολές διαχείρισης αρχείων. Οι ακόλουθες ενότητες εξηγούν τις συνηθισμένες εντολές διαχείρισης αρχείων και παρέχουν παραδείγματα χρήσης τους. Υπάρχουν πολλές ακόμα εντολές, αλλά αυτές θα σας βοηθήσουν να ξεκινήσετε. Επίσης, οι εντολές περιγράφονται σύνοπτικά εδώ. Θα βρείτε περισσότερες λεπτομέρειες στη συνοδευτική σελίδα man κάθε εντολής Πλοήγηση: ls, cd και pwd ls Η εντολή αυτή εμφανίζει τα αρχεία ενός καταλόγου. Οι χρήστες Windows και DOS θα προσέξουν την ομοιότητά της με την εντολή dir. Από μόνη της, η ls(1) θα απεικονίσει τα αρχεία του τρέχοντος καταλόγου. Για να δείτε τι υπάρχει στον μητρικό κατάλογο, θα μπορούσατε να δώσετε τις ακόλουθες εντολές: % cd / % ls bin cdr dev home lost+found proc sbin tmp var boot cdrom etc lib mnt root suncd usr vmlinuz Το πρόβλημα που πολλοί άνθρωποι έχουν με αυτή την έξοδο είναι ότι δεν μπορεί να διακρίνει κανείς εύκολα τι είναι κατάλογος και τι αρχείο. Μερικοί χρήστες προτιμούν η ls να προσθέσει ένα αναγνωριστικό τύπου σε κάθε λίστα, όπως εδώ: % ls -FC bin/ cdr/ dev/ home/ lost+found/ proc/ sbin/ tmp/ var/ boot/ cdrom/ etc/ lib/ mnt/ root/ suncd/ usr/ vmlinuz Το όνομα ενός καταλόγου ακολουθείται από μια κάθετο, το όνομα ενός εκτελέσιμου ακολουθείται από έναν αστερίσκο και ούτο καθ'εξής. Η ls μπορεί επίσης να χρησιμοποιηθεί για να επιστρέψει και άλλα στατιστικά για τα αρχεία. Για παράδειγμα, για να δείτε τις ημερομηνίες δημιουργίας, τους ιδιοκτήτες και τις άδειες, θα χρησιμοποιούσατε μια εκτενή λίστα: % ls -l drwxr-xr-x 2 root bin 4096 May 7 09:11 bin/ drwxr-xr-x 2 root root 4096 Feb 24 03:55 boot/ drwxr-xr-x 2 root root 4096 Feb 18 01:10 cdr/ drwxr-xr-x 14 root root 6144 Oct 23 18:37 cdrom/ drwxr-xr-x 4 root root Mar 5 18:01 dev/ drwxr-xr-x 10 root root 4096 Mar 8 03:32 etc/ drwxr-xr-x 8 root root 4096 Mar 8 03:31 home/ drwxr-xr-x 3 root root 4096 Jan 23 21:29 lib/ drwxr-xr-x 2 root root Nov 1 08:53 lost+found/ drwxr-xr-x 2 root root 4096 Oct 6 12:47 mnt/ dr-xr-xr-x 62 root root 0 Mar 4 15:32 proc/ drwxr-x--x 12 root root 4096 Feb 26 02:06 root/ drwxr-xr-x 2 root bin 4096 Feb 17 02:02 sbin/ drwxr-xr-x 5 root root 2048 Oct 25 10:51 suncd/ drwxrwxrwt 4 root root Mar 7 20:42 tmp/

95 drwxr-xr-x 21 root root 4096 Aug 24 03:04 usr/ drwxr-xr-x 18 root root 4096 Mar 8 03:32 var/ Ας υποθέσουμε ότι θέλετε να δείτε τα κρυφά αρχεία του τρέχοντος καταλόγου. Αυτή η εντολή θα κάνει ακριβώς αυτό: % ls -a. bin cdrom home mnt sbin usr.. boot dev lib proc suncd var.pwrchute_tmp cdr etc lost+found root tmp vmlinuz Τα αρχεία που ξεκινούν με τελεία (τα αποκαλούμενα dot files) δεν εμφανίζονται όταν τρέχετε την ls. Θα τα δείτε μόνο περνώντας την -a παράμετρο. Υπάρχουν πολλές ακόμα επιλογές και μπορείτε να τις βρείτε στην σελίδα man. Μην ξεχνάτε ότι μπορείτε να συνδυάσετε τις παραμέτρους που περνάτε στην ls cd Η εντολή cd χρησιμοποιείται για να αλλάξετε τον ενεργό κατάλογο. Απλά πληκτρολογείτε cd ακολουθούμενο από το μονοπάτι στο οποίο θέλετε να μεταβείτε. Εδώ μερικά παραδείγματα: darkstar:~$ cd /bin darkstar:/bin$ cd usr bash: cd: usr: No such file or directory darkstar:/bin$ cd /usr darkstar:/usr$ ls bin darkstar:/usr$ cd bin darkstar:/usr/bin$ Προσέξτε ότι χωρίς την αρχική κάθετο, προσπαθεί να μεταβεί σε έναν κατάλογο μέσα στον ενεργό. Επίσης εκτελώντας την cd χωρίς παραμέτρους θα μεταβείτε στον προσωπικό κατάλογο (home). Η εντολή cd δεν είναι σαν τις υπόλοιπες. Είναι ενσωματωμένη στο κέλυφος εντολή. Στις ενσωματωμένες στο κέλυφος εντολές αναφέρεται η ενότητα Αυτό ίσως δεν φαίνεται αμέσως να έχει νόημα. Βασικά σημαίνει ότι δεν υπάρχει σελίδα man για αυτή την εντολή. Αντί για αυτή, πρέπει να χρησιμοποιήσετε τη βοήθεια του κέλυφους. Ως εξής: % help cd Θα εμφανίσει τις επιλογές για τη cd και πως να τις χρησιμοποιήσετε pwd Η pwd εντολή χρησιμοποιείται για να δείξει την τρέχουσα θέση σας. Για να τη χρησιμοποιήσετε απλά πληκτρολογήστε pwd. Για παράδειγμα: % cd /bin % pwd /bin % cd /usr % cd bin % pwd /usr/bin

96 10.2 Σελιδοποίηση: more, less και most more Η more(1) είναι αυτό που αποκαλούμε εργαλείο σελιδοποίησης. Συχνά η έξοδος μιας εντολής είναι υπερβολικά μεγάλη για να χωρέσει σε μια οθόνη. Οι μεμονωμένες εντολές δεν ξέρουν πως να χωρέσουν την έξοδο σε χωριστές οθόνες. Αφήνουν τη δουλειά στο εργαλείο σελιδοποίησης. Η εντολή more σπάει την έξοδο σε μεμονωμένες οθόνες και περιμένει να πατήσετε την space bar πριν συνεχίσει στην επόμενη οθόνη. Πατώντας το enter θα προχωρήσει η έξοδος κατά μια γραμμή. Εδώ ένα καλό παράδειγμα: % cd /usr/bin % ls -l Aυτό λογικά θα κυλά για λίγο. Για να σπάσετε την έξοδο σε σελίδες, απλά προωθήστε την έξοδο στη more: % ls -l more Αυτός είναι ο χαρακτήρας ανακατεύθυνσης εξόδου (pipe, shift backslash). Η ανακατεύθυνση συνοπτικά σημαίνει πάρε την έξοδο της ls και δώσε την ως είσοδο στη more. Μπορείτε να ανακατευθύνετε πρακτικά οτιδήποτε στη more, όχι μόνο την ls. Η ανακατεύθυνση καλύπτεται επίσης στην ενότητα less Η εντολή more είναι αρκετά πρακτική, αλλά συχνά θα ανακαλύψετε ότι προσπεράσατε τη σελίδα που θέλατε. Με την more δεν υπάρχει τρόπος να επιστρέψετε. Η εντολή less(1) παρέχει αυτή τη λειτουργία. Χρησιμοποιείται με τον ίδιο τρόπο όπως η more, άρα τα προηγούμενα παραδείγματα ταιριάζουν και εδώ. Συνεπώς η less είναι περισσότερα από τη more. Ο Joost Kremens το θέτει ως εξής: H less είναι περισσοτερα, αλλά περισσότερο more από τη more, άρα η more είναι λιγότερο less, άρα χρησιμοποιήστε περισσότερο less αν θέλετε λιγότερο more most Εκεί που τελειώνουν οι more και less αναλαμβάνει η most(1). Αν η less είναι περισσότερα από την more, η most είναι περισσότερα από τη less. Ενώ οι άλλοι σελιδοποιητές μπορούν να απεικονίσουν ένα αρχείο κάθε φορά η most είναι ικανή να απεικονίσει οσαδήποτε αρχεία, αρκεί το παράθυρο κάθε αρχείου να είναι τουλάχιστον 2 γραμμές. Η most έχει πολλές επιλογές, δείτε τη σελίδα man για λεπτομέρειες Απλή έξοδος: cat και echo cat H cat(1) είναι συντομογραφία για την "συνένωση" (concatenate). Αρχικά σχεδιάστηκε για να συγχωνεύει αρχεία κειμένου σε ένα, αλλά μπορεί να χρησιμοποιηθεί για πολλούς ακόμη σκοπούς. Για να συγχωνεύσετε δύο ή περισσότερα αρχεία σε ένα, απλά δώστε τα αρχεία μετά την εντολή cat και ανακατευθύνετε τη νέα έξοδο σε ένα αρχείο. H cat δουλεύει με την βασική είσοδο και έξοδο (standard input and output), άρα θα πρέπει να χρησιμοποιήσετε τους χαρακτήρες ανακατεύθυνσης του κέλυφους. Για παράδειγμα: % cat file1 file2 file3 > bigfile Αυτή η εντολή παίρνει τα περιεχόμενα των file1, file2, file3 και τα συνενώνει. Η νέα έξοδος προωθείται στην βασική έξοδο. Κανείς μπορεί να χρησιμοποιήσει την cat για να απεικονίσει αρχεία. Πολλοί χρησιμοποιούν την cat μεσω των εντολών more και less, ώς εξής:

97 % cat file1 more Αυτό θα απεικονίσει το file1 και θα το ανακατευθύνει μέσω της εντολής more ώστε να δείτε μια οθόνη κάθε φορά. Μια άλλη κοινή χρήση της cat είναι η αντιγραφή αρχείων. Μπορείτε να αντιγράψετε οποιοδήποτε αρχείο με την cat, ώς εξής: % cat /bin/bash > ~/mybash Το πρόγραμμα /bin/bash αντιγράφεται στον προσωπικό κατάλογο και ονομάζεται mybash. Η cat έχει πολλές χρήσεις και αυτές που εξετάζονται εδώ είναι μόνο λίγες. Καθώς η cat χρησιμοποιεί εκτενώς τη βασική είσοδο και έξοδο, είναι ιδανική για χρήση σε σενάρια (scripts) του κελύφους ή ως μέρος άλλων σύνθετων εντολών echo Η εντολή echo(1) απεικονίζει το μήνυμα που καθορίζεται στην οθόνη. Εσείς καθορίζετε τη συμβολοσειρά που θα απεικονιστεί μετά την εντολή echo. Η προεπιλογή της echo είναι να απεικονίσει τη συμβολοσειρά και να τυπώσει έναν χαρακτήρα τέλους γραμμής μετά από αυτή. Μπορείτε να περάσετε την επιλογή -n για να αποφύγετε την εκτύπωση της νέας γραμμής. Η επιλογή -e θα οδηγήσει την echo να ψάξει για χαρακτήρες διαφυγής στη συμβολοσειρά και να τους εκτελέσει Δημιουργία: touch και mkdir touch Η touch(1) χρησιμοποιείται για να αλλάξει τη χρονική σφραγίδα (timestamp) ενός αρχείου. Μπορείτε να αλλάξετε τις χρονικές σφραγίδες πρόσβασης και τροποποίησης με αυτή την εντολή. Αν το αρχείο που καθορίζεται δεν υπάρχει η touch θα δημιουργήσει ένα αρχείο μηδενικού μήκους με το όνομα που καθορίζεται. Για να σφραγίσετε ένα αρχείο με την τρέχουσα ώρα του συστήματος θα δίνατε αυτη την εντολή: % ls -al file1 -rw-r--r-- 1 root root 9779 Feb 7 21:41 file1 % touch file1 % ls -al file1 -rw-r--r-- 1 root root 9779 Feb 8 09:17 file1 Υπάρχουν αρκετές επιλογές για την touch και συμπεριλαμβάνονται επιλογές για τη χρονική σφραγίδα που θα τροποποιηθεί, ο χρόνος που θα χρησιμοποιηθεί και άλλα. H σελίδα man τις περιγράφει αναλυτικά mkdir Η mkdir(1) θα δημιουργήσει έναν καινούριο κατάλογο. Απλά καθορίζετε τον κατάλογο που θα δημιουργηθεί όταν τρέχετε τη mkdir. Το παράδειγμα δημιουργεί τον κατάλογο hejaz στον ενεργό κατάλογο: % mkdir hejaz Μπορείτε επίσης να προσδιορίσετε μονοπάτι, ως εξής: % mkdir /usr/local/hejaz Η επιλογή -p λέει στη mkdir να δημιουργήσει οποιονδήποτε μητρικό κατάλογο. Το παράδειγμα που προηγήθηκε θα αποτύχει αν δεν υπάρχει το /usr/local. Η επιλογή -p θα δημιουργήσει τα /usr/local και /usr/local/hejaz: % mkdir -p /usr/local/hejaz

98 10.5 Αντιγραφή και Μετακίνηση cp Η cp(1) αντιγράφει αρχεία. Οι χρήστες DOS θα παρατηρήσουν ότι είναι παρόμοια με την εντολή copy. Υπάρχουν πολλές επιλογές για τη cp, άρα θα πρέπει να ρίξετε μια ματιά στη σελίδα man πριν τη χρησιμοποιήσετε. Μια κοινή χρήση της use είναι να αντιγράψει ένα αρχείο από μια τοποθεσία σε μια άλλη. Για παράδειγμα: % cp hejaz /tmp Αυτό αντιγράφει το αρχείο hejaz από τον ενεργό κατάλογο στον κατάλογο /tmp. Πολλοί χρήστες προτιμούν να διατηρήσουν τις χρονικές σφραγίδες, όπως σε αυτό το παράδειγμα: % cp -a hejaz /tmp Αυτό σας διαβεβαιώνει ότι οι χρονικές σφραγίδες δεν μεταβάλλονται με την αντιγραφή. Για να αντιγράψετε αναδρομικά τα περιεχόμενα ενός καταλόγου σε έναν άλλο κατάλογο, θα δίνατε αυτή την εντολή: % cp -R mydir /tmp Αυτό θα αντιγράψει τον κατάλογο mydir στον κατάλογο /tmp. Επίσης αν θέλετε να αντιγράψετε έναν κατάλογο ή ένα αρχείο, να διατηρήσετε τις παλιές του άδειες και χρονικές σφραγίδες και να το διατηρήσετε ανέπαφο χρησιμοποιήστε τη cp -p. % ls -l file -rw-r--r-- 1 root vlad 4 Jan 1 15:27 file % cp -p file /tmp % ls -l /tmp/file -rw-r--r-- 1 root vlad 4 Jan 1 15:27 file Η cp έχει πολλές ακόμα επιλογές που περιγράφονται αναλυτικά στη σελίδα man mv Η mv(1) μετακινεί αρχεία από μια θέση σε μια άλλη. Ακούγεται απλό και είναι. % mv oldfile /tmp/newfile Η mv έχει κάποιες χρήσιμες παραμέτρους από τη γραμμή εντολών που περιγράφονται αναλυτικά στη σελίδα man. Στην πράξη η mv σχεδόν ποτέ δεν χρησιμοποιείται με παραμέτρους γραμμής εντολών Διαγραφή: rm και rmdir rm Η rm διαγράφει αρχεία και δέντρα καταλόγων. Οι χρήστες DOS θα προσέξουν πως είναι παρόμοια στις εντολές del και deltree. Η rm μπορεί να είναι πολύ επικίνδυνη αν δεν είστε προσεκτικοί. Αν και είναι κάποιες φορές δυνατή η επανάκτηση ενός αρχείου που διαγράφηκε πρόσφατα, μπορεί να είναι πολύπλοκο (και πιθανόν να έχει κόστος) και ξεπερνάει τους στόχους αυτού του βιβλίου. Για να διαγράψετε ένα μεμονωμένο αρχείο, καθορίστε το όνομά του όταν τρέχετε την rm: % rm file1 Αν το αρχείο δεν έχει άδεια εγγραφής ίσως σας επιστραφεί ένα μήνυμα άρνησης πρόσβασης. Για να εξαναγκάσετε τη διαγραφή του αρχείου σε κάθε περίπτωση, περάστε την επιλογή -f, ως εξής: % rm -f file1

99 Για να διαγράψετε έναν ολόκληρο κατάλογο, χρησιμοποιήτε τις επιλογές -r και -f μαζί. Αυτό είναι ένα καλό παράδειγμα διαγραφής όλων των περιεχομένων του σκληρού σας δίσκου. Σίγουρα δεν θέλετε να το κάνετε αυτό. Αλλά παρ'όλα αυτά ακολουθεί η εντολή: # rm -rf / Να είστε πολύ προσεκτικοί με την rm: μπορεί να αυτοτραυματιστείτε (you can shoot yourself in the foot). Υπάρχουν αρκετές επιλογές από τη γραμμή εντολών που περιγράφονται αναλυτικά στη σελίδα man rmdir Η rmdir(1) διαγράφει καταλόγους από το σύστημα αρχείων. Ο κατάλογος πρέπει να είναι άδειος πριν τη διαγραφή. Η σύνταξη είναι απλή: % rmdir <directory> Αυτό το παράδειγμα θα διαγράψει τον κατάλογο hejaz στον ενεργό κατάλογο: % rmdir hejaz Αν αυτός ο κατάλογος δεν υπάρχει η rmdir θα σας το πει. Μπορείτε επίσης να προσδιορίσετε πλήρες μονοπάτι του καταλόγου προς διαγραφή, όπως φαίνεται στο παράδειγμα: % rmdir /tmp/hejaz Το παράδειγμα θα προσπαθίσει να διαγράψει τον κατάλογο hejaz μέσα στον κατάλογο /tmp. Μπορείτε επίσης να διαγράψετε έναν κατάλογο και όλους τους μητρικούς του περνώντας την επιλογή -p. % rmdir -p /tmp/hejaz Αυτό πρώτα θα διαγράψει τον κατάλογο hejaz στον /tmp. Αν αυτό πετύχει, θα προσπαθήσει να διαγράψει το /tmp. Η rmdir θα συνεχίσει μέχρι να συμβεί ένα λάθος ή να διαγραφεί ολόκληρο το δέντρο που καθορίζεται Συνδέοντας αρχεία με το ln Η ln(1) χρησιμοποιείται για τη δημιουργία συνδέσμων μεταξύ αρχείων. Οι σύνδεσμοι μπορεί να είναι είτε σκληροί (hard links) ή συμβολικοί (soft/symbolic links). Οι διαφορές μεταξύ των δυο ειδών έχουν συζητηθεί στην ενότητα 9.3. Αν θέλατε να δημιουργήσετε συμβολικό σύνδεσμο στον κατάλογο /var/media/mp3 και να τον τοποθετήσετε στον προσωπικό σας κατάλογο, θα κάνατε αυτό: % ln -s /var/media/mp3 ~/mp3 Η επιλογή -s λέει στην ln να δημιουργήσει συμβολικό σύνδεσμο. Η επόμενη επιλογή είναι ο προορισμός του συνδέσμου και η τελευταία επιλογή είναι το όνομά του. Σε αυτή την περίπτωση, απλά θα δημιουργήσει ένα αρχείο με όνομα mp3 στον προσωπικό σας κατάλογο που δείχνει στο /var/media/mp3. Μπορείτε να ονομάσετε τον ίδιο τον σύνδεσμο όπως θέλετε απλά αλλάζοντας την τελευταία επιλογή. Η δημιουργία σκληρού συνδέσμου είναι εξίσου απλή. Αυτό που πρέπει να κάνετε είναι να παρακάμψετε την επιλογή -s. Ωστόσο οι σκληροί σύνδεσμοι κανονικά δεν πρέπει να αναφέρονται σε καταλόγους ή να γεφυρώνουν συστήματα καταλόγων. Για να δημιουργήσετε έναν σκληρό σύνδεσμο /usr/bin/ προς το /usr/bin/mutt, απλά πληκτρολογήστε τα ακόλουθα: % ln -s /var/media/mp3 ~/mp3

100 Κεφάλαιο 11 Διαχείριση Διεργασιών Κάθε πρόγραμμα που τρέχει λέγεται διεργασία. Οι διεργασίες ποικίλουν από πράγματα σαν το X παραθυρικό σύστημα εως προγράμματα συστήματος (δαίμονες) που ξεκινούν με την εκκίνηση το υπολογιστή. Κάθε διεργασία τρέχει από έναν συγκεκριμένο χρήστη. Οι διεργασίες που ξεκινούν κατά την εκκίνηση συνήθως τρέχουν ως root ή nobody. Οι διεργασίες που ξεκινάτε τρέχουν ως εσείς. Οι διεργασίες που ξεκινούν από άλλους χρήστες τρέχουν ως εκείνοι οι χρήστες. Έχετε τον έλεγχο των εργασιών που ξεκινάτε. Επιπλέον, ο root έχει τον έλεγχο όλων των διεργασιών στο σύστημα, συμπεριλαμβάνοντας αυτές που έχουν ξεκινήσει άλλοι χρήστες. Μπορείτε να ελέγξετε και να παρακολουθήσετε τις διεργασίες μέσω αρκετών προγραμμάτων και μερικών εντολών του κελύφους Μεταφορά στο Παρασκήνιο Προγράμματα που ξεκινούν από τη γραμμή εντολών ξεκινούν στο προσκήνιο (foreground). Αυτό σας επιτρέπει να βλέπετε την έξοδο του προγράμματος και να αλληλεπιδράτε με αυτό. Ωστόσο υπάρχουν αρκετές περιπτώσεις που θα θέλατε το πρόγραμμα να μην καταλαμβάνει το τερματικό. Τότε λέμε ότι το πρόγραμμα τρέχει το παρασκήνιο (background) και υπάρχουν αρκετοί τρόποι να πραγματοποιηθεί. Ο πρώτος τρόπος να στείλετε μια διεργασία στο παρασκήνιο είναι η προσθήκη του συμβόλου & στη γραμμή εντολών όταν ξεκινάτε το πρόγραμμα. Για παράδειγμα, ας υποθέσουμε ότι θέλετε ο αναπαραγωγέας mp3 amp να παίξει έναν κατάλογο γεμάτο με mp3, αλλά θα θέλατε να κάνετε κάτι άλλο στο ίδιο τερματικό. Η ακόλουθη εντολή θα ξεκινήσει το amp στο παρασκήνιο: % amp *.mp3 & Το πρόγραμμα θα τρέξει κανονικά και θα σας επιστραφεί η γραμμή εντολών. Ο άλλος τρόπος να στείλετε μια διεργασία στο παρασκήνιο είναι ενώ αυτή τρέχει. Αρχικά ξεκινήστε το πρόγραμμα. Ενώ αυτό τρέχει, πληκτρολογήστε Control+z. Αυτό παρεμποδίζει (suspend) τη διεργασία. Μια παρεμποδιζόμενη διεργασία βασικά κάνει παύση. Προσωρινά σταματά να τρέχει, αλλά μπορεί να ξαναξεκινήσει οποιαδήποτε στιγμή. Αφού παρεμποδίσετε μια διεργασία επιστρέφετε στη γραμμή εντολών. Μπορείτε να μεταφέρετε τη διεργασία στο παρασκήνιο πληκτρολογώντας: % bg Τώρα η παρεμποδιζόμενη διεργασία τρέχει στο παρασκήνιο Μεταφορά στο Προσκήνιο Αν θέλετε να αλληλεπιδράσετε με μια διεργασία στο παρασκήνιο μπορείτε να την επαναφέρετε στο προσκήνιο. Αν έχετε μόνο μια διεργασία στο παρασκήνιο, μπορείτε να την επαναφέρετε πληκτρολογώντας: % fg Αν το πρόγραμμα δεν έχει τελειώσει, το πρόγραμμα θα πάρει τον έλεγχο του τερματικού και δεν θα επιστρέψετε σε γραμμή εντολών. Μερικές φορές το πρόγραμμα θα ολοκληρωθεί ενώ βρίσκεται στο παρασκήνιο. Σε αυτή την περίπτωση θα πάρετε ένα μήνυμα σαν αυτό: [1]+ Done /bin/ls $LS_OPTIONS Αυτό σας λέει ότι η διεργασία στο παρασκήνιο (σε αυτή την περίπτωση η ls, όχι ιδιαίτερα ενδιαφέρον) έχει ολοκληρωθεί. Είναι πιθανό να έχετε περισσότερες από μια διεργασίες στο παρασκήνιο ταυτόχρονα. Όταν συμβαίνει αυτό, πρέπει να ξέρετε πια διεργασία θέλετε να φέρετε στο προσκήνιο. Πληκτρολογώντας απλά fg θα επαναφέρετε την διεργασία που μεταφέρθηκε τελευταία στο παρασκήνιο. Τι συμβαίνει αν έχετε μια ολόκληρη λίστα διεργασιών στο παρασκήνιο; Ευτυχώς ο bash περιλαμβάνει μια εντολή εμφάνισης όλων των διεργασιών. Λέγεται jobs και δίνει έξοδο ως εξής:

101 % jobs [1] Stopped vim [2]- Stopped amp [3]+ Stopped man ps Αυτό εμφανίζει όλες τις διεργασίες στο παρασκήνιο. Όπως μπορείτε να δείτε όλες έχουν σταματήσει. Αυτό σημαίνει ότι οι διεργασίες παρεμποδίζονται. Ο αριθμός είναι ένα είδος αναγνωριστικού (ID) για όλες τις διεργασίες στο παρασκήνιο. Το αναγνωριστικό με το συν δίπλα του (man ps) είναι η διεργασία που θα επιστρέψει στο προσκήνιο αν πληκτρολογήσετε fg. Αν θέλατε να επαναφέρετε τον vim στο προσκήνιο, θα πληκτρολογούσατε: % fg 1 και ο vim θα πηδούσε πίσω στην κονσόλα. Η μεταφορά διεργασιών στο παρασκήνιο μπορεί να είναι πολύ χρήσιμη αν έχετε μόνο ένα τερματικό ανοικτό μέσω μιας σύνδεσης dialup. Μπορείτε να έχετε αρκετά προγράμματα να τρέχον σε αυτό το τερματικό και να εναλλάσσεστε περιοδικά μεταξύ αυτών ps Άρα τώρα ξέρετε πως να μεταβείτε μεταξύ αρκετών διεργασιών που ξεκινήσατε από τη γραμμή εντολών. Και επίσης ξέρετε ότι τρέχουν πολλές διεργασίες συνεχώς. Άρα πως εμφανίζονται όλα αυτά τα προγράμματα; Λοιπόν, χρησιμοποιείτε την εντολή ps(1). Αυτή η εντολή έχει πολλές επιλογές και εμείς θα καλύψουμε μόνο τις πιο σημαντικές εδώ. Για μια ολοκληρωμένη λίστα δείτε τη σελίδα man για την ps. Οι σελίδες man καλύπτονται σε βάθος στην ενότητα Απλά πληκτρολογώντας ps θα λάβετε μια λίστα των προγραμμάτων που τρέχουν στο τερματικό σας. Αυτό περιλαμβάνει τις διεργασίες στο προσκήνιο (οι οποίες περιλαμβάνουν το κέλυφος που χρησιμοποιείτε και φυσικά την ίδια την ps). Επίσης εμφανίζονται οι διεργασίες που τρέχετε στο παρασκήνιο. Πολλές φορές, αυτό θα είναι μια πολύ σύντομη λίστα: % ps PID TTY TIME CMD 7923 ttyp0 00:00:00 bash 8059 ttyp0 00:00:00 ps Αν και αυτό δεν είναι πολλές διεργασίες, οι πληροφορίες είναι πολύ τυπικές. Θα λάβετε τις ίδιες στήλες χρησιμοποιώντας την κανονική ps άσχετα από τον αριθμό των διεργασιών που τρέχουν. Άρα τι σημαίνουν όλα αυτά; Λοιπόν, PID είναι ο αναγνωριστικό της διεργασίας (process ID). Οι διεργασίες που τρέχουν λαμβάνουν ένα μοναδικό αναγνωριστικό που από το 1 ως το Σε κάθε διεργασία δίνεται το επόμενο ελεύθερο αναγνωριστικό. Όταν μια διεργασία τερματιστεί (ή σκοτωθεί, όπως θα δείτε στο επόμενο κεφάλαιο) επιστρέφει το PID της. Όταν φτάσουμε στο μέγιστο PID, το επόμενο ελεύθερο PID θα αντιστοιχεί κυκλικά στο χαμηλότερο ελεύθερο. Η στήλη TTY δείχνει σε πιο τερματικό τρέχει η διεργασία. Μια απλή ps θα εμφανίσει μόνο τα προγράμματα που τρέχουν στο τρέχον τερματικό, άρα όλες οι διεργασίες δίνουν την ίδια πληροφορία στη στήλη TTY. Όπως μπορείτε να δείτε, και οι δύο διεργασίες στη λίστα τρέχουν στο ttyp0. Αυτό σημαίνει ότι τρέχουν είτε από μακρυά ή από ένα X τερματικό κάποιου είδους. Η στήλη TIME μας έδειξε για πόσο χρόνο της CPU έχει τρέξει η διεργασία. Αυτό είναι διαφορετικό από τον πραγματικό χρόνο που τρέχει η διεργασία. Θυμηθείτε ότι το Linux είναι ένα πολυδιεργαστικό (multitasking) λειτουργικό σύστημα. Υπάρχουν πολλές διεργασίες που τρέχουν συνεχώς, και αυτές οι διεργασίες λαμβάνουν ένα μικρό τμήμα του χρόνου του επεξεργαστή. Άρα η στήλη TIME πρέπει να δείχνει χρόνο πολύ λιγότερο από αυτόν που πραγματικά τρέχει. Αν δείτε περισσότερο από μερικά λεπτά στη στήλη TIME σημαίνει ότι κάτι πάει στραβά. Τέλος, η στήλη CMD δείχνει τι πραγματικά είναι το πρόγραμμα. Δείχνει μόνο το βασικό όνομα του προγράμματος, όχι τις τυχόν παραμέτρους γραμμής εντολών ή παρόμοιες πληροφορίες. Για να λάβετε αυτές τις πληροφορίες θα χρειαστεί να χρησιμοποιήσετε μια από τις πολλές επιλογές της ps. Θα το συζητήσουμε σύντομα.

102 Μπορείτε να λάβετε μια ολοκληρωμένη λίστα των διεργασιών που τρέχουν στο σύστημά σας χρησιμοποιώντας το σωστό συνδυασμό επιλογών. Αυτό πιθανότατα οδηγήσει σε μια μεγάλου μήκους λίστα διεργασιών (πενήντα πέντε στον φορητό μου ενώ γράφω αυτή την πρόταση) και κατά συνέπεια θα περικόψω την έξοδο: % ps -ax PID TTY STAT TIME COMMAND 1? S 0:03 init [3] 2? SW 0:13 [kflushd] 3? SW 0:14 [kupdate] 4? SW 0:00 [kpiod] 5? SW 0:17 [kswapd] 11? S 0:00 /sbin/kerneld 30? SW 0:01 [cardmgr] 50? S 0:00 /sbin/rpc.portmap 54? S 0:00 /usr/sbin/syslogd 57? S 0:00 /usr/sbin/klogd -c 3 59? S 0:00 /usr/sbin/inetd 61? S 0:04 /usr/local/sbin/sshd 63? S 0:00 /usr/sbin/rpc.mountd 65? S 0:00 /usr/sbin/rpc.nfsd 67? S 0:00 /usr/sbin/crond -l10 69? S 0:00 /usr/sbin/atd -b 15 -l 1 77? S 0:00 /usr/sbin/apmd 79? S 0:01 gpm -m /dev/mouse -t ps2 94? S 0:00 /usr/sbin/automount /auto file /etc/auto.misc 106 tty1 S 0:08 -bash 108 tty3 SW 0:00 [agetty] 109 tty4 SW 0:00 [agetty] 110 tty5 SW 0:00 [agetty] 111 tty6 SW 0:00 [agetty] [output cut] Οι περισσότερες από αυτές τις διεργασίες ξεκινούν κατά τον χρόνο εκκίνησης στα περισσότερα συστήματα. Έχω κάνει μερικές τροποποιήσεις στο σύστημά μου, άρα η δικιά σας κατανάλωση καυσίμων (mileage) πιθανότατα θα διαφέρει. Ωστόσο, θα δείτε τις περισσότερες από αυτές τις διεργασίες και στο δικό σας σύστημα. Όπως μπορείτε να δείτε, αυτές οι επιλογές εμφανίζουν τις παραμέτρους γραμμής εντολών των διεργασιών που τρέχουν. Πρόσφατα, ένα τρωτό σημείο του πυρήνα στο ptrace διευκόλυνε μια διόρθωση που δεν εμφανίζει τις παραμέτρους γραμμής εντολών για πολλές από τις διεργασίες που τρέχουν. Αυτές τώρα εμφανίζονται σε αγκύλες όπως οι διεργασίες με PID 108 ως 110. Επίσης φέρνει μερικές επιπλέον στήλες και επιπλέον ενδιαφέρουσα έξοδο. Πρώτα θα παρατηρήσετε ότι πολλές από αυτές τις διεργασίες εμφανίζονται να τρέχουν στο tty "?". Αυτές δεν είναι προσαρτημένες σε κανένα συγκεκριμένο τερματικό. Αυτό είναι πιο διαδεδομένο με τους δαίμονες, οι οποίοι είναι διεργασίες που δεν προσαρτώνται σε ένα συγκεκριμένο τερματικό. Συνηθισμένοι δαίμονες είναι οι sendmail, BIND, apache και NFS. Αυτοί τυπικά περιμένουν για κάποια αίτηση από έναν πελάτη (client) και του επιστρέφουν πληροφορίες κατ' αίτημα. Δεύτερον, υπάρχει μια νέα στήλη: STAT. Δείχνει την κατάσταση της διεργασίας. Το S αντιστοιχεί στο sleeping: η διεργασία περιμένει να συμβεί κάτι. Το Z αντιστοιχεί σε μια zombied διεργασία. Μια διεργασία zombied είναι μια της οποίας ο γονέας πέθανε, αφήνοντας πίσω τη διεργασία απόγονο. Αυτό δεν είναι καλό. To D αντιστοιχεί σε μια διεργασία που έχει εισέλθει σε uninterruptible sleep. Συχνά αυτές οι διεργασίες αρνούνται να πεθάνουν ακόμα και αν δεχθούν ένα SIGKILL. Μπορείτε να διαβάσετε περισσότερα για το SIGKILL αργότερα, στο επόμενο κεφάλαιο σχετικά με την kill. To W αντιστοιχεί στη σελιδοποίηση (paging). Μια νεκρή διεργασία εμφανίζεται με X. Μια διεργασία που εμφανίζεται με Τ είναι traced, ή σταματημένη. To R σημαίνει ότι η διεργασία μπορεί να τρέξει.

103 Αν θέλετε ακόμα περισσότερες πληροφορίες για τις διεργασίες που τρέχουν, δοκιμάστε αυτό: % ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root ? S Mar02 0:03 init [3] root ? SW Mar02 0:13 [kflushd] root ? SW Mar02 0:14 [kupdate] root ? SW Mar02 0:00 [kpiod] root ? SW Mar02 0:17 [kswapd] root ? S Mar02 0:00 /sbin/kerneld root ? SW Mar02 0:01 [cardmgr] bin ? S Mar02 0:00 /sbin/rpc.port root ? S Mar02 0:00 /usr/sbin/sysl root ? S Mar02 0:00 /usr/sbin/klog root ? S Mar02 0:00 /usr/sbin/inet root ? S Mar02 0:04 /usr/local/sbi root ? S Mar02 0:00 /usr/sbin/rpc. root ? S Mar02 0:00 /usr/sbin/rpc. root ? S Mar02 0:00 /usr/sbin/cron root ? S Mar02 0:00 /usr/sbin/apmd root ? S Mar02 0:01 gpm root ? S Mar02 0:00 /usr/sbin/auto chris tty1 S Mar02 0:08 -bash root tty3 SW Mar02 0:00 [agetty] root tty4 SW Mar02 0:00 [agetty] root tty5 SW Mar02 0:00 [agetty] root tty6 SW Mar02 0:00 [agetty] [output cut] Αυτό είναι πολλές πληροφορίες. Βασικά, προσθέτει πληροφορίες που περιλαμβάνουν τον χρήστη που ξεκίνησε τη διεργασία, πόσους από τους πόρους συστήματος χρησιμοποιεί η διεργασία (οι στήλες %CPU, %MEM, VSZ και RSS), και τη μέρα που ξεκίνησε η διεργασία. Προφανως, πρόκειται για πολλές πληροφορίες χρήσιμες για έναν διαχειριστή συστημάτων. Επίσης φέρνει ένα ακόμα σημείο στην επιφάνεια: οι πληροφορίες δεν χωρούν στα όρια της οθόνης και δεν μπορείτε να δείτε τα πάντα. Η επιλογή -w θα εξαναγκάσει την ps να διπλώσει τις μεγάλου μήκους γραμμές. Δεν είναι ιδιαίτερα όμορφο αλλά δουλεύει. Τώρα έχετε την πλήρη λίστα για κάθε διεργασία. Υπάρχουν ακόμα περισσότερες πληροφορίες που μπορείτε να απεικονίσετε για κάθε διεργασία. Ελέγξτε την πολύ εκτενή σελίδα man για την ps. Ωστόσο, οι επιλογές που εμφανίζονται παραπάνω είναι οι πιο δημοφιλείς και αυτές θα χρησιμοποιείτε πιο συχνά kill Περιστασιακά, τα προγράμματα δεν συμπεριφέρονται σωστά και θα πρέπει να τα επαναφέρετε σε τάξη (put them back in the line). Το πρόγραμμα για αυτού του τύπου τη διαχείριση λέγεται kill(1), και μπορεί να χρησιμοποιηθεί για τον έλεγχο διεργασιών με πολλούς τρόπους. Η προφανής χρήση της kill είναι να σκοτώσει μια διεργασία. Θα χρειαστεί να το κάνετε αυτό αν ένα πρόγραμμα έχει ξεφύγει και καταναλώνει πολλούς πόρους συστήματος, ή απλά σας ενοχλεί που τρέχει. Για να σκοτώσετε μια διεργασία, θα πρέπει να ξέρετε το PID ή το όνομά της. Για να λάβετε το PID χρησιμοποιήστε την εντολή ps όπως συζητήθηκε στην προηγούμενη ενότητα. Για παράδειγμα, για να σκοτώσετε τη διεργασία 4747 θα δίνατε την ακόλουθη εντολή: % kill 4747 Σημειώστε ότι πρέπει να είστε ο ιδιοκτήτης της διεργασίας προκειμένου να τη σκοτώσετε. Αυτό είναι ένα χαρακτηριστικό ασφαλείας. Αν σας επιτρεπόταν να σκοτώσετε διεργασίες που ξεκίνησαν άλλοι

104 χρήστες θα ήταν δυνατό να κάνετε ύποπτα πράγματα όλων των ειδών. Φυσικά ο root μπορεί να σκοτώσει οποιαδήποτε διεργασία στο σύστημα. Υπάρχει μια παραλλαγή της kill που λέγεται killall(1). Αυτό το πρόγραμμα κάνει ότι ακριβώς λέει: σκοτώνει όλες τις διεργασίες που τρέχουν και έχουν ένα συγκεκριμένο όνομα. Αν θα θέλατε να σκοτώσετε όλες τις διεργασίες του vim που τρέχουν, θα πληκτρολογούσατε την επόμενη εντολή: % killall vim Όλες οι διεργασίες του vim που έχετε να τρέχουν θα πεθάνουν. Αν το κάνατε αυτό ως root θα σκοτώνατε τις διεργασίες του vim που τρέχουν για όλους τους χρήστες. Αυτό φέρνει στην επιφάνεια έναν ενδιαφέροντα τρόπο να διώξετε οποιονδήποτε (και εσάς) από το σύστημα: # killall bash Μερικές φορές ένα κανονικό kill δεν αρκεί. Συγκεκριμένες διεργασίες δεν θα πεθάνουν με ένα kill. Θα χρειαστεί να χρησιμοποιήσετε ισχυρότερη μορφή. Αν αυτή η εκνευριστική διεργασία 4747 δεν απαντούσε στο αίτημα σας με την kill, θα μπορούσατε να κάνετε το ακόλουθο: % kill Αυτό σχεδόν σίγουρα θα αναγκάσει την διεργασία 4747 να πεθάνει. Μπορείτε να κάνετε το ίδιο πράγμα με την killall. Αυτό που κάνει είναι να στείλει διαφορετικό σήμα στη διεργασία. Μια κανονική kill στέλνει ένα σήμα SIGTERM (διακοπή) στη διεργασία, που τις λέει να τελειώσει ότι κάνει, να καθαρίσει και να τερματιστεί. Η kill -9 στέλνει ένα σήμα SIGKILL (θανατηφόρο) στη διεργασία, το οποίο ουσιαστικά την πετά. Στη διεργασία δεν επιτρέπεται να καθαρίσει και κάποιες φορές σκοτώνοντας κάτι με SIGKILL μπορούν να συμβούν άσχημα πράγματα όπως απώλεια δεδομένων. Υπάρχει μια ολόκληρη λίστα σημάτων στη διάθεσή σας. Μπορείτε να δείτε όλα τα σήματα πληκτρολογώντας το ακόλουθο: % kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR Ο αριθμός μπορεί να χρησιμοποιηθεί με την kill, ενώ το όνομα αφαιρώντας το αρχικό "SIG" μπορεί να χρησιμοποιηθεί με την killall. Εδώ ένα άλλο παράδειγμα: % killall -KILL vim Η τελευταία χρήση της kill είναι να ξαναξεκινήσει μια διεργασία. Στέλνοντας ένα SIGHUP θα εξαναγκάσει πολλές διεργασίες να διαβάσουν τα αρχεία ρυθμίσεών τους. Αυτό είναι ιδιαίτερα χρήσιμο για να πείτε στις διεργασίες συστήματος να ξαναδιαβάσουν τα αρχεία ρυθμίσεών τους μετά από επεξεργασία top Τέλος, υπάρχει μια εντολή που μπορείτε να χρησιμοποιήσετε για την εμφάνιση πληροφοριών σχετικά με τις διεργασίες συστήματος που ανανεώνονται. Αυτή η εντολή λέγεται top(1), και ξεκινάει ως εξής: % top Αυτό θα εμφανίσει μια ολόκληρη οθόνη με πληροφορίες για τις διεργασίας που τρέχουν στο

105 σύστημά, όπως επίσης και μερικές γενικές πληροφορίες για το σύστημα. Αυτό περιλαμβάνει το μέσο φορτίο (load average), τον αριθμό διεργασιών, την κατάσταση της CPU, πληροφορίες για την ελεύθερη μνήμη και πληροφορίες για τις διεργασίες συμπεριλαμβανομένων του PID, του χρήστη της προτεραιότητας, της χρήσης CPU και μνήμης, του χρόνου που τρέχει και του ονόματος προγράμματος. 6:47pm up 1 day, 18:01, 1 user, load average: 0.02, 0.07, processes: 59 sleeping, 2 running, 0 zombie, 0 stopped CPU states: 2.8% user, 3.1% system, 0.0% nice, 93.9% idle Mem: K av, K used, 8320K free, 51628K shrd, 78248K buff Swap: 32764K av, 136K used, 32628K free, 82600K cached PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 112 root M 2468 R :53 X 4947 david S :00 screenshot 3398 david M 3000 S :14 gimp 4946 root R :00 top 121 david S :37 wmsmpmon 115 david S :35 wmaker 4948 david S :00 xwd 1 root S :13 init 189 david S :16 licq 4734 david S :00 rxvt 2 root SW :08 kflushd 3 root SW :06 kupdate 4 root SW :00 kpiod 5 root SW :04 kswapd 31 root S :00 kerneld 51 root S :00 dhcpcd 53 bin S :00 rpc.portmap 57 root S :01 syslogd Λέγεται top διότι τα προγράμματα που χρησιμοποιούν πιο εντατικά τη CPU εμφανίζονται στην κορυφή. Μια ενδιαφέρουσα σημείωση είναι ότι η top εμφανίζεται στην κορυφή στα περισσότερα ανενεργά (και μερικά ενεργά) συστήματα λόγω του βαθμού που χρησιμοποιεί τη CPU. Ωστόσο, η top είναι αρκετά χρήσιμη για να δείξει πιο πρόγραμμα δεν συμπεριφέρεται σωστά και πρέπει να τερματιστεί. Αλλά ας υποθέσουμε ότι θέλετε μόνο μια λίστα των δικών σας διεργασιών, ή των διεργασιών κάποιου άλλου χρήστη. Οι διεργασίες που θέλετε να δείτε ίσως να μην είναι μεταξύ των προγραμμάτων με την εντονότερη χρήση της CPU. Η επιλογή -u σας επιτρέπει να καθορίσετε ένα όνομα χρήστη ή UID και να παρακολουθείτε μόνο τις διεργασίες που ανήκουν σε αυτό το UID. % top -u alan PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3622 alan m 6956 S :03.66 gnome-terminal 3739 alan R :00.06 top 3518 alan S :00.09 bash 3529 alan S :00.00 startx 3544 alan S :00.00 xinit 3548 alan S :00.30 gnome-session 3551 alan S :00.50 gconfd alan S :00.05 esd 3555 alan S :00.10 bonobo-activati 3557 alan S :00.05 gnome-smproxy 3559 alan S :00.31 gnome-settings alan S :00.28 xscreensaver

106 3568 alan S :02.28 metacity 3572 alan m 7992 S :01.58 gnome-panel 3574 alan m 8780 S :00.64 nautilus 3575 alan m 8780 S :00.00 nautilus 3576 alan m 8780 S :00.00 nautilus Όπως μπορείτε να δείτε, αυτή τη στιγμή τρέχω X, top, ένα gnome-terminal (στο οποίο γράφω αυτά) και πολλές άλλες διεργασίες σχετικές με το X που καταναλώνουν τον περισσότερο χρόνο της CPU για εμένα. Αυτός είναι ένας καλός τρόπος να δείτε πόσο σκληρά δουλεύουν οι χρήστες σας στο σύστημά σας. Η top επίσης υποστηρίζει την παρακολούθηση διεργασιών με βάση το PID τους, αγνοώντας τις αδρανείς (idle) ή zombied διεργασίες, και έχει πολλές ακόμα επιλογές. Ο καλύτερος τρόπος να μάθετε να χειρίζεστε τις επιλογές αυτές είναι η σελίδα man της top.

107 Κεφάλαιο 12: Τα Απαραίτητα για την Διαχείριση του Συστήματος Ώπα, ώπα ώπα... Ξέρω τι σκέφτεστε. Δεν είμαι Διαχειριστής Συστημάτων! Και ούτε θέλω να γίνω!. Το γεγονός είναι, ότι είστε διαχειριστής σε όσους υπολογιστές έχετε τον κωδικό του root. Αυτός μπορεί να είναι ο προσωπικός σας υπολογιστής με έναν ή δύο χρήστες, ή μπορεί να είναι ένας μεγάλος εξυπηρετητής με πολλές εκατοντάδες. Ανεξαρτήτως, πρέπει να γνωρίζετε πως να διαχειρίζεστε τους χρήστες, και πως να τερματίζετε το σύστημα με ασφάλεια. Αυτές οι εργασίες φαντάζουν απλές, αλλά έχουν μερικές ιδιοτροπίες που πρέπει να θυμάστε Χρήστες και Ομάδες Όπως αναφέρθηκε στο Κεφάλαιο 8, δεν πρέπει φυσιολογικά να χρησιμοποιείτε το σύστημά σας συνδεδεμένος σαν root. Σε αντίθεση, πρέπει να δημιουργήσετε έναν κανονικό λογαριασμό χρήστη για καθημερινή χρήση, και να χρησιμοποιείτε τον λογαριασμό root μόνο για εργασίες διαχείρισης. Για να δημιουργήσετε έναν χρήστη, μπορείτε είτε να χρησιμοποιήσετε εργαλεία που παρέχονται με το Slackware, είτε μπορείτε να επεξεργασθείτε τα αρχεία των κωδικών με το χέρι. Παρεχόμενα Αρχεία Διαταγών (Scripts) Ο πιο εύκολος τρόπος διαχείρισης χρηστών και ομάδων είναι με τα παρεχόμενα αρχεία διαταγών και προγράμματα. Το Slackware περιλαμβάνει τα προγράμματα adduser, userdel(8), chfn(1), chsh(1), και passwd(1) για την συναλλαγή με τους χρήστες. Οι εντολές groupadd(8), groupdel(8), και groupmod(8) είναι για τις συναλλαγές με τις ομάδες. Με εξαίρεση τα chfn, chsh, και passwd, γιατί αυτά τα προγράμματα μπορεί να τα εκτελέσει μόνο ο root, και γι' αυτό βρίσκονται μέσο στο /usr/sbin. Τα chfn, chsh, και passwd που μπορούν όλοι να εκτελέσουν βρίσκονται στο /usr/bin. Χρήστες μπορούν να προστεθούν με το πρόγραμμα adduser. Θα ξεκινήσουμε βλέποντας όλη την διαδικασία, βλέποντας όλες τις ερωτήσεις που θα γίνουν και μία μικρή περιγραφή από το τι σημαίνει η κάθε μία. Η προκαθορισμένη απάντηση είναι μέσα στις αγκύλες, και μπορεί να επιλεχθεί για σχεδόν όλες τις ερωτήσεις, εκτός και αν θέλετε να αλλάξετε κάτι. # adduser Login name for new user []: jellyd Αυτό είναι το όνομα που θα χρησιμοποιεί ο χρήστης για να συνδεθεί. Παραδοσιακά, τα ονόματα των χρηστών είναι οκτώ ή λιγότεροι χαρακτήρες και όλοι είναι πεζά γράμματα. (μπορεί να χρησιμοποιήσετε περισσότερους από οκτώ χαρακτήρες, ή να χρησιμοποιήσετε ψηφία, αλλά να το αποφεύγετε αυτό εκτός και αν υπάρχει κάποιος αρκετά σημαντικός λόγος). Μπορείτε επίσης να δώσετε το όνομα χρήστη ως παράμετρο στην γραμμή εντολών: # adduser jellyd Σε κάθε περίπτωση, αφού δώσετε το όνομα χρήστη, η adduser θα σας ζητήσει την ταυτότητα χρήστη (user ID):

108 User ID ('UID') [ defaults to next available ]: Η ταυτότητα χρήστη (UID) είναι το πως είναι πραγματικά καθορισμένες οι ιδιοκτησίες στο Linux. Κάθε χρήστης έχει ένα μοναδικό αριθμό, ξεκινώντας από το 1000 στο Slackware. Μπορείτε να επιλέξετε ένα UID για το νέο χρήστη, ή μπορείτε να αφήσετε την adduser να αναθέσει στο χρήστη το επόμενο διαθέσιμο. Initial group [users]: Όλοι οι χρήστες τοποθετούνται μέσα στην ομάδα των users αυτόματα. Εάν θέλετε μπορείτε να τοποθετήσετε τον νέο χρήστη σε μία διαφορετική ομάδα, αν και δεν προτείνετε εκτός και αν ξέρετε καλά τι κάνετε. Additional groups (comma separated) []: Αυτή η ερώτηση επιτρέπει την πρόσθεση του νέου χρήστη σε περισσότερες ομάδες. Είναι πιθανό για έναν χρήστη να είναι σε διάφορες ομάδες την ίδια στιγμή. Αυτό είναι χρήσιμο εάν έχετε εγκαταστήσει ομάδες για εργασίες όπως για την μετατροπή αρχείων για ιστοσελίδες, παίξιμο παιχνιδιών, και άλλα. Για παράδειγμα, κάποιες ιστοσελίδες ορίζουν την ομάδα wheel σαν την μόνη ομάδα που μπορεί να χρησιμοποιήσει την εντολή su. Ή, η προκαθορισμένη εγκατάσταση του Slackware χρησιμοποιεί την ομάδα sys για χρήστες που έχουν δικαιοδοσία να παίζουν ήχους μέσο της εσωτερικής κάρτας ήχου. Home directory [/home/jellyd] Οι προσωπικοί φάκελοι (home directories) αυτόματα τοποθετούνται κάτω από το /home. Εάν έχετε ένα πολύ μεγάλο σύστημα, είναι πιθανό να έχετε μεταφέρει τους προσωπικούς φακέλους σε κάποια άλλη περιοχή (ή σε πολλές περιοχές). Αυτό το βήμα επιτρέπει τον ορισμό της τοτοθεσίας του προσωπικού φακέλου του χρήστη. Shell [ /bin/bash ] Ο bash είναι ο προκαθορισμένος φλοιός στο Slackware Linux, και είναι καλός για τους περισσότερους ανθρώπους. Εάν ο νέος σας χρήστης έχει εμπειρία από UNIX, μπορεί να έχει οικειότητα με κάποιον άλλο. Μπορείτε να αλλάξετε τον φλοιό του τώρα, ή μπορεί να τον αλλάξει αργότερα μόνος του με τη χρήση της εντολής chsh. Expiry date (YYYY-MM-DD) []: Οι λογαριασμοί μπορούν να ρυθμιστούν έτσι ώστε να λήγουν σε μια συγκεκριμένη ημερομηνία. Από το σύστημα, δεν υπάρχει ημερομηνία λήξης. Μπορείτε να το αλλάξετε αυτό, εάν το θέλετε. Αυτή η επιλογή μπορεί να φανεί χρήσιμη σε ανθρώπους που λειτουργούν έναν Παροχέα Υπηρεσιών Διαδικτύου (ISP) που μπορεί να θέλει να κάνει έναν λογαριασμό να λήγει μία συγκεκριμένη ημερομηνία, εκτός και αν παραλάβει την πληρωμή του για τον επόμενο χρόνο.

109 New account will be created as follows: Login name: jellyd UID: [ Next available ] Initial group: users Additional groups: [ None ] Home directory: /home/jellyd Shell: /bin/bash Expiry date: [ Never ] Αυτό ήταν... εάν θέλετε να το απορρίψετε, πατήστε CONTROL+C. Αλλιώς, πατήστε ENTER για να συνεχίσετε δημιουργώντας τον λογαριασμό. Τώρα βλέπετε όλες τις πληροφορίες που είχατε εισάγει για την δημιουργία του νέου λογαριασμού και έχετε την δυνατότητα να ακυρώσετε την δημιουργία του. Εάν είχατε εισάγει κάτι λάθος, πρέπει να πατήσετε CONTROL+C και να το κάνετε από την αρχή. Σε άλλη περίπτωση, μπορείτε να πατήσετε ENTER και ο λογαριασμός θα δημιουργηθεί. Creating new account... Changing the user information for jellyd Enter the new value, or press return for the default Full Name []: Jeremy Room Number []: Smith 130 Work Phone []: Home Phone []: Other []: Όλες αυτές οι πληροφορίες είναι προαιρετικές. Δεν είναι ανάγκη να εισάγετε κάτι σε όποιο δεν θέλετε, και ο χρήστης μπορεί να το αλλάξει οποιοδήποτε στιγμή με την chfn. Όμως, μπορεί να είναι χρήσιμο να βάλετε έστω ένα πλήρες όνομα και έναν αριθμό τηλεφώνου, για την περίπτωση που θέλετε να έρθετε σε επαφή με αυτό το άτομο. Changing password for jellyd Enter the new password (minimum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Re-enter new password: Password changed. Account setup complete. Πρέπει να εισάγετε έναν κωδικό για τον νέο χρήστη. Γενικά, εάν ο νέος χρήστης δεν είναι παρών (φυσική παρουσία) αυτή τη στιγμή, διαλέξτε έναν προκαθορισμένο κωδικό και πείτε του να τον αλλάξει με κάτι πιο ασφαλές. Σημείωση: Διαλέγοντας έναν Κωδικό: Το να έχεις έναν ασφαλή κωδικό είναι η πρώτη γραμμή άμυνας ενάντια στο σπάσιμο του. Δεν θέλεις να έχεις έναν κωδικό που είναι εύκολο να τον μαντέψει κανείς, γιατί αυτό κάνει εύκολη την εισβολή κάποιου στο σύστημά σου. Το ιδανικό, είναι ένας κωδικός με τυχαίους χαρακτήρες, συμπεριλαμβανομένων κεφαλαίων και πεζών γραμμάτων, αριθμών, και τυχαίων χαρακτήρων. (Ένας χαρακτήρας TAB ίσως να μην είναι μία σοφή επιλογή, ανάλογα με το τι τύπου υπολογιστές χρησιμοποιείς για να συνδεθείς). Υπάρχουν πολλά πακέτα λογισμικού που μπορούν να δημιουργήσουν τυχαίους κωδικούς για εσάς, ψάξτε

110 στο διαδίκτυο για αυτά τα εργαλεία. Γενικά, απλά χρησιμοποιήστε την απλή λογική: μην διαλέγετε κωδικό που είναι κάποιου τα γενέθλια, μια συνηθισμένη φράση, κάτι που βρήκατε στο γραφείο σας, ή οτιδήποτε είναι εύκολα συσχετίσιμο με εσάς. Ένας κωδικός όπως secure1 ή οποιονδήποτε κωδικό βλέπετε εκτυπωμένο ή στο διαδίκτυο είναι επίσης κακός. Το να αφαιρείτε χρήστες δεν είναι καθόλου δύσκολο. Απλά τρέξτε το userdel με το όνομα του λογαριασμού που θέλετε. Πρέπει να επιβεβαιώσετε ότι ο χρήστης δεν είναι συνδεδεμένος, και ότι δεν υπάρχουν διαδικασίες (processes) που να εκτελεί αυτός ο χρήστης. Επίσης, να θυμάστε ότι εφόσον διαγράψατε τον χρήστη, όλες οι πληροφορίες του κωδικού του χάνονται. # userdel jellyd Αυτή η εντολή αφαιρεί αυτόν τον ενοχλητικό χρήστη jellyd από το σύστημά. Καλό χορό της ελευθερίας! :) Ο χρήστης αφαιρέθηκε από τα αρχεία /etc/passwd, /etc/shadow, και /etc/group, αλλά δεν αφαιρέθηκε ο προσωπικός φάκελος του χρήστη. Εάν θέλετε να διαγράψετε και τον προσωπικό φάκελο του, θα χρησιμοποιήσετε στη θέση της παραπάνω την εντολή: # userdel -r jellyd Η προσωρινή ακύρωση ενός λογαριασμού θα καλυφθεί στην επόμενη παράγραφο στους κωδικούς, εφόσον μία προσωρινή ακύρωση συνεπάγεται με την αλλαγή του κωδικού. Η αλλαγή άλλων δεδομένων του λογαριασμού καλύπτεται στην παράγραφο Τα προγράμματα για την πρόσθεση και αφαίρεση ομάδων είναι πολύ απλά. Το grouadd θα προσθέσει μία εγγραφή στο αρχείο /etc/group και ένα μοναδικό αριθμό ταυτότητας (group ID), ενώ το groupdel θα αφαιρέσει μία συγκεκριμένη ομάδα. Είναι προσωπική σας επιλογή η επεξεργασία του /etc/group για να προσθέσετε χρήστες σε μία ομάδα. Για παράδειγμα, για να προσθέσετε μία ομάδα που λέγετε cvs: # groupadd cvs Και για να την αφαιρέσετε: # groupdel cvs Αλλάζοντας Κωδικούς Το πρόγραμμα passwd αλλάζει τους κωδικούς μεταβάλλοντας το αρχείο /etc/shadow. Αυτό το αρχείο έχει όλους τους κωδικούς για το σύστημα κρυπτογραφημένους. Για να αλλάξεις τον προσωπικό κωδικό σου, πρέπει να πατήσεις:

111 % passwd Changing password for chris Old password: Enter the new password (minumum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Όπως μπορείτε να δείτε, πρέπει να εισάγετε τον παλιό σας κωδικό. Δεν θα εμφανιστεί στην οθόνη καθώς τον πληκτρολογείτε, ακριβώς όπως και όταν συνδέεστε. Μετά, πρέπει να εισάγετε τον νέο σας κωδικό. Το passwd εκτελεί πολλούς ελέγχους στο νέο σας κωδικό, και θα σας ενημερώσει εάν ο νέος κωδικός σας δεν περνάει τους ελέγχους του. Μπορείτε να αγνοήσετε αυτές τις προειδοποιήσεις εάν θέλετε. Θα σας ζητηθεί να εισάγετε και δεύτερη φορά το νέο κωδικό σας για επιβεβαίωση. Εάν είστε root, μπορείτε να αλλάξετε τον κωδικό και των άλλων χρηστών: # passwd ted Μετά θα πρέπει να ακολουθήσετε την ίδια διαδικασία όπως παραπάνω, εκτός του ότι δεν θα χρειαστεί να εισάγετε τον παλιό κωδικό του χρήστη. (Ένα από τα πολλά προνόμια του να είσαι root...). Εάν είναι ανάγκη, μπορείτε επίσης να απενεργοποιήσετε προσωρινά έναν λογαριασμό, και να τον ενεργοποιήσετε ξανά αργότερα εάν χρειαστεί. Και η απενεργοποίηση και η ενεργοποίηση ενός λογαριασμού μπορεί να γίνει με το passwd. Για να απενεργοποιήσετε έναν λογαριασμό, κάντε το παρακάτω ως root: # passwd -l david Αυτό θα αλλάξει τον λογαριασμό του david με κάτι που δεν θα ταιριάζει με καμία κρυπτογραφημένη τιμή. Μπορείτε να ενεργοποιήσετε ξανά τον λογαριασμό χρησιμοποιώντας το: # passwd -u david Τώρα, ο λογαριασμός του david είναι πάλι κανονικός. Η απενεργοποίηση λογαριασμών μπορεί να φανεί χρήσιμη εάν ο χρήστης δεν παίζει με τους κανόνες που έχετε βάλει στο σύστημα, ή εάν έχουν βγάλει ένα πολύ μεγάλο αντίγραφο του xeyes(1) στην X επιφάνεια εργασίας σας. Αλλάζοντάς τα Στοιχεία των Χρηστών Υπάρχουν δύο ειδών πληροφορίες που μπορούν οι χρήστες να αλλάξουν ανά πάσα στιγμή: ο φλοιός τους και οι πληροφορίες που εμφανίζονται στο finger. Το Slackware Linux χρησιμοποιεί τις εντολές chsh (change shell άλλαξε φλοιό) και chfn (change finger άλλαξε τις πληροφορίες για το finger) για να μεταβάλλουν αυτές τις τιμές. Ο κάθε χρήστης μπορεί να επιλέξει όποιον φλοιό θέλει από λίστα στο αρχείο /etc/shells. Για τους περισσότερους ανθρώπους, ο /bin/bash θα είναι μια χαρά. Άλλοι μπορεί να έχουν οικειότητα με έναν φλοιό που χρησιμοποιούν στη δουλειά τους ή το σχολείο τους και να θέλουν να χρησιμοποιήσουν αυτόν που ήδη γνωρίζουν. Για να αλλάξετε τον φλοιό, χρησιμοποιήστε την

112 εντολή chsh: % chsh Password: Changing the login shell for chris Enter the new value, or press return for the default Login Shell [/bin/bash]: Αφού εισάγετε τον κωδικό σας, γράψτε το πλήρες μονοπάτι για τον νέο φλοιό. Ελέγξτε ότι βρίσκετε στη λίστα στο /etc/shells(5) πρώτα. Ο χρήστης root μπορεί επίσης να αλλάξει τον φλοιό όλων των χρηστών εκτελώντας την εντολή chsh και μετά το όνομα χρήστη σαν παράμετρο. Οι πληροφορίες για το finger είναι προαιρετικές όπως το πλήρες όνομα, αριθμοί τηλεφώνων, και αριθμός δωματίου. Αυτό μπορεί να αλλάξει με την χρήση της chfn, και ακολουθείτε η ίδια διαδικασία με αυτή της δημιουργίας του λογαριασμού. Ως συνήθως, ο root μπορεί να αλλάξει οποιουδήποτε τις πληροφορίες του finger Χρήστες και Ομάδες, ο Δύσκολος Τρόπος Φυσικά, είναι πιθανό να εισάγεις, να αλλάζεις, και να αφαιρείς χρήστες και ομάδες χωρίς την χρήση αρχείων διαταγών και προγραμμάτων που έχει το Slackware. Δεν είναι πραγματικά δύσκολο, πιθανόν όμως μετά την ανάγνωση αυτής της διαδικασίας, να το βρείτε πολύ ευκολότερη τη χρήση αρχείων διαταγών. Έτσι κι αλλιώς, είναι σημαντικό όμως να γνωρίζετε το πως αποθηκεύονται πραγματικά οι πληροφορίες του κωδικού σας, για την περίπτωση που θα χρειαστεί να ανακτήσετε αυτά τα δεδομένα και δεν έχετε τα εργαλεία του Slackware στην διάθεσή σας. Αρχικά, θα προσθέσουμε έναν χρήστη στα αρχεία /etc/passwd(5), /etc/shadow(5), και στο /etc/group(5). Το αρχείο passwd περιέχει μερικές πληροφορίες για τους χρήστες του συστήματος, αλλά (αρκετά περίεργα) όχι τους κωδικούς τους. Αυτό συνέβαινε, αλλά αποσύρθηκε πριν πολύ καιρό για λόγους ασφαλείας. Το αρχείο passwd πρέπει να μπορούν να το διαβάσουν όλοι οι χρήστες, αλλά δεν θέλεις οι κρυπτογραφημένοι κωδικοί σου να είναι ορατοί σε όλον τον κόσμο, γιατί έτσι οι εισβολείς μπορεί να τους χρησιμοποιήσουν σαν σημείο εκκίνησης για την αποκρυπτογράφηση του κωδικού ενός χρήστη. Σε αντίθεση με αυτό, οι κρυπτογραφημένοι κωδικοί φυλάσσονται σε ένα αρχείο σκιά (shadow file), που μπορεί να το διαβάσει μόνο ο root, και οι κωδικοί όλων εισάγονται μέσα στο αρχείο passwd απλά ως x. Στο αρχείο group καταγράφονται οι ομάδες και το σε ποιες ανήκει ο κάθε ένας. Μπορείτε να χρησιμοποιήσετε την εντολή vipw για να επεξεργασθείτε το αρχείο /etc/passwd με ασφάλεια, και την vigr για το αρχείο /etc/group. Χρησιμοποιήστε την vipw -s για την ασφαλή επεξεργασία του αρχείου /etc/shadow. (το Ασφαλής σε αυτό το σημείο σημαίνει ότι κάποιος άλλος δεν θα μπορεί να επεξεργαστεί το αρχείο που εσείς επεξεργάζεστε την ίδια στιγμή. Εάν είστε ο μόνος διαχειριστής συστήματος, θα είστε πιθανότατα ασφαλής, αλλά είναι καλό να αποκτήσετε καλές συνήθειες από την αρχή). Ας εξετάσουμε το αρχείο /etc/passwd και ας δούμε πως προσθέτουμε έναν χρήστη σε αυτό. Μία τυπική εγγραφή στο αρχείο passwd μοιάζει κάπως έτσι: chris:x:1000:100:chris Lumens,Room 2,,:/home/chris:/bin/bash Κάθε γραμμή είναι μία εγγραφή για έναν χρήστη, και τα πεδία σε κάθε γραμμή χωρίζονται με άνω και κάτω τελεία. Τα πεδία είναι το όνομα χρήστη, ο κρυπτογραφημένος κωδικός (το x για όλους

113 στο Slackware, εφόσον το Slackware χρησιμοποιεί κωδικούς σκιές), η ταυτότητα χρήστη (User ID), η ταυτότητα ομάδας (group ID), οι προαιρετικές πληροφορίες του finger (χωρισμένες με κόμμα), ο προσωπικός φάκελος, και ο φλοιός. Για να εισάγετε έναν νέο χρήστη με το χέρι, προσθέστε μία νέα γραμμή στο τέλος του αρχείου, και συμπληρώστε την με τα κατάλληλα δεδομένα. Τα δεδομένα που εισάγετε πρέπει να πληρούν κάποιες προδιαγραφές, ή ο νέος σας χρήστης θα έχει πρόβλημα στην σύνδεση του στο σύστημα. Πρώτα, ελέγξτε ότι το πεδίο του κωδικού είναι ένα x, και ότι και το όνομα και η ταυτότητα χρήστη είναι μοναδικά. Προσθέστε τον χρήστη σε μία ομάδα, είτε 1000 (που είναι η ομάδα users στο Slackware) είτε η προκαθορισμένη ομάδα σας (χρησιμοποιήστε τον αριθμό της, όχι το όνομα). Δώστε στον χρήστη ένα προσωπικό φάκελο (που θα δημιουργήσετε αργότερα) και έναν φλοιό (να θυμάστε, οι φλοιοί που ισχύουν υπάρχουν στο /etc/shells). Μετά, θα πρέπει να προσθέσετε μία εγγραφή στο αρχείο /etc/shadow, που κρατά τους κρυπτογραφημένους κωδικούς. Μία τυπική εγγραφή μοιάζει κάπως έτσι: chris:$1$w9bsw/n9$uwlr2brer6yybs.caep7r.:11055:0:99999:7::: Ξανά, η κάθε γραμμή είναι μία εγγραφή για ένα άτομο, με κάθε πεδίο χωρισμένο με άνω και κάτω τελεία. Τα πεδία είναι (στη σειρά) όνομα χρήστη, κρυπτογραφημένος κωδικός, ημέρες από την εποχή (Epoch) (Ιανουάριος 1, 1970) όπου άλλαξε τελευταία φορά ο κωδικός, ημέρες πριν από από την πιθανή αλλαγή του, ημέρες μετά τις οποίες πρέπει να αλλάξει ο κωδικός, ημέρες πριν από την λήξη για την ενημέρωση του χρήστη, ημέρες μετά την λήξη για την απενεργοποίηση του λογαριασμού, ημέρες από την εποχή που απενεργοποιήθηκε ο λογαριασμός, και ένα δεσμευμένο πεδίο. Όπως μπορείτε να δείτε, τα περισσότερα από αυτά είναι πληροφορίες για τη λήξη του λογαριασμού. Εάν δεν χρησιμοποιείτε πληροφορίες λήξης, θα χρειαστεί να συμπληρώσετε μόνο κάποια πεδία με κάποιες ειδικές τιμές. Αλλιώς, θα πρέπει να κάνετε κάποιους υπολογισμούς και να πάρετε κάποιες αποφάσεις πριν συμπληρώσετε τα πεδία. Για ένα νέο χρήστη, απλά βάλτε κάποια τυχαία σκουπίδια στο πεδίο του κωδικού. Μην ανησυχείτε για το ποιος είναι ο κωδικός αυτή τη στιγμή, γιατί θα τον αλλάξετε σε ένα λεπτό. Ο μόνος χαρακτήρας που δεν μπορείτε να συμπεριλάβετε στο πεδίο του κωδικού είναι η άνω και κάτω τελεία. Αφήστε το πεδίο Μέρες από την αλλαγή του κωδικού κενό. Συμπληρώστε 0,99999 και 7 όπως βλέπετε στο παράδειγμα παραπάνω, και αφήστε τα άλλα πεδία κενά. (Για αυτούς που νομίζουν ότι βλέπουν τον κρυπτογραφημένο κωδικό μου παραπάνω και πιστεύουν ότι έχουν ένα πλεονέκτημα για να μπουν στο σύστημα μου, προχωρήστε. Εάν μπορείτε να σπάσετε αυτόν τον κωδικό, θα γνωρίζετε τον κωδικό ενός προστατευμένου με firewall πειραματικού συστήματος. Τώρα αυτό κι αν είναι χρήσιμο :) ). Όλοι οι φυσιολ&omicron