====== Debian Linux ως Server====== Έκδοση 0.6 Συγγραφέας : [[vagk77@yahoo.gr|Vagelis Koutsomitros]] (c) 2006 * ελληνικές εκδόσεις [[:el:linux_quick_guides_all_in_one | wiki]], pdf, μία html σελίδα, πολλαπλές html σελίδες * αγγλικές εκδόσεις [[:en:linux_quick_guides_all_in_one | wiki]], pdf, μία html σελίδα, πολλαπλές html σελίδες ====== Εισαγωγή ====== ====== Υπηρεσίες ====== {{:en:illbeyourserver.jpg|:en:illbeyourserver.jpg}} Για να ξεκινήσεις/σταματήσεις/επανεκκινήσεις/φορτώσεις μια υπηρεσία οποτεδήποτε στο Debian /etc/init.d/ start/stop/restart/reload π.χ. Για να επανεκκινήσεις την υπηρεσία εκτύπωσης /etc/init.d/cups restart ===== Ενεργοποίηση υπηρεσιών ===== ==== Διαδικασία εκκίνησης στο Linux ==== Όταν το σύστημα εκκινείται, η διαδικασία init διαβάζει το αρχείο ρυθμίσεων /etc/inittab. Ανά πάσα στιγμή μπορούμε να την αναγκάσουμε να το ξαναδιαβάσει εάν της δόσουμε το HUP σήμα από το ksysguard ή από την κονσόλα ως root kill -l HUP 1 Έτσι μας δίνεται η δυνατότητα να κάνουμε αλλαγές στην διαδικασία εκκίνησης και να τις δούμε χωρίς να επανεκκινήσουμε το σύστημα. Οι υπηρεσίες που μπορούν να εκτελεστούν κατά την εκκίνηση βρίσκονται στο φάκελο /etc/init.d/ Στο Linux υπάρχουν επίπεδα εκκίνησης. Όταν η διαδικασία εκκίνησης βρίσκεται στο επίπεδο X όλοι οι σύνδεσμοι σε υπηρεσίες που βρίσκονται στον φάκελο /etc/rcX.d/ θα εκτελεστούν με αλφαβητική σειρά. 7 είναι τα συνήθη επίπεδα, δες /etc/inittab για λεπτομέρειες. Για να αλλάξεις επίπεδο ανά πάσα στιγμή τρέξε την telinit telinit 1 θα πάει το σύστημα στο επίπεδο 1 * 0 για τερματισμό συστήματος * 6 για επανεκκίνηση συστήματος * 1 για περιβάλλον μοναδικού χρήστη (μόνο ένα κέλυφος root,κανένας άλλος δεν μπορεί να συνδεθεί) * 2 πολλαπλών χρηστών χωρίς δικτυακό σύστημα αρχείων nfs * 3 πολλαπλών χρηστών - περιβάλλον κονσόλας * 4 χωρίς χρήση * 5 πολλαπλών χρηστών - γραφικό περιβάλλον Όλοι οι σύνδεσμοι που το όνομά τους ξεκινά με Syyname εκκινούν μια υπηρεσία. Το yy εισάγεται για να οριστεί η σειρά εκκίνησης των υπηρεσιών και το name είναι το πραγματικό όνομα της υπηρεσίας που υπάρχει στο φάκελο /etc/init.d/ Όλοι οι συνδέσμοι που ξεκινούν με Kyyname σταματάνε μια υπηρεσία. Πάντα να χρησιμοποιείται το sysvconfig ή το ksysv για να δημιουργούνται τέτοιοι συνδέσμοι έτσι ώστε να διατηρείται η αυτοματοποίηση στην διανομή Linux. Δείτε επίσης το αρχείο /etc/init.d/README για λεπτομέρειες. ==== Δημιουργία Νέας Προσωπικής Υπηρεσίας ==== Για να δημιουργήσετε μία νέα προσωπική υπηρεσία υπάρχει ένα αρχείο υπόδειγμα /etc/init.d/skeleton Έστω ότι θέλετε να δημιουργήσετε μια υπηρεσία που ενεργοποιεί δρομολόγηση (βλέπε [[#es_ses_internet | Διαμοιρασμός Σύνδεσης Internet]]) και που έχει εκτελέσιμο το /usr/bin/myrouter. Θέλουμε να ονομάσουμε την υπηρεσία myrouter επίσης άρα αντιγράφουμε αρχικά το αρχείο /etc/init.d/skeleton στο /etc/init.d/myrouter cp /etc/init.d/skeleton /etc/init.d/myrouter Το αρχείο αυτό περιέχει σχόλια που βοηθάνε στην κατανόηση της λειτουργίας του. Στο παράδειγμά μας θα αλλάξουμε τις εξής γραμμές: Για την περιγραφή της υπηρεσίας DESC="IP forwarding and internet routing" Το όνομα της υπηρεσίας και του αρχείου στο /etc/init.d NAME=myrouter Οι ενέργειες που θα γίνουν κατά την εκκίνησή της με την εντολή /etc/init.d/myrouter start do_start() { /usr/bin/myrouter Οι ενέργειες που θα γίνουν κατά τον τερματισμό της με την εντολή /etc/init.d/myrouter stop Στην περίπτωσή μας αρκεί να απενεργοποιήσουμε την προώθηση ip do_stop() { /bin/echo 0 > /proc/sys/net/ipv4/ip_forward Αυτό ήταν!! Τώρα με το ksysv ή το sysvconfig μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε την χρήση της υπηρεσίας μας κατά την εκκίνηση! ==== ksysv - γραφικός επεξεργαστής εκκίνησης υπηρεσιών ==== Ένας πολύ χρήσιμος επεξεργαστής εκκίνησης υπηρεσιών είναι ο ksysv. Χρησιμοποιεί επίσης τον kwrite για να αλλάξει τα αρχεία ρυθμίσεων των υπηρεσιών. Σύρε υπηρεσίες στα διάφορα επίπεδα εκκίνησης με την σειρά που θέλεις. ==== sysvconfig - επεξεργαστής εκκίνησης υπηρεσιών από κονσόλα ==== Ο βασικός επεξεργαστής εκκίνησης υπηρεσιών που τρέχει σε κονσόλα είναι ο sysvconfig. Ενεργοποίηση/Απενεργοποίηση υπηρεσιών θα δημιουργήσει/διαγράψει όλους τους αντίστοιχους συνδέσμους στα επίπεδα εκκίνησης Παρόλ' αυτά κάποιες υπηρεσίες μπορεί να εμφανίζονται ενεργοποιημένες αλλά να μην έχουν συνδέσμους στα επίπεδα εκκίνησης. Γι' αυτό μπορείτε να απενεργοποιήσετε μια υπηρεσία και να την ενεργοποιήσετε πάλι για σιγουριά. Επίσης τσεκάρετε από το ksysv εάν ενεργοποιήθηκε. Καλό είναι πάντα να ελέγχετε με το ksysv καθώς η σειρά εκκίνησης μπορεί να μην είναι αυτή που θα θέλατε. ===== cups - Εξυπηρετητής Εκτυπώσεων ===== {{:en:printer.jpg|:en:printer.jpg}} ==== Αντιμετώπιση Προβλημάτων ==== Εάν στην εκτύπωση από το [[#openoffice | OpenOffice]] δεν μπορέσετε να ορίσεται τις προεπιλεγμένες ρυθμίσεις οι οποίες παραμένουν US letter τρέξτε το OpenOffice.org Printer administration. Σε Canon S200 Ο εκτυπωτής τραβάει μελάνι μόνο όταν συνδέεται στο ρεύμα. Μετά από κάποιες εκτυπώσεις ενώ πρέπει να ξανατραβήξει δεν το κάνει με αποτέλεσμα να αρχίσει να εκτυπώνει λευκές σελίδες. Νέα έκδοση οδηγού ίσως λύσει το πρόβλημα. ===== samba - Εξυπηρετητής αρχείων Windows===== ==== Τυπικό αρχείο ρυθμίσεων smb.conf ==== Ένας γρήγορος τρόπος να ρυθμιστεί η υπηρεσία samba είναι η χρήση ενός τυπικού αρχείου πάνω στο οποίο θα γίνουν αλλαγές που θα το προσαρμόσουν στο δικό σας τοπικό δίκτυο. Παρακάτω είναι ένα τέτοιο τυπικό αρχείο smb.conf για την χρήση samba ως * Εξυπηρετητή αρχείων windows * Εξυπηρετητή σύνδεσης σε λογαριασμό windows και χρήση του προσωπικού προφίλ περιαγωγής # Global parameters [global] workgroup = VAGK.LOCAL map to guest = Bad User passdb backend = tdbsam #username map = /etc/samba/smbusers printcap cache time = 750 printcap name = cups add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$ logon script = logon.cmd logon path = \\%N\profiles\%U logon drive = H: logon home = \\homeserver\%U\winprofile domain logons = Yes os level = 51 preferred master = Yes domain master = Yes ldap ssl = no idmap uid = 10000-20000 idmap gid = 10000-20000 printer admin = @ntadmin, root, administrator cups options = raw include = /etc/samba/dhcp.conf [homes] comment = Home Directories valid users = %S read only = No inherit acls = Yes browseable = No [users] comment = All users path = /home read only = No inherit acls = Yes veto files = /aquota.user/groups/shares/ [groups] comment = All groups path = /home/groups read only = No inherit acls = Yes [printers] comment = All Printers path = /var/tmp create mask = 0600 printable = Yes browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @ntadmin, root force group = ntadmin create mask = 0664 directory mask = 0775 [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon write list = root guest ok = Yes browseable = No [profiles] path = /var/lib/samba/profiles read only = No create mask = 0600 directory mask = 0700 [proglinux] comment = Various linux stuff path = /mnt/hda11/programslinux create mask = 0600 directory mask = 0700 guest ok = Yes case sensitive = No msdfs proxy = no [public] path = /root/public guest ok = Yes read only = No ==== Ρύθμιση εξυπηρετητή samba ==== Για την εγκατάσταση aptitude install samba Με το sysvconfig ή το ksysv ορίστε την εκτέλεσή της υπηρεσίας κατά την εκκίνηση Προσοχή το nmbd θα πρέπει να ξεκινάει πριν το smbd. Χρησιμοποιείστε το παραπάνω αρχείο smb.conf και κάντε τροποποιήσεις με βάση το δικό σας δίκτυο. Σημειώστε ότι ο προκαθορισμένος υπερχρήστης λέγεται root και όχι administrator. Αρχικά θα πρέπει να ορίσετε το password του υπερχρήστη με την εντολή smbpasswd -a root Για να προσθέσετε ένα μηχάνημα με όνομα CLIENT01 εκτελέστε τις εντολές useradd CLIENT01\$ smbpasswd -a -m CLIENT01 Το παραπάνω smb.conf αρχείο έχει δυνατότητα αυτόματης εγγραφής μηχανήματος, άρα μπορούμε να παρακάμψουμε την εγγραφή του μηχανήματος με τις παραπάνω εντολές. Μπορεί ούτως η άλλως να χρειαστεί να γίνει έτσι εάν για παράδειγμα εμφανιστεί μήνυμα ότι το όνομα του μηχανήματος χρησιμοποιείται ήδη. Για να διαγράψουμε ένα μηχάνημα smbpasswd -x -m CLIENT01 userdel CLIENT01\$ Για να δημιουργήσετε έναν νέο χρήστη με όνομα smbtest αρχικά δημιουργήστε τον ως τυπικό χρήστη linux και στην συνέχεια ως χρήστη samba adduser smbtest smbpasswd -a smbtest Για να διαγράψετε έναν υπάρχον χρήστη (και από τους τοπικούς χρήστες του Linux) smbpasswd -x smbtest Με την παράμετρο --remove-all-files η εντολή καθυστερεί λίγο αφού ψάχνει για όλα τα αρχεία του χρήστη (από home, samba, shared κτλ) αλλά είναι η καλύτερη. Προτείνεται να εκτελεστεί στο παρασκήνιο. deluser --remove-all-files smbtest& rm -rf /var/lib/samba/profiles/smbtest Δημιουργήστε τους φακέλους που θα αποθηκεύσουν τα profiles,netlogon και τους drivers. Για παράδειγμα. mkdir /var/lib/samba/profiles chmod 1777 /var/lib/samba/profiles/ chgrp users /var/lib/samba/profiles/ mkdir /var/lib/samba/netlogon chmod 775 /var/lib/samba/netlogon chgrp users /var/lib/samba/netlogon mkdir /var/lib/samba/drivers chmod 775 /var/lib/samba/drivers chgrp users /var/lib/samba/drivers/ Δημιούργησε έναν καινούργιο χρήστη π.χ. template και πρόσθεσέ τον στους χρήστες samba adduser template smbpasswd -a template - Κάνε σύνδεση σε ένα μηχάνημα πελάτη ως χρήστης template και άλλαξε όπως θες το προφίλ του - Μπες στο ίδιο μηχάνημα ως διαχειριστής - Κάνε τον φάκελο C:\Documents and Settings\template κοινό για όλους - Από τον μηχάνημα εξυπηρετητή samba βρες αυτόν τον διαμοιραζόμενο φάκελο και αντέγραψέ τον στο φάκελο NetLogon σου π.χ. /var/lib/samba/netlogon, μετονομάζοντάς τον σε Default User. - Αφαίρεσε την κοινή χρήση από αυτόν τον φάκελο - Φτιάξε τώρα έναν νέο χρήστη. Το αρχικό του προφίλ θα είναι αυτό που υπάρχει στον φάκελο /servername/netlogon/Default User. Αυτό δούλεψε αλλά δεν έχει δοκιμαστεί ακόμα εκτενώς. Εάν υπάρχουν καθυστερήσεις στην είσοδο των χρηστών γενικότερα μετονόμασε τον φάκελο σε Default User.bak για την περίοδο που δεν προστίθονται νέοι χρήστες. ====samba - περισσότερες επιλογές==== ===samba - αντιστοιχίσεις group=== Για να αντιστοιχίσουμε ένα group samba σε ένα group unix μπορούμε να εκτελέσουμε π.χ. net groupmap modify ntgroup="Domain Admins" unixgroup=ntadmin net groupmap modify ntgroup="Domain Users" unixgroup=users net groupmap modify ntgroup="Domain Guests" unixgroup=nobody Τι θα πρέπει να γίνει για να προστεθούν οι Domain Users στο Power Users group? Το Power Users group είναι ένα τοπικό group σε κάθε μηχάνημα με Windows 2000/XP Professional. Δεν μπορεί να προστεθεί αυτόματα, θα πρέπει να γίνει η διαδικασία σε κάθε μηχάνημα ξεχωριστά ως εξής: - Έναρξη -> Πίνακας Ελέγχου -> Χρήστες και Κωδικοί. - Καρτέλα Για Προχωρημένους. - Κλικ στο κουμπί Για Προχωρημένους. -Κλικ στα Groups. -Διπλό κλικ σε Power Users. Αυτό θα ξεκινήσει το παράθυρο πρόσθεσης χρηστών και group. -Κλικ στο Προσθήκη. -Επιλογή του Domain από το οποίο το Domain Users group θα προστεθεί. -Διπλό κλικ στο Domain Users group. -Κλικ στο Ok. Εάν εμφανιστεί ένα παράθυρο σύνδεσης συνδεθείτε ως DOMAIN\UserName. π.χ., για το domain MIDEARTH και τον χρήστη root ως MIDEARTH\root. ===samba - αποσφαλμάτωση=== Για να εμφανιστούν πολύ περισσότερα μηνύματα αποσφαλμάτωσης ανεβάζουμε το log levelπ.χ. log level = 10 log file = /usr/local/samba/lib/log.%m include = /usr/local/samba/lib/smb.conf.%m === samba - Προσάρτηση στο σύστημα αρχείων === Θα πρέπει να έχει εγκατασταθεί το smbfs aptitude install smbfs Απο την κονσολα ως root για να προσαρτήσουμε στον φάκελο /mnt/samba τον δικτυακό φάκελο public (που επιτρέπει πρόσβαση guest) του υπολογιστή sambaserver mkdir /mnt/samba mount -t smbfs //sambaserver/public /mnt/samba -o username=guest Στο παραπάνω αρχείο smb.conf υπάρχει μια καταχώρηση public Για να το ενεργοποιήσετε στο αρχείο fstab δείτε το κεφάλαιο [[#etc_fstab_-_pss_ss_s | Γενικές Ρυθμίσεις /etc/fstab]] ==== samba - Αντιμετώπιση προβλημάτων ==== Πρώτ' απ' όλα δοκιμάστε να επαννεκινήσετε την υπηρεσία samba /etc/init.d/samba restart Δοκιμάστε επίσης να εισάγετε το μηχάνημα σε μία τοπική ομάδα (π.χ. workgroup) και όχι περιοχή domain, επανεκκινήστε και ξαναδοκιμάστε Προβλήματα εμφανίστηκαν μετά από εγκατάσταση php, mysql και apache στο μηχάνημα - πελάτη με τα Windows XP, πιθανόν από τον apache. Σε κάθε είσοδο εμφανίζεται το τοπικό αντίγραφο του προφίλ του χρήστη και όχι το αντίγραφο περιαγωγής. Για το λόγο αυτό καλό είναι να αποφύγετε την εγκατάσταση των προγραμμάτων αυτών, αφού απεγκαταστασή τους μετά δεν λύνει το πρόβλημα. Προβλήματα μπορεί να εμφανιστούν επίσης εάν ο πελάτης ρυθμίζεται μέσω dhcp. Για το λόγο αυτό πάντα κάντε τις αρχικές δοκιμές με στατικές IPs, dns, κτλ. ==== swat - ρύθμιση μέσω περιηγητή ==== Το swat είναι ένα θαυμάσιο διαδικτυακό εργαλείο για ρύθμιση samba. Η εκκίνηση του γίνεται από το inetd. Θα πρέπει να επεξεργαστούν τα αρχεία /etc/inetd.conf και /etc/services για την ενεργοποίησή του μέσω του inetd. Δείτε για λεπτομέρειες. man swat Για εγκατάσταση aptitude install swat Στο /etc/inetd.conf θα πρέπει να προστεθεί μία γραμμή όπως η παρακάτω (δεν χρειάζεται να γίνει στο Debian αφού γίνεται αυτόματα κατά την εγκατάσταση. Θα πρέπει όμως να αφαιρεθεί το σχόλιο από αυτήν, που έχει μπει για λόγους ασφαλείας) swat stream tcp nowait.400 root /usr/sbin/swat swat Ενεργοποιήστε το inetd να τρέχει σε κάθε εκκίνηση από τα sysvconfig ή ksysv. Για να το δοκιμάσετε άμεσα. /etc/init.d/inetd start Στην συνέχεια από τον konqueror http://localhost:901 ==== LinNeighboorhood - πελάτης samba==== Για να συνδεθείς σε ένα pc που μοιράζεται αρχεία από windows ή από Linux μέσω samba κάνε τα παρακάτω : Ξεκίνα το LinNeighborhood. Άλλαξε password και άφησε κενό το workgroup. Μετα προσάρτησε τον κοινό φάκελο. Εάν δεν δουλέψει από το Κέντρο Ελέγχου του KDE Δίκτυο/Τοπική Περιήγηση άλλαξε τις ρυθμίσεις με αυτές του τοπικού σου δικτύου ===== Υπηρεσία ελέγχου όριου χρήσης δίσκου quota ===== Κάνε εγκατάσταση τα πακέτα quota και acl. aptitude install quota acl Άλλαξε το /etc/fstab για την κατάτμηση που θέλεις να ενεργοποιηθεί όριο χρήσης δίσκου (quota). Εάν είναι η ριζική κατάτμηση κάνε επανεκκίνηση στην συνέχεια. Εάν έχεις και άλλες κατατμήσεις linux, δοκίμασε εκεί το όριο χρήσης δίσκου αφού λάθη στην προσάρτηση της ριζικής κατάτμησης δεν θα σου επιτρέψουν να επαννεκινήσεις το σύστημα. Σε τέτοια περίπτωση κάνε εκκίνηση από live cd όπως το knoppix για να αλλάξεις πάλι το /etc/fstab /dev/hda5 / reiserfs defaults,acl,usrquota,grpquota 0 1 Για να αλλάξεις τα όρια χρήσης δίσκου ενός χρήστη εκτέλεσε edquota -u smbtest Για να εμφανίσεις τα όρια χρήσης δίσκου όλων των χρηστών repquota -a Ομοίως για διαμοιραζόμενους φακέλους samba smbcquotas -L /athlon/profiles Αφού οριστεί όριο χρήσης δίσκου για κάποιον χρήστη, μπορούμε να το αντιγράψουμε σε ένα σύνολο χρηστών, π.χ. αυτούς με UID πάνω από 1000 ως εξής: edquota -p smbtest `awk -F: '{ if ( $3 >1000 ) print $1}' /etc/passwd` Για να ορίσεις προκαθορισμένα όρια δίσκου για τους νέους χρήστες με βάση τα όρια δίσκου ενός χρήστη π.χ. με id 1001, άλλαξε το αρχείο /etc/adduser.conf ως εξής: QUOTAUSER="1001" Τα όρια χρήσης δίκου είναι ορίζονται ξεχωριστά για κάθε κατάτμηση Για να δοκιμάσεις τα acl cd /root ls /root >ls.txt ls -l total 4 -rw-r--r-- 1 root root 64 Dec 8 15:19 ls.txt getfacl ls.txt # file: ls.txt # owner: root # group: root user::rw- group::r-- other::r-- setfacl -m smbtest:rw ls.txt getfacl ls.txt # file: ls.txt # owner: root # group: root user::rw- user:smbtest:rw- group::r-- mask::rw- other::r-- Εάν έχεις παρόμοια αποτελέσματα σημαίνει ότι λειτουργούν κανονικά! ===== apt-cacher - Διαμεσολαβητής Πακέτων για το apt ===== Για να μπορούμε να κατεβάσουμε πακέτα σε ένα μόνο μηχάνημα και να τα χρησιμοποιήσουμε σε όλα τα μηχανήματα ενός τοπικού δικτύου θα πρέπει να εγκαταστήσουμε έναν Διαμεσολαβητή Πακέτων για το apt. Αναλυτικές οδηγίες υπάρχουν στ ην διύθυνση http://www.debianuniverse.com/readonline/chapter/19 ==== apt-cacher - Ρύθμιση Εξυπηρετητή ==== === apt-cacher - Εγκατάσταση και Δυνατότητες === Μετά από τις παρακάτω ενέργειες εγκατάστασης θα μπορείτε να : Εκτελείτε apt-get update από οποιοδήποτε μηχάνημα και η τελευταίες λίστες των πακέτων θα είναι διαθέσιμες σε όλα τα άλλα μηχανήματα ούτως ώστε η επόμενες εκτελέσεις apt-get update από αυτά να λάβουν τις αποθηκευμένες λίστες από τον server και να όχι πάλι μέσω Internet! Εντολή aptitude install packagename από οποιοδήποτε μηχάνημα να πάρει το πακέτο που θα τοποθετηθεί στον server ούτως ώστε επόμενες εντολές εγκατάστασης ίων πακέτων να πάρουν το πακέτο από τον server και όχι πάλι από το Internet! Δείτε παρακάτω πως συμβαίνουν όλα αυτά! Αρχικά aptitude install apt-cacher Θα πρέπει να τρέχει οπωσδήποτε να τρέχει ο εξυπηρετητής ιστοσελίδων apache Πιθανόν τα πιο σημαντικά σημεία είναι να σιγουρευτούμε ότι ο εξυπηρετητής μας έχει μια σταθερή IP διεύθυνση για να μπορούν οι υπόλοιποι υπολογιστές στο δίκτυο να τον βρουν καθώς και αρκετό χώρο μιας και θα αποθηκεύονται συνεχώς πακέτα από τις εντολές ανάκτησης όλων των μηχανημάτων. Επανεκκινούμε το Apache /etc/init.d/apache2 restart Ελέγξτε σωστή εγκατάσταση δοκιμάζοντας να ανοίξετε την ιστοσελίδα http://localhost/apt-cacher Αλλάξτε τις ρυθμίσεις στο αρχείο /etc/apt-cacher/apt-cacher.conf Βάλτε σχόλια μπροστά από την παρακάτω γραμμή για να μην καθαρίζεται ο χώρος αποθήκευσης κάθε μέρα #clean_cache=1 Εάν δεν χρησιμοποιείται proxy για http συνδέσεις βάλτε σχόλια στην παρακάτω γραμμή #http_proxy=proxy.example.com:8080 Αλλάξτε τις παρακάτω γραμμές για να επιτρέψετε μόνο σε συγκεκριμένα μηχανήματα να χρησιμοποιούν τον εξυπηρετητή. allowed_hosts=192.168.1.0-192.168.1.255 expire_hours=120 # or more. Maybe this will avoid too much checking on the internet Αλλάξτε το αρχείο /etc/default/apt-cacher για να εκκινείται ο εξυπηρετητής apt-cacher κατά την εκκίνηση του συστήματος AUTOSTART=1 Στον φάκελο /var/cache/apt-cacher/packages υπάρχουν οι λίστες των πακέτων που έχουν ζητηθεί από τα μηχανήματα - πελάτες καθώς και τα πακέτα deb. Εάν λοιπόν έχετε ήδη πακέτα στο φάκελο /var/cache/apt/archives μπορείτε να τα μεταφέρετε στο φάκελο /var/cache/apt-cacher/packages για να επιταχύνεται αρχικώς την διαδικασία cp /var/cache/apt/archives/*.deb /var/cache/apt-cacher/packages/ === apt-cacher - Αντιμετώπιση Προβλημάτων === Εάν ο εξυπηρετητής συνεχίζει να κατεβάζει παρά την διακοπή από τον πελάτη διακόψτε την σύνδεση στο Internet και επανεκκινήστε τον εξυπηρετητή. /etc/init.d/networking stop /etc/init.d/apt-cacher stop /etc/init.d/networking start /etc/init.d/apt-cacher start Ο εξυπηρετητής θα πρέπει να ολοκληρώνει ένα apt-get update χωρίς προβλήματα. Προσπαθήστε να φτίαξετε ένα αρχείο sources.list χωρίς λάθη. Προσθέστε μία μία τις καταχωρίσεις σε αυτό και δοκιμάστε την επιτυχή εκτέλεση της εντολής. Εάν προκύψουν λάθη από μία πηγή μπορεί να έχετε προβλήματα γι' αυτό διαγράψτε τα αντίστοιχα αρχεία στους φάκελους /var/cache/apt-cacher/packages, /var/cache/apt-cacher/headers, /var/cache/apt-cacher/private πιθανόν και τις καταχωρήσεις από το αρχείο sources.list και δοκιμάστε ξανά μέχρι να πετύχει η εκτέλεση της εντολής. Μην αφήσετε ανολοκλήρωτα αρχεία από ανεπιτυχείς λήψεις! Οι πελάτες δενπαρουσιάζουν ιδιαίτερα προβλήματα. Εάν ο εξυπηρετητής παρουσιάσει δοκιμάστε να χρησιμοποιεί ο ίδιος απευθείας τις πηγές από το Internet αφού μπορεί να δημιουργείται κάποιο πρόβλημα φαύλου κύκλου. ==== apt-cacher - Ρύθμιση Πελάτη ==== === apt-cacher - Ρύθμιση Πελάτη apt στο pc του Εξυπηρετητή === Οι παρακάτω επιλογές υπάρχουν από τις οποίες προτείνετε η πρώτη * Εάν προκύψουν προβλήματα για να μην μπλεχτεί πολύ η ρύθμιση χρησιμοποιήστε την συνήθη απευθείας σύνδεση με τις πηγές πακέτων στο Internet. Ο εξυπηρετητής δεν θα χρησιμοποιεί τον apt-cacher διαμεσολαβητή και μπορεί να χάνουμε σε εύρος, αλλά πιθανόν θα λυθούν προβλήματα. * Μπορείτε να χρησιμοποιείται το ίδιο αρχείο client.sources που χρησιμοποιούν και οι πελάτες. * Μπορείτε να προσθέσετε τις παρακάτω γραμμές στο /etc/apt/apt.conf (αν δεν υπάρχει δημιουργηστε το) για να τοποθετούνται τα αρχεία σας στο χώρο αποθήκευσης του διαμεσολαβητή και να είναι χρήσιμα και στους πελάτες. Για να γίνει αυτό προσθέστε τις γραμμές. Dir::State::Lists "/var/cache/apt-cacher/headers"; Dir::Cache::archives "/var/cache/apt-cacher/packages"; επίσης mkdir /var/cache/apt-cacher/packages/partial mkdir /var/cache/apt-cacher/packages/partial Για λόγους δοκιμών και για εύκολη ρύθμιση των πελατών φτιάξτε ένα αρχείο /etc/apt/sources.list.default με τις βασικές απευθείας πηγές από το Internet για τον εξυπηρετητή και ένα /etc/apt/sources.list.client με τις πηγές μέσω Διμεσολαβητή για τους πελάτες. Να θυμάστε να συγχρονίζετε τις αλλαγές σε αυτά. Χρησιμοποιήστε το αρχείο που θέλετε με μια αντιγραφή για παράδειγμα ως εξής : cp /etc/apt/sources.list.default /etc/apt/sources.list === apt-cacher - Ρύθμιση τυπικού Πελάτη === Δεν χρειάζεται να εγκαταστήσετε τίποτα στους πελάτες. Αρκεί να αλλαχθεί το /etc/apt/sources.list ώστε να στέλνονται οι αιτήσεις πακέτων στον διαμεσολαβητή apt. Μια τυπική γραμμή του μπορεί να είναι η εξής deb http://ftp.au.debian.org/debian unstable main contrib non-free Θα πρέπει να υπάρχει η διεύθυνση του Διαμεσολαβητή apt πριν από αυτή για παράδειγμα ως εξής : deb http://cache.example.com/apt-cacher/ftp.au.debian.org/debian unstable main contrib non-free Ποτέ όμως μην αλλάζετε τις υπάρχουσες τιμές, φτιάξτε ένα αρχείο sources.list.client από τον server και αντιγράψτε το στους πελάτες. Στην συνέχεια εκτελέστε apt-get update Για να ενημερώση το μηχάνημά σας τις λίστα των πακέτων του. Όλες οι αιτήσεις πακέτων από εδώ και στο εξής θα προέρχονται από τον διαμεσολαβητή. Ένας εύκολος τρόπος δημιουργίας ενός τέτοιου αρχείου είναι ^Εύρεση: | %%http://%% | ^Αντικατάσταση με: | http://youraptserver.local/apt-cacher/| Δεν μπορούν να χρησιμοποιηθούν ftp πηγές, μικρό πρόβλημα όμως καθώς σπάνιο να μην υπάρχουν επίσης και http πηγές για τα ίδια πακέτα. Τα αρχεία αντιγράφονται και στον εξυπηρετητή και στον πελάτη άρα ο πελάτης μπορεί άνετα να διαγράφει συχνά τα αρχεία του για να κερδίζει σε χώρο. Μερικές φορές ο εξυπηρετητής, αφού του γίνει αίτηση από πελάτη, πρώτα φέρνει όλο το αρχείο και στην συνέχεια το δίνει στον πελάτη. Αυτό είναι φυσιολογικό και ο πελάτης θα πρέπει να περιμένει. Παρακάτω είναι ένα κομμάτι από το αρχείο sources.list του πελάτη #ntua greek mirror deb http://athlon/apt-cacher/ftp.ntua.gr/pub/linux/debian/ testing main deb-src http://athlon/apt-cacher/ftp.ntua.gr/pub/linux/debian/ testing main Μέσω ftp ή samba πάρε ένα τέτοιο αρχείο και αντέγραψέ το πάνω στο υπάρχον source.list αφού κρατήσεις πρώτα ένα αντίγραφο ασφαλείας sources.list.default. cp /etc/apt/sources.list /etc/apt/sources.list.default cp /etc/apt/sources.list.client /etc/apt/sources.list ====== Ασφάλεια ====== ===== Αντίγραφα Ασφαλείας ===== ==== Αντίγραφα Ασφαλείας Κατάτμησης Λειτουργικού ==== Το πρόγραμμα που θα χρησιμοποιήσουμε να λήψη αντιγράφων ασφαλείας και επαναφορά από αυτά είναι το partimage. Θα πρέπει να έχουμε μια κατάτμηση (κατά προτίμηση FAT32), με ελεύθερο χώρο τουλάχιστον πάνω από τον μισό (θα γίνει συμπίεση), από εκείνον που καταλαμβάνουν τα δεδομένα μας στην κατάτμηση του λειτουργικού που θα λάβουμε αντίγραφο. Η κατάτμηση στην οποία θα αποθηκεύσουμε θα πρέπει να είναι είτε σε: * έναν εξωτερικό δίσκο * σε έναν δεύτερο εσωτερικό δίσκο ===== Προγράμματα antivirus ===== ==== clamav ==== Το πιο δημοφιλές ανοιχτού κώδικα πρόγραμμα antivirus με πολλές δυνατότητες και μεγάλη βάση δεδομένων ιών είναι το clamav. Προσανατολίζεται περισσότερο σε ιούς για windows που μπορεί να βρίσκονται σε άλλες κατατμήσεις στο σύστημά μας. Έχει ένα ωραίο γραφικό πρόγραμμα ρύθμισής του το klamav. Στο debian για εγκατάσταση aptitude install klamav Η βάση δεδομένων μπορεί να ανανεώνεται αυτόματα από το internet. Οποτεδήποτε όμως μπορεί να ανανεωθεί από τον χρήστη με την εντολή. freshclam ====== Αντιμετώπιση Προβλημάτων ====== ===== Αδυναμία εξαγωγής cd/dvd ===== Μερικές φορές ίσως δεν μπορούμε να εξάγουμε το cd/dvd. Αυτό είναι αρκετά εκνευριστικό. Όμως μην ξεχνάμε ότι δουλεύουμε σε ένα πολυχρηστικό λειτουργικό περιβάλλον ως απλός χρήστης με περιορισμένα δικαιώματα. Έχουμε γενικά το δικαίωμα να προσαρτήσουμε, στο σύστημα αρχείων, τα περιεχόμενα ενός dvd σε έναν φάκελο (εκτελείται η mount στο παρασκήνιο, π.χ. mount /media/cdrom0). Πριν το εξάγουμε θα πρέπει να αποπροσαρτήσουμε (εκτελείται η umount στο παρασκήνιο, π.χ. umount /media/cdrom0). Αυτό γίνεται αυτόματα από το λειτουργικό είτε : * όταν πατάμε το κουμπάκι eject από το drive ή αν δεν εξαχθεί το δισκάκι έτσι * Στο gnome μέσα από τον περιηγητή nautilus - Πατάμε το κουμπάκι Υπολογιστής (ή πάμε κατευθείαν από την συντόμευση στην επιφάνεια εργασίας) και - κάνουμε δεξί κλικ στον οδηγό CD/DVD στη δεξιά καρτέλα, επιλέγουμε αποπροσάρτηση και στην συνέχεια πατάμε το κουμπάκι eject από το drive * Στο kde μέσα από τον περιηγητή konqueror * Κάνουμε κλικ στην αριστερή καρτέλα Storage media (αν δεν υπάρχει πατάμε το εικονίδιο Εμφάνιση πλαίσιο πλοήγησης) * κάνουμε δεξί κλικ στο μέσον CD/DVD στη δεξιά καρτέλα, επιλέγουμε αποπροσάρτηση και στην συνέχεια πατάμε το κουμπάκι eject από το drive Αν ακόμα δεν μπορούμε να εξάγουμε το δισκάκι μάλλον συμβαίνει κάτι από τα παρακάτω. Το πρόγραμμα που το προσάρτησε αυτόματα για μας είτε : * το έχει κλειδωμένο ακόμα αφού δεν έχει τερματίσει ή * το έχει προσαρτήσει με δικαιώματα υπερχρήστη, ή * δεν προχώρησε στην αποπροσάρτησή του ως όφειλε κατά την έξοδό του. Όπως και να 'χει η λύση είναι η εξής. Κλείνουμε όλες τις εφαρμογές που χρησιμοποιούν το δισκάκι και ως υπερχρήστης εκτελούμε π.χ.: umount /media/cdrom0 Αν δεν έχει προσαρτηθεί στο /media/cdrom0, για να δούμε που έχει προσαρτηθεί δοκιμάζουμε umount /media/, TAB για να δούμε τις διαθέσιμες επιλογές ή umount /mnt/ TAB ή umount / TAB. ===== Αντιμετώπιση προβλημάτων στην εγκατάσταση πακέτων ===== Είτε έχουμε ξεκινήσει εγκατάσταση πακέτων από γραφική εφαρμογή, είτε από το apt μπορεί να αποτύχει η ολοκλήρωση της εγκατάστασης αρχικά. Μην ανησυχείτε όλα λύνονται. Θα περάσουμε στην γραμμή εντολών για να έχουμε τον πλήρη έλεγχο. * Εάν η εγκατάστασή σας ήταν από cd/dvd και σας εμφανίζεται μήνυμα λάθους ότι το πακέτο δεν βρέθηκε : * Πιθανή αιτία: Ίσως υπήρχε ήδη μέσα στον οδηγό λάθος dvd. * Διόρθωση: Εξάγεται το dvd και ξαναεκτελέστε την εντολή από την αρχή. * Εάν η εγκατάστασή σας ήταν δικτυακή και σας εμφανίζεται μήνυμα λάθους ότι το πακέτο δεν βρέθηκε : * Πιθανή αιτία: Ίσως έχει καταργηθεί πλέον από τις δικτυακές αποθήκες και έχει αντικατασταθεί με άλλο. * Διόρθωση: Εκτελέστε apt-get update και ξαναεκτελέστε μετά πάλι την εντολή από την αρχή. * Εάν η εγκατάστασή σας ήταν από γραφικό πρόγραμμα: * Πιθανή αιτία: Ίσως χρειάζεται να σας ρωτήσει πριν εγκαταστήσει κάποια πακέτα για τις ρυθμίσεις που πρέπει να γίνουν. * Διόρθωση: Κλείστε το και εκτελέστε πάλι την εντολή από την κονσόλα. * Εάν κατά την διάρκεια μιας εγκατάστασης ή ενώ κατεβαίνουν αρχεία σταματήσατε επίτηδες, κατά λάθος ή για άλλο λόγο: * Διόρθωση: Ξανατρέξτε την εντολή apt και θα συνεχίσει από εκεί που σταμάτησε. Η κάντε apt-get -f install για να δοκιμάσετε επανεγκατάσταση μισοεγκατεστημένων πακέτων και μετά ξανατρέξτε την αρχική εντολή. * Η εντολή apt-get update εμφανίζει μήνυμα λάθους Dynamic MMap ran out of room * Πιθανή αιτία : Έχουμε αρκετά μεγάλα repositories και η βάση δεδομένων που δημιουργήθηκε ξεπέρασε ένα προκαθορισμένο όριο του apt. * Διόρθωση : Αλλάξτε την παρακάτω γραμμή στο αρχείο /etc/apt/apt.conf και το πρόβλημα θα φύγει. Εάν ξαναεμφανιστεί απλώς μεγαλώστε την τιμή. * APT::Cache-Limit 12582912; * Η εντολή τερματίζει με μήνυμα λάθους για ένα αρχείο που περιέχεται σε δύο διαφορετικά πακέτα: * Πιθανή αιτία: Κάποια αρχεία έχουν μεταφερθεί από ένα παλίο πακέτο σε ένα νέο. Θα έπρεπε να αφαιρεθεί αυτόματα το παλιό πακέτο από το σύστημα σας αλλά δεν έγινε. * Διόρθωση. Κάντε μία μία τις παρακάτω ενέργειες ξαναδοκιμάζοντας κάθε φορά: * Αφαιρέστε το παλιό πακέτο μόνοι σας * dpkg -r --force-depends package_name * Αν ακόμα δεν έχει διορθωθεί, δοκιμάστε επίσης την άσχημη προσωρινή λύση, να αφήσετε το παλιό πακέτο και να διαγράψετε με εντολή rm τα προβληματικά αρχεία, πριν εγκαταστήσετε το νέο πακέτο. * Κάποιο πακέτο κατά την εγκατάστασή ή την απεγκατάστασή του, χρειάζεται να σταματήσει ή να εκκινήσει μια υπηρεσία η οποία όμως έχει πρόβλημα και κολλάει στην εκκίνηση. * Διόρθωση: * Μέχρι να δείτε τι φταίει με την υπηρεσία, δοκιμάστε να μην εγκαταστήσετε το πακέτο ή να το αφαιρέσετε μαζί με άλλα που το εγκαθιστούν αυτόματα. * Αν το πρόβλημα είναι στην απεγκατάσταση, δοκιμάστε επίσης να τροποποιήσετε το script αρχείο που εκτελείτε πριν ή μετά από αυτήν και βρίσκεται στον φάκελο /var/lib/dpkg/info. Για να το βρείτε αρκεί να γνωρίζετε ότι θα ξεκινάει με το όνομα του πακέτου και θα έχει καταλήξεις ανάλογα με το πότε εκτελείτε αντίστοιχα .preinst, .postinst, .prerm, postrm. Βρείτε την εντολή που τρέχει την προβληματική εργασία και αφαιρέστε την, ή γενικά περάστε τα πάντα σε σχόλια και γράψτε μια exit 0 για τερματίσει με επιτυχία. ===== Αφαίρεση αυτόματης εκκίνησης προβληματικών εφαρμογών σε kde,gnome ===== Οι διαχειριστές παραθύρων kde και gnome, έχουν την δυνατότητα να εκκινήσουν αυτόματα εφαρμογές, κατά την σύνδεση του χρήστη. Μερικές φορές όμως, κάποιες από αυτές τις εφαρμογές, μπορεί να προκαλέσουν ανώμαλο τερματισμό του γραφικού περιβάλλοντος X, κατά την εκκίνησή τους. Έτσι ο χρήστης αποσυνδέεται πάλι αυτόματα πριν ακόμα ολοκληρωθεί η σύνδεσή του. Άλλες φορές απλώς εκκινούν εμφανίζωντας μηνύματα λάθους κάθε φορά. Έτσι είτε από την κονσόλα (βλ. παρ. [[#pxgs_s_sl|Επεξεργασία κειμένου από κονσόλα]]) ή εκκινώνοντας από άλλο X περιβάλλον π.χ. fluxbox επεξεργαστείτε το αρχείο : Για το gnome από το μενού Επιφάνεια Εργασίας/Προτιμήσεις/Συνεδρίες εκτελείτε εφαρμογή για την επεξεργασία των προγραμμάτων που εκτελούνται αυτόματα κατά την είσοδό σας στο gnome. Δοκιμάστε λοιπόν από άλλο X περιβάλλον gnome-session-properties& Στην καρτέλα εκκίνηση προγραμμάτων μπορείτε να αφαιρέσετε το προβληματικό πρόγραμμα. Αν όμως στην καρτέλα Επιλογές Συνεδρίας, είναι επιλεγμένη η αυτόματη αποθήκευση αλλαγών συνεδρίας, ίσως δεν λύθεί το πρόβλημα έτσι. Μπορεί η εφαρμογή απλώς να εκκινήθηκε στην τελευταία συνεδρία και το gnome να την θυμάται. Στην περίπτωση αυτή θα υπάρχει λογικά το αρχείο ~/.gnome2/session. Επεξεργαστείται το και αφαιρέστε τις καταχωρήσεις που αφορούν την προβληματική εφαρμογή. kwrite ~/.gnome2/session& Για το kde εκτελέστε cd ~/.kde/share/config/ cp ksmserverrc ksmserverrc.bak kwrite ksmserverrc& Στο παραπάνω αρχείο, βρείτε την εφαρμογή που σας προκαλεί πρόβλημα. Θα έχει έναν αύξωντα αριθμό. Διαγράψτε όλες τις γραμμές που αφορούν αυτόν το αύξωντα αριθμό. Δοκιμάστε τέλος, να ξανασυνδεθείτε. Η εφαρμογή, που δημιουργούσε το πρόβλημα, δεν θα εκτελεστεί κατά την νέα είσοδό σας. ===== Επανάκτηση χαμένου κωδικού υπερχρήστη ===== Εάν χάσετε τον κωδικό υπερχρήστη μην απελπιστείτε και διαγράψετε τα πάντα. Δοκιμάστε να εκκινήσετε από ένα live cd όπως το Knoppix. Προσαρτήστε την κατάτμηση εγκατάστασης κάπου. Για παράδειγμα εάν είναι στο /dev/hda5 και έχει σύστημα αρχείων ext3 : mkdir /mnt/rescue mount -t ext3 /mnt/rescue /dev/hda5 Μετά αλλάξτε την 1η γραμμή από το αρχείο /etc/password, που μοιάζει κάπως έτσι : root:x:0:0:root:/root:/bin/bash σε : root::0:0:root:/root:/bin/bash Μετά ανοίξτε και το αρχείο /mnt/rescue/etc/shadow και αλλάξτε την 1η γραμμή που ξεκινάει με root σε root:*:::: Επανεκκινήστε και μπείτε ως υπερχρήστης ή ως απλός χρήστης εκτελέστε μετά su. Και χρησιμοποιήστε την εντολή passwd για να ορίσετε ένα νέο συνθηματικό. ===== Επανάκτηση απλού κωδικού χρήστη ===== Η επανάκτηση χαμένου κωδικού χρήστη είναι αρκετά απλή. Μπείτε σαν υπερχρήστης και εκτελέστε. passwd Εάν χρησιμοποιείται nis και ο χρήστης είναι δικτυακός, εκτελέστε yppasswd Δοκιμάστε από ένα pc πελάτη να συνδεθείτε. Εάν αυτό δεν δουλέψει, εκτελέστε επίσης make -C /var/yp/ Εάν ο χρήστης είναι χρήστης samba smbpasswd -a ===== Επαναπροσάρτηση κατάτμησης σε κατάσταση εγγραφής-ανάγνωσης ===== Ένα σύστημα αρχείων που έχει ήδη προσαρτηθεί ως μόνο ανάγνωσης μπορεί να επαναπροσαρηθεί και με δικαιώματα εγγραφής για παράδειγμα με την παρακάτω εντολή εάν είναι στο /dev/hda5 mount -o rw,remount /dev/hda5 / Αυτή η εντολή είναι χρήσιμη όταν συνδέεσε σε κατάσταση μοναδικού χρήστη χωρίς δυνατότητα εγγραφής στην κατάτμηση εγκατάστασης ή σε περίπτωση που αποτυχει ο έλεγχος δίσκου fsck κατά την εκκίνηση. ===== Επανεγκατάσταση-τροποποίηση grub ===== Αν σβηστεί, αλλοιωθεί ή αντικατασταθεί το grub από το mbr υπάρχουν αρκετοί τρόποι ανάκτησής του. Παράλληλα μπορούμε πριν το επανεγκαταστήσουμε να το τροποποιήσουμε. Ο πιο γενικός είναι ο 1ος, αλλά υπάρχουν και εναλλακτικοί αν δεν σας δουλέψει. Κάνουμε λοιπόν τα εξής : - Εκκινούμε από το knoppel (ή από το Insert) - Ανοίγουμε μια κονσόλα - Αλλάζουμε σε χρήστη root με την εντολή: * su - προσαρτούμε την κατάτμηση BOOT (π.χ. την hda5) στον φάκελο /boot με την εντολή: * mount -t reiserfs /dev/hda5 /boot - Ανοίγουμε το αρχείο menu.lst για επεξεργασία αν θέλουμε με την εντολή: * kwrite /boot/grub/menu.lst& - Εγκαθιστούμε το grub στο mbr με την εντολή: * grub-install hd0 - Εναλλακτικά, εκκινούμε από το UBCD και από τα Filesystem Tools / Boot Managers επιλέγουμε Super Grub Disk. Θα μας πάει σε γραμμή εντολών grub. Έχουμε τις εξής επιλογές: - Εγκατάσταση του grub από την επιπλέον επιλογή που μόλις δημιουργήσαμε. - Πληκτρολογείστε στο grub> configfile (hd0,4)/grub/menu.lst. Θα φορτωθεί το μενού του grub για το mbr - Επιλέξτε Install GRUB to hard disk (mbr) - Τροποποίηση αν θέλουμε και εγκατάσταση του grub στο mbr εκκινώντας από το εγκατεστημένο Linux συστήμα. - Πληκτρολογείστε στο grub> configfile (hd0,6)/boot/grub/menu.lst. Θα φορτωθεί το μενού με τους πυρήνες του Linux - Αφού εκκινήσουμε, μπαίνουμε στο γραφικό περιβάλλον και ανοίγουμε μια κονσολά. - Μπαίνουμε ως υπερχρήστης με su - Φορτώστε την κατάτμηση /boot με την εντολή: * mount /boot. - Αν θέλουμε επεξεργαζόμαστε το αρχείο menu.lst με την εντολή: * gedit /boot/grub/menu.lst& - Εγκαθιστούμε πάλι το grub με την εντολή: * grub-install hd0 ===== Αδυναμία εκκίνησης λόγω αλλαγής πίνακα κατατμήσεων ===== Μπορεί να μας συμβεί είτε μετά από : * επεξεργασία κατατμήσεων με το gparted (π.χ. διαγραφή και ξανά δημιουργία μιας κατάτμησης που βρίσκεται πριν από άλλη) * Διαίρεση κατάτμησης, με οποιοδήποτε επεξεργαστή κατατμήσεων στα δύο π.χ. της hda5 με αποτέλεσμα η επόμενη κατατμήση hda6 να είναι γίνει πλέον hda7. * Σκόπιμη επαναφορά κατάτμησης λειτουργικού, το οποίο βρισκόταν π.χ στην hda7, σε άλλη κατάτμηση π.χ. στην hda9 λόγω έλλειψης χώρου στην hda7. Το gparted έχει το χαρακτηριστικό να αλλάζει μερικές φορές, μετά από επεξεργασία, την σειρά με την οποία αναγνωρίζονται οι κατατμήσεις από το linux. Αυτό μπορεί εάν συνιθιστεί η λογική με την οποία γίνεται μπορεί να φανεί χρήσιμο. Θα χρειαστεί σε γενικές γραμμές να αλλάξουμε τα παρακάτω, για να λειτουργήσουν όλα πάλι σωστά: * Το αρχείο του grub που αφορά το mbr * Τα αρχεία grub που αφορούν κάθε κατάτμηση εγκατεστημένου linux λειτουργικού, αν αυτή έχει πλέον αλλάξει σειρά. * Τα αρχεία /etc/fstab σε κάθε ριζική κατάτμηση εγκατεστημένου linux λειτουργικού. Θεωρούμε λοιπόν ότι δεν λειτουργεί σωστά τίποτα πλέον, ούτε καν βλέπουμε το μενού του εγκατεστημένου στο mbr grub. Στην πράξη βέβαια, έχοντας το grub στην 1η λογική κατάτμηση, δεν πρόκειται να συμβεί κάτι τέτοιο. Ας θεωρήσουμε όμως ότι συμβαίνει και αυτό. Καταγράψτε λοιπόν αν θέλετε την νέα σειρά των κατατμήσεων και ας εκκινήσουμε από το knoppel να τα διορθώσουμε όλα. - Ανοίγουμε μια κονσόλα - Αλλάζουμε σε χρήστη root με την εντολή: * su - Εκκινούμε, και αφήνουμε ανοικτό το kdiskfree, για να δούμε πως αναγνωρίζει το linux τις κατατμήσεις: * kdf& * Δεξί κλικ στο τίτλο του παράθυρου του και επιλέξτε από το μενού Προχωρημένα την επιλόγά Διατήρηση πάνω από τα άλλα. * Για να ξεκαθαρίσετε καλύτερα, ποια κατάτμηση είναι ποιά, πάτηστε με δεξί κλικ πάνω τους και επιλέξτε προσάρτηση. Θυμηθείται όμως να αποπροσαρτήσετε μετά, οπωσδήποτε, την κατάτμηση ΒΟΟΤ αλλά και αυτές που δεν σας χρειάζονται αφού η προσάρτηση από το kdf γίνεται και με δικαιώματα εγγραφής. - προσαρτούμε την κατάτμηση BOOT (π.χ. την hda5) στον φάκελο /boot με την εντολή: * mount -t reiserfs /dev/hda5 /boot - Ανοίγουμε το αρχείο menu.lst του grub που αφορά το mbr για επεξεργασία με την εντολή: * kwrite /boot/grub/menu.lst& * Αλλάξτε στην γραμμή * configfile (hd0,x)/boot/grub/menu.lst, * το x με την σωστή τιμή. (Θυμηθείται το grub μετράει από το 0, άρα το hda7 είναι (hd0,6)) - Εγκαταστήστε πάλι το grub στο mbr με την εντολή: * grub-install hd0 - προσαρτούμε την ριζική κατάτμηση linux που μας ενδιαφέρει (π.χ. την hda7 που ήταν πριν τις αλλαγές hda8) με δεξί κλικ από το kdiskfree: - Ανοίγουμε το αρχείο menu.lst του grub, που αφορά αυτήν την ριζική κατάτμηση linux, για επεξεργασία, π.χ: * kwrite /media/hda7/boot/grub/menu.lst& * Κάνουμε εύρεση του hda8 και αντικατάστασή του με hda7 σε όλο το αρχείο * Κάνουμε εύρεση του (hd0,7) και αντικατάστασή του με (hd0,6) σε όλο το αρχείο - Ανοίγουμε το αρχείο /etc/fstab, που φορτώνει τις κατατμήσεις, κατά την εκκίνηση του ίδιου linux λειτουργικού, για επεξεργασία, π.χ: * kwrite /media/hda7/etc/fstab& * Αλλάζουμε όλες τις επηρεασμένες αριθμήσεις κατατμήσεων (hdax), ειδικά την ριζική (αλλιώς δεν θα εκκινήσει καν) - Επαναλαμβάνουμε, για κάθε εγκατεστημένη linux διανομή, τα 2 προηγούμενα βήματα (αν δεν άλλαξε θέση η ριζική της κατάτμηση) ή τα 3 (αν άλλαξε). - Αποπροσαρτούμε όλες τις κατατμήσεις, επανεκκινούμε και ευχόμαστε όλα να πήγαν καλά. ====== X Παραθυρικό Περιβάλλον και τερματικά====== {{:en:xgl.jpg|:en:xgl.jpg}} ===== X Εφαρμογές ως root ===== Το 1ο πρόβλημα σε μια εγκατάσταση linux είναι όταν προσπαθήσεις να εκτελέσεις κάτι από την κονσόλα συνδεδεμένος ως root. Εμφανίζει το μύνημα λάθους : cannot connect to X server Μια λύση είναι να αλλάξεις το XAUTHORITY στο /root/.bashrc αρχείο με τις παρακάτω γραμμές για οποιοδήποτε χρήστη ακόμα και τον root, αφού συνδεθείς στο περιβάλλον X ως ένας τυπικός χρήστης π.χ. vagelis Από την κονσόλα έπειτα κάνε σύνδεση σαν root και εκτέλεσε cp ~vagelis/.Xauthority ~/.Xauthority Αυτή η λύση είναι προσωρινή. Εάν αποσυνδεθείτε από το X περιβάλλον και ξανασυνδεθείτε θα πρέπει να το ξανακάνετε. Μια πιο μόνιμη λύση είναι η εξής και αφορά την παρακάτω περίπτωση: Εάν δεν συνδέεστε ποτέ ως root σε kde, gnome κτλ (που είναι και το πιο ασφαλές) αλλά πάντα σαν τυπικός χρήστης π.χ. vagelis τότε προσθέστε στο /root/.bashrc τις παρακάτω γραμμές : # ~/.bashrc export XAUTHORITY=~vagelis/.Xauthority Τώρα πάντα σε μια κονσόλα μπορείτε να εκτελείτε X εφαρμογές μετά την εντολή su εάν είστε στο X περιβάλλον ως χρήστης vagelis και μόνο τότε Μια άλλη λύση για το kde είναι να τρέξεις από την κονσόλα την εντολή kdesu Για το gnome χρησιμοποίησε gksu Βέβαια αυτά δουλεύουν από οποιοδήποτε διαχειριστή παραθύρω και να είσαι αρκεί να είναι εγκατεστημένα! ===== Πολλαπλές απομακρυσμένες κονσόλες ===== Για να χρησιμοποιήσεις πολλαπλές απομακρυσμένες κονσόλες εκτέλεση την εντολή screen αφού συνδεθείς στον απομακρυσμένο υπολογιστή με ssh Στην συνέχεια δοκίμασε// CTRL-a-c για να δημιουργήσεις μια νέα οθόνη// και μετά με // CTRL-a-? βλέπεις όλες τις δυνατές εντολές// CTRL-a-0 μεταφέρεσε στην 1η οθόνη// CTRL-a-1 μεταφέρεσε στην 2η// CTRL-a-n μεταφέρεσε στην επόμενη// CTRL-a-p μεταφέρεσε στην προηγούμενη// CTRL-a-d αποσύνδεση από τις οθόνες με την αποσύνδεση από το μηχάνημα (το screen συνεχίζει να εκτελείται) Εάν συνδεθείς πάλι με ssh εκτέλεσε screen -r για να συνεχίσεις από εκέι που βρισκόσουνα ===== Εκτέλεση απομακρυσμένων Χ εφαρμογών ===== Θέλουμε να εκτελέσουμε μια Χ εφαρμογή που θα εμφανιστεί στον απομακρυσμένο υπολογιστή. Έστω ότι συνδέεστε από το localpc (τοπικό pc) στο remotepc (απομακρυσμένο pc) Θα πρέπει βέβαια να εκτελείτε η ssh υπηρεσία στον απομακρυσμένο υπολογιστή. aptitude install openssh-server /etc/init.d/ssh start Εκτελέστε ssh remotepc Αρχικά η μταβλητή περιβάλλοντος $DISPLAY είναι κενή οπότε αφού συνδεθείτε εκτελέστε export DISPLAY=:0 # or export DISPLAY=remotepc:0 xterm Η εφαρμογή xterm θα εμφανιστεί στον απομακρυσμένο υπολογιστή Γίνεται να εμφανιστεί στον τοπικό? Βεβαίως! Ο μηχανισμός ασφαλείας που δεν το επιτρέπει αρχικά είναι ο xauthority Πρέπει να προσθέσετε στον απομακρυσμένο υπολογιστή το τρέχον τοπικό σας magic cookie αριθμό που βρίσκεται στο ~/.Xauthority Εκτελέστε στο τοπικό μηχάνημα xauth list $DISPLAY Θα εμφανιστεί localhost.localdomain:0 MIT-MAGIC-COOKIE-1 6ab86634b717cd5ba682714433887d24 Ο magic cookie αριθμός είναι 6ab86634b717cd5ba682714433887d24. Συνδεθείτε τώρα στο απομακρυσμένο μηχάνημα. ssh remotepc export DISPLAY=localpc:0 xauth Using authority file /home/vagelis/.Xauthority xauth>add athlonpc:0 . 6ab86634b717cd5ba682714433887d24 xauth>exit Writing authority file /home/vagelis/.Xauthority xterm Έτσι τώρα η εφαρμογή xterm εκτελείτε απομακρυσμένα αλλά προβάλεται τοπικά. Σιγουρευτείτε ότι κλείσατε όλες τις εφαρμογές που εκτελέσατε απομακρυσμένα. Ο magic cookie αριθμός είναι ασφάλεια για το τοπικό μηχάνημα. Λήγει όταν αποσυνδεθείτε από το X περιβάλλον. Περισσότερες πληροφορίες στην διεύθυνση http://www.xs4all.nl/~zweije/xauth.html. ===== Απομακρυσμένη σύνδεση σε γραφικό περιβάλλον windows ===== Για να συνδεθείτε απομακρυσμένα σε γραφικο περιβάλλον windows σε ένα μηχάνημα που τρέχει το πρωτόκολλο για απομακρυσμένες συνδέσεις rdp (remote desktop protocol) της Microsoft, εγκαταστήστε τους rdesktop (κονσόλα) ή krdc πελάτες (X εφαρμογή). Τα WinXp επιτρέπουν μόνο μία σύνδεση άρα θα πρέπει πρώτα να αποσυνδεθείτε τοπικά από τα windows. Τα WinXp server επιτρέπουν 2 συνδέσεις. Για περισσότερες θα πρέπει να αγοράσετε τα microsoft terminal services. aptitude install rdesktop krdc Συνδεθείτε π.χ. εκτελώντας rdesktop -f -a 16 remotepc ====== Δικτύωση ====== {{:en:networking.jpg|:en:networking.jpg}} ===== ping - έλεγχος επικοινωνίας ===== Από όλες τις εντολές η ping είναι η πιο συχνά χρησιμοποιούμενη κατά το στήσιμο ή την αντιμετώπιση προβλημάτων δικτύων. Για να δοκιμάσεις εάν μπορείς να επικοινωνήσεις με έναν υπολογιστή κάνε ping στην ip διεύθυνσή του ή την ονομαστική (dns) διεύθυνση. ping 192.168.1.10 ping www.google.com Για να την σταματήσεις όπως θα έκανες σε οποιαδήποτε άλλη διεργασία, πάτα CTRL-C ===== ifconfig - ορισμός ip διευθύνσεων προσωρινά ===== Μπορείτε να ορίσετε προσωρινές ip διευθύνσεις με την εντολή ifconfig. Αρχικά δοκιμάστε ifconfig Θα φανούν όλες οι διευθύνσεις στις ενεργοποιημένες διασυνδέσεις του υπολογιστή σας Έστω ότι θέλετε να ορίσετε την διεύθυνση 192.168.1.10 στην διασύνδεση eth0 του υπολογιστή σας. Δοκιμάστε ifconfig eth0 192.168.1.10 Εάν θέλετε να ορίσετε και 2η ip διευθυνση στην διασύνδεση eth0 π.χ. 10.2.12.8 ως eth0:0 χρησιμοποιήστε ifconfig eth0:0 10.2.12.8 Με κάθε εκτέλεση της ifconfig γράφετε επίσης και η αντίστοιχη δρομολόγηση προς τον προκαθορίσμένο δρομολογητή. Δείτε [[#route_s_elgs | route ορισμός δρομολόγησης]] Για να ενεργοποιήσετε μια διασύνδεση, π.χ. eth0 ifconfig eth0 up Για να την απενεργοποιήσετε ifconfig eth0 down ===== Λαμβάνωντας ips από dhcp ===== Για να πάρουμε ips από έναν dhcp server εκτελούμε aptitude install dhclient dhclient Εάν θέλουμε να απορίψουμε ips που δίνονται από συγκεκριμένο server π.χ. από τον 192.168.1.1 και τον 10.2.12.1 αλλάζουμε το αρχείο /etc/dhclient.conf και εισάγουμε τις παρακάτω γραμμές reject 192.168.1.1; reject 10.2.12.1; Για να πέρνουμε τις ips από dhcp κατά την εκκίνηση αλλάζουμε το αρχείο /etc/network/interfaces βάζοντας την γραμμή iface eth0 inet dhcp αντί για iface eth0 inet static address 10.26.145.16 netmask 255.0.0.0 gateway 192.168.1.254 ===== route ορισμός δρομολόγησης ===== Για να δείτε τον εκάτοτε πίνακα δρομολόγησης εκτελέστε route -n (η παράμετρος -n δίνει ip διευθύνσεις και δεν επιλύει στα ονόματά τους, και έτσι εκτελείτε πιο γρήγορα) Για να προσθέσετε έναν προεπιλεγμένο δρομολογητή για όλες τις ips που δεν έχουν συγκεκριμένη δρομολόγηση route add default gw 192.168.1.254 Για να ορίσετε δρομολόγηση για μια περιοχή ips π.χ. όλες τις 10.x.x.x route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1 Για να ενεργοποιήσετε αυτές τις δρομολογήσεις κατά την εκκίνηση προσθέστε στο αρχείο /etc/init.d/networking iface eth0 inet static address 10.26.145.16 netmask 255.0.0.0 up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1 down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1 gateway 192.168.1.254 Μετά δοκιμάστε /etc/init.d/networking stop /etc/init.d/networking start και τσέκαρετε με τις εντολές ifconfig και route -n εάν οι αλλαγές εφαρμόστηκαν. ===== Ορισμός μόνιμης δρομολόγησης και ip διευθύνσεων ===== Αφού κάνετε δοκιμές με την ifconfig γράψτε τις μόνιμες αλλαγές στο αρχείο /etc/network/interfaces για να φορτώνονται κατά την εκκίνηση. Παρακάτω δίνεται ένα τυπικό αρχείο. # The loopback network interface auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 # This is a list of hotpluggable network interfaces. # They will be activated automatically by the hotplug subsystem. mapping eth0 script grep map eth0 # The primary network interface auto eth0:0 eth0 iface eth0 inet static address 10.26.145.16 netmask 255.0.0.0 up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1 down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1 gateway 192.168.1.254 iface eth0:0 inet static address 192.168.1.68 netmask 255.255.255.0 Για άλλα παραδείγματα δείτε /usr/share/doc/ifupdown/examples/network-interfaces.gz ===== nslookup - Επίλυση ονομάτων περιοχών===== Τροποποίησε το αρχείο /etc/resolv.conf Εάν οι διευθύνσεις σου έχουν ένα επίθεμα .mydomain π.χ. myrouter.mydomain τότε για να μπορέσεις να χρησιμοποιήσεις το όνομα μόνο π.χ. myrouter πρόσθεσε search mydomain Πρόσθεσε επίσης την λίστα των dns servers με την σειρά που θέλεις να τους γίνεται ερώτηση nameserver 10.26.126.15 nameserver 192.168.1.254 Μετά δοκίμασε με την εντολή aptitude install dnsutils nslookup ===== kppp - Ρύθμιση USB Modem ===== Οι παρακάτω οδηγίες εφαρμόστηκαν στο εξωτερικό usb/serial isdn modem της intracom ((Παρέχεται στην Ελλάδα από τον ΟΤΕ όταν γίνεται εγκατάσταση isdn σύνδεσης)) Για χρήση του kppp από όλους τους χρήστες chmod +x /usr/bin/kppp Στο kppp απλώς άλλαξε τον τύπο του modem σε /dev/usb/ttyACM0 Εάν δεν μπορείς να το δεις από το μενού φτίαξε ένα σύνδεσμο σε αυτό στο /dev/modem όπως παρακάτω : Για να αφαιρέσεις παλιές συνδέσεις rm /dev/modem Νέος σύνδεσμος ln -s /dev/usb/ttyACM0 /dev/modem Μετά χρησιμοποίησε το /dev/modem στο kppp PAP ως πρωτόκολλο, 115200 ταχύτητα, όχι αναμονή για σήμα και αποθήκευσε το password Για το isdn modem της Intracom στις εντολές AT commands αφαίρεσε τις εντολές για μεγάφωνο (δεν έχει) Σαν συμβολοσειρά εκκίνησης ATJA80JS60B0 για 1 κανάλι αλλά ζητωντας 128 kbps από τον παροχέα ATB40 για 1 κανάλι 64 kbps ATB0 για 2 κανάλια 128 kbps Εάν το pppd πεθάνει μετά από περίπου 2 λεπτά τότε θα πρέπει να αλλάξεις το αρχείο /etc/ppp/options file 2 γραμμές είναι υπεύθυνες γι' αυτό lcp-echo-interval 30 lcp-echo-failure 4 Χρησιμοποίησε ένα απλό /etc/ppp/options αρχείο όπως lock noauth noipdefault Διέγραψε το noauth από τα ορίσματα του pppd ===== Διαμοιρασμός σύνδεσης Internet ===== Οι παρακάτω οδηγίες είναι για ένα pc που είναι συνδεδεμένο σε έναν διανομέα στον οποίο είνα συνδεδεμένα επίσης το τοπικό δίκτυο και ο δρομολογητής για το Internet. Ο δρομολογητής επιτρέπει μόνο σε αυτό την χρήση του Internet. Εμείς θα προωθήσουμε όλα τα εισερχόμενα πακέτα από το τοπικό δίκτυο από την διασύνδεση eth0 στην eth0 και ο δρομολογητής θα τα δει σαν να ήταν από το pc που του επιτρέπεται η σύνδεση στο Internet και θα τα προωθήσει με την σειρά του προς το Internet. Για άλλες περιπτώσεις π.χ. σύνδεση modem ως ppp0 αντικαταστήστε το 2ο eth0 (έξοδος) με ppp0. Για Debian κάντε τα παρακάτω Ορίστε DNS servers στο /etc/resolv.conf Το βασικό πρόβλημα είναι η προώθηση IP (IP forwarding) Για να δοκιμάσουμε τις ρυθμίσεις δημιουργούμε ένα καινούργιο εκτελέσιμο αρχείο /usr/bin/myrouter με τις παρακάτω ρυθμίσεις τείχους προστασίας (firewall). Για να το δημιουργήσουμε σαν υπηρεσία εκκίνησης δες οδηγίες στο [[#eg_psp_ps|Δημιουργία Νέας Προσωπικής Υπηρεσίας]]. #!/bin/sh # This is first to clear any already existing rules /sbin/iptables -P INPUT ACCEPT /sbin/iptables -F INPUT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -F OUTPUT /sbin/iptables -P FORWARD ACCEPT /sbin/iptables -F FORWARD # load iptables modules /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack # enable ip forwarding /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # flush tables $IPTABLES -F $IPTABLES -X # enable masquerading to allow LAN internet access $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE # forward internal LAN traffic from eth0 to eth0 internet interface $IPTABLES -A FORWARD -i eth0 -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT # block out internet intrusion on eth0 #$IPTABLES -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP #$IPTABLES -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP ====== Γραμμή εντολών ====== ===== Χρήσιμες εντολές ===== ==== Πυρήνας και αρθρώματα (modules) ==== Για να δεις την έκδοση του πυρήνα που χρησιμοποιείς uname -a Τα αρθρώματα (modules) περιέχουν συνήθως οδηγούς για διάφορες συσκευές ή λειτουργίες του λειτουργικού. Για να δεις ποια αρθρώματα είναι φορτωμένα στον πυρήνα. lsmod Για να φορτώσεις ένα άρθρωμα modprobe Για να εμφανίσεις πληροφορίες για ένα άρθρωμα modinfo Για να ενεργοποιήσεις / απενεργοποιήσεις αρθρώματα κατά την εκκίνηση modconf ==== locate - εύρεση ==== Μπορείς να φτιάξεις μια βάση δεδομένων με όλα τα αρχεία με την εντολή aptitude install slocate updatedb Στην συνέχεια εκτέλεση την εντολή locate με παράμετρο μέρος του ονόματος αρχείου που ψάχνεις. Είναι πολύ χρήσιμη ειδικά όταν ξέρεις το όνομα ενός αρχείου αλλά δεν γνωρίζεις που το έχει τοποθετήσει η διανομή Linux που χρησιμοποιέις locate ==== Μεταβλητές περιβάλλοντος ==== Για να δεις τις τιμές όλων των μεταβλητών περιβάλλοντος env ή printenv Για να δεις μια μεταβλητή περιβάλλοντος π.χ. την PATH echo $PATH Για να ορίσεις μια μεταβλητή περιβάλλοντος π.χ. να αλλάξεις την γλώσσα σε gnome εφαρμογές export LANG='en_US.ISO-8859-1' gedit& export LANG='el_GR.UTF-8' gedit& Για να προσθέσεις νέο κατάλογο στην PATH export PATH="$PATH:/usr/NX/bin" Όλες τις export μπορείς να τις περάσεις στο αρχείο ~/.bashrc ώστε να εκτελούνται κατά την είσοδο σε κονσόλα (σε κέλυφος bash) ==== Διάφορες ==== Για να δεις την χρήση δίσκου για όλες τις προσαρτημένες κατατμήσεις df /dev/hda8 11084456 6576484 4507972 60% / /dev/hda1 5114692 2643144 2471548 52% /mnt/hda1 /dev/hda2 4080614 1712488 2368126 42% /mnt/hda2 /dev/hda3 3076444 2589036 487408 85% /mnt/hda3 /dev/hda6 9578032 4531328 5046704 48% /mnt/hda6 ====== Παράρτημα ====== ===== Παραπομπές =====