LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:linux:tmp

Table of Contents

Debian Linux ως Server

Έκδοση 0.6 Συγγραφέας : Vagelis Koutsomitros © 2006

  • ελληνικές εκδόσεις wiki, pdf, μία html σελίδα, πολλαπλές html σελίδες
  • αγγλικές εκδόσεις wiki, pdf, μία html σελίδα, πολλαπλές html σελίδες

Εισαγωγή

Υπηρεσίες

:en:illbeyourserver.jpg

Για να ξεκινήσεις/σταματήσεις/επανεκκινήσεις/φορτώσεις μια υπηρεσία οποτεδήποτε στο Debian

/etc/init.d/<name of service> 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 Έστω ότι θέλετε να δημιουργήσετε μια υπηρεσία που ενεργοποιεί δρομολόγηση (βλέπε Διαμοιρασμός Σύνδεσης 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

Αντιμετώπιση Προβλημάτων

Εάν στην εκτύπωση από το 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
  1. Κάνε σύνδεση σε ένα μηχάνημα πελάτη ως χρήστης template και άλλαξε όπως θες το προφίλ του
  2. Μπες στο ίδιο μηχάνημα ως διαχειριστής
  3. Κάνε τον φάκελο C:\Documents and Settings\template κοινό για όλους
  4. Από τον μηχάνημα εξυπηρετητή samba βρες αυτόν τον διαμοιραζόμενο φάκελο και αντέγραψέ τον στο φάκελο NetLogon σου π.χ. /var/lib/samba/netlogon, μετονομάζοντάς τον σε Default User.
  5. Αφαίρεσε την κοινή χρήση από αυτόν τον φάκελο
  6. Φτιάξε τώρα έναν νέο χρήστη. Το αρχικό του προφίλ θα είναι αυτό που υπάρχει στον φάκελο /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. Δεν μπορεί να προστεθεί αυτόματα, θα πρέπει να γίνει η διαδικασία σε κάθε μηχάνημα ξεχωριστά ως εξής:

  1. Έναρξη → Πίνακας Ελέγχου → Χρήστες και Κωδικοί.
  2. Καρτέλα Για Προχωρημένους.
  3. Κλικ στο κουμπί Για Προχωρημένους.
  4. Κλικ στα Groups.
  5. Διπλό κλικ σε Power Users. Αυτό θα ξεκινήσει το παράθυρο πρόσθεσης χρηστών και group.
  6. Κλικ στο Προσθήκη.
  7. Επιλογή του Domain από το οποίο το Domain Users group θα προστεθεί.
  8. Διπλό κλικ στο Domain Users group.
  9. Κλικ στο 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

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
    1. Πατάμε το κουμπάκι Υπολογιστής (ή πάμε κατευθείαν από την συντόμευση στην επιφάνεια εργασίας) και
    2. κάνουμε δεξί κλικ στον οδηγό 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, κατά την εκκίνησή τους. Έτσι ο χρήστης αποσυνδέεται πάλι αυτόματα πριν ακόμα ολοκληρωθεί η σύνδεσή του. Άλλες φορές απλώς εκκινούν εμφανίζωντας μηνύματα λάθους κάθε φορά.

Έτσι είτε από την κονσόλα (βλ. παρ. Επεξεργασία κειμένου από κονσόλα) ή εκκινώνοντας από άλλο 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 <username>

Εάν χρησιμοποιείται nis και ο χρήστης είναι δικτυακός, εκτελέστε

yppasswd <username>

Δοκιμάστε από ένα pc πελάτη να συνδεθείτε. Εάν αυτό δεν δουλέψει, εκτελέστε επίσης

make -C /var/yp/

Εάν ο χρήστης είναι χρήστης samba

smbpasswd -a <username>

Επαναπροσάρτηση κατάτμησης σε κατάσταση εγγραφής-ανάγνωσης

Ένα σύστημα αρχείων που έχει ήδη προσαρτηθεί ως μόνο ανάγνωσης μπορεί να επαναπροσαρηθεί και με δικαιώματα εγγραφής για παράδειγμα με την παρακάτω εντολή εάν είναι στο /dev/hda5

mount -o rw,remount /dev/hda5 /

Αυτή η εντολή είναι χρήσιμη όταν συνδέεσε σε κατάσταση μοναδικού χρήστη χωρίς δυνατότητα εγγραφής στην κατάτμηση εγκατάστασης ή σε περίπτωση που αποτυχει ο έλεγχος δίσκου fsck κατά την εκκίνηση.

Επανεγκατάσταση-τροποποίηση grub

Αν σβηστεί, αλλοιωθεί ή αντικατασταθεί το grub από το mbr υπάρχουν αρκετοί τρόποι ανάκτησής του. Παράλληλα μπορούμε πριν το επανεγκαταστήσουμε να το τροποποιήσουμε. Ο πιο γενικός είναι ο 1ος, αλλά υπάρχουν και εναλλακτικοί αν δεν σας δουλέψει. Κάνουμε λοιπόν τα εξής :

  1. Εκκινούμε από το knoppel (ή από το Insert)
    1. Ανοίγουμε μια κονσόλα
      1. Αλλάζουμε σε χρήστη root με την εντολή:
        • su
      2. προσαρτούμε την κατάτμηση BOOT (π.χ. την hda5) στον φάκελο /boot με την εντολή:
        • mount -t reiserfs /dev/hda5 /boot
      3. Ανοίγουμε το αρχείο menu.lst για επεξεργασία αν θέλουμε με την εντολή:
        • kwrite /boot/grub/menu.lst&
      4. Εγκαθιστούμε το grub στο mbr με την εντολή:
        • grub-install hd0
  2. Εναλλακτικά, εκκινούμε από το UBCD και από τα Filesystem Tools / Boot Managers επιλέγουμε Super Grub Disk. Θα μας πάει σε γραμμή εντολών grub. Έχουμε τις εξής επιλογές:
    1. Εγκατάσταση του grub από την επιπλέον επιλογή που μόλις δημιουργήσαμε.
      1. Πληκτρολογείστε στο grub> configfile (hd0,4)/grub/menu.lst. Θα φορτωθεί το μενού του grub για το mbr
      2. Επιλέξτε Install GRUB to hard disk (mbr)
    2. Τροποποίηση αν θέλουμε και εγκατάσταση του grub στο mbr εκκινώντας από το εγκατεστημένο Linux συστήμα.
      1. Πληκτρολογείστε στο grub> configfile (hd0,6)/boot/grub/menu.lst. Θα φορτωθεί το μενού με τους πυρήνες του Linux
      2. Αφού εκκινήσουμε, μπαίνουμε στο γραφικό περιβάλλον και ανοίγουμε μια κονσολά.
      3. Μπαίνουμε ως υπερχρήστης με su
      4. Φορτώστε την κατάτμηση /boot με την εντολή:
        • mount /boot.
      5. Αν θέλουμε επεξεργαζόμαστε το αρχείο menu.lst με την εντολή:
        • gedit /boot/grub/menu.lst&
      6. Εγκαθιστούμε πάλι το 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 να τα διορθώσουμε όλα.

  1. Ανοίγουμε μια κονσόλα
    1. Αλλάζουμε σε χρήστη root με την εντολή:
      • su
    2. Εκκινούμε, και αφήνουμε ανοικτό το kdiskfree, για να δούμε πως αναγνωρίζει το linux τις κατατμήσεις:
      • kdf&
      • Δεξί κλικ στο τίτλο του παράθυρου του και επιλέξτε από το μενού Προχωρημένα την επιλόγά Διατήρηση πάνω από τα άλλα.
      • Για να ξεκαθαρίσετε καλύτερα, ποια κατάτμηση είναι ποιά, πάτηστε με δεξί κλικ πάνω τους και επιλέξτε προσάρτηση. Θυμηθείται όμως να αποπροσαρτήσετε μετά, οπωσδήποτε, την κατάτμηση ΒΟΟΤ αλλά και αυτές που δεν σας χρειάζονται αφού η προσάρτηση από το kdf γίνεται και με δικαιώματα εγγραφής.
    3. προσαρτούμε την κατάτμηση BOOT (π.χ. την hda5) στον φάκελο /boot με την εντολή:
      • mount -t reiserfs /dev/hda5 /boot
    4. Ανοίγουμε το αρχείο menu.lst του grub που αφορά το mbr για επεξεργασία με την εντολή:
      • kwrite /boot/grub/menu.lst&
      • Αλλάξτε στην γραμμή
        • configfile (hd0,x)/boot/grub/menu.lst,
      • το x με την σωστή τιμή. (Θυμηθείται το grub μετράει από το 0, άρα το hda7 είναι (hd0,6))
    5. Εγκαταστήστε πάλι το grub στο mbr με την εντολή:
      • grub-install hd0
    6. προσαρτούμε την ριζική κατάτμηση linux που μας ενδιαφέρει (π.χ. την hda7 που ήταν πριν τις αλλαγές hda8) με δεξί κλικ από το kdiskfree:
    7. Ανοίγουμε το αρχείο menu.lst του grub, που αφορά αυτήν την ριζική κατάτμηση linux, για επεξεργασία, π.χ:
      • kwrite /media/hda7/boot/grub/menu.lst&
      • Κάνουμε εύρεση του hda8 και αντικατάστασή του με hda7 σε όλο το αρχείο
      • Κάνουμε εύρεση του (hd0,7) και αντικατάστασή του με (hd0,6) σε όλο το αρχείο
    8. Ανοίγουμε το αρχείο /etc/fstab, που φορτώνει τις κατατμήσεις, κατά την εκκίνηση του ίδιου linux λειτουργικού, για επεξεργασία, π.χ:
      • kwrite /media/hda7/etc/fstab&
      • Αλλάζουμε όλες τις επηρεασμένες αριθμήσεις κατατμήσεων (hdax), ειδικά την ριζική (αλλιώς δεν θα εκκινήσει καν)
    9. Επαναλαμβάνουμε, για κάθε εγκατεστημένη linux διανομή, τα 2 προηγούμενα βήματα (αν δεν άλλαξε θέση η ριζική της κατάτμηση) ή τα 3 (αν άλλαξε).
    10. Αποπροσαρτούμε όλες τις κατατμήσεις, επανεκκινούμε και ευχόμαστε όλα να πήγαν καλά.

X Παραθυρικό Περιβάλλον και τερματικά

: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 <application>

Για το gnome χρησιμοποίησε

gksu <application>

Βέβαια αυτά δουλεύουν από οποιοδήποτε διαχειριστή παραθύρω και να είσαι αρκεί να είναι εγκατεστημένα!

Πολλαπλές απομακρυσμένες κονσόλες

Για να χρησιμοποιήσεις πολλαπλές απομακρυσμένες κονσόλες εκτέλεση την εντολή

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

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 ορισμός δρομολόγησης Για να ενεργοποιήσετε μια διασύνδεση, π.χ. 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 <dns_name>

kppp - Ρύθμιση USB Modem

Οι παρακάτω οδηγίες εφαρμόστηκαν στο εξωτερικό usb/serial isdn modem της intracom 1)

Για χρήση του 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). Για να το δημιουργήσουμε σαν υπηρεσία εκκίνησης δες οδηγίες στο Δημιουργία Νέας Προσωπικής Υπηρεσίας.

#!/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 <module name>

Για να εμφανίσεις πληροφορίες για ένα άρθρωμα

modinfo <module name>

Για να ενεργοποιήσεις / απενεργοποιήσεις αρθρώματα κατά την εκκίνηση

modconf

locate - εύρεση

Μπορείς να φτιάξεις μια βάση δεδομένων με όλα τα αρχεία με την εντολή

aptitude install slocate
updatedb

Στην συνέχεια εκτέλεση την εντολή locate με παράμετρο μέρος του ονόματος αρχείου που ψάχνεις. Είναι πολύ χρήσιμη ειδικά όταν ξέρεις το όνομα ενός αρχείου αλλά δεν γνωρίζεις που το έχει τοποθετήσει η διανομή Linux που χρησιμοποιέις

locate <name to search>

Μεταβλητές περιβάλλοντος

Για να δεις τις τιμές όλων των μεταβλητών περιβάλλοντος

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

Παράρτημα

Παραπομπές

1)
Παρέχεται στην Ελλάδα από τον ΟΤΕ όταν γίνεται εγκατάσταση isdn σύνδεσης
el/linux/tmp.txt · Last modified: Y/m/d H:i (external edit)