Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ



Σχετικά έγγραφα
ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ Κ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : Κατασκευή Ηλεκτρονικού Καταστήματος (e-shop) Σπουδαστές:

schema Άρθρο 2 Καθήκοντα

Χρηματοδότηση των Συλλόγων στην εποχή της κρίσης

Συνοπτική Παρουσίαση. Ελλάδα

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά

ΤΕΙ ΚΑΒΑΛΑΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής

Ατομικό ιστορικό νηπίου

ΠΑΡΟΥΣΙΑΣΗ ΤΩΝ ΓΕΝΙΚΩΝ ΚΑΙ ΕΙΔΙΚΩΝ ΟΡΩΝ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ «ΑΣΦΑΛΩΣ ΚΑΤΟΙΚΕΙΝ» ΚΟΙΝΟΧΡΗΣΤΟΙ ΧΩΡΟΙ

Ηλεκτρονική διακυβέρνηση με ανθρώπινη διάσταση. Καθηγητής B. Ασημακόπουλος

Η ΔΙΑΘΕΜΑΤΙΚΗ ΤΗΣ ΔΙΑΘΕΜΑΤΙΚΗΣ

1. Εισαγωγή. 2. Καταπολέμηση της φοροδιαφυγής

Σχολικός εκφοβισµός και γονείς

ΣΥΓΚΡΙΣΗ ΣΥΜΒΑΤΙΚΗΣ ΚΑΙ ΜΗΧΑΝΟΠΟΙΗΜΕΝΗΣ ΜΕΘΟΔΟΥ ΣΠΟΡΑΣ ΚΑΙ ΜΕΤΑΦΥΤΕΥΣΗΣ ΣΠΟΡΟΦΥΤΩΝ ΛΑΧΑΝΙΚΩΝ

ΚΕΦ. 1 Η ΛΟΓΙΣΤΙΚΗ ΚΑΙ Η ΣΗΜΑΣΙΑ ΤΗΣ ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

ΚΩ ΙΚΑΣ ΕΟΝΤΟΛΟΓΙΑΣ ΤΗΣ ΕΤΑΙΡΕΙΑΣ ΜΕ ΤΗΝ ΕΠΩΝΥΜΙΑ «ΠΑΠΟΥΤΣΑΝΗΣ ΑΝΩΝΥΜΗ ΒΙΟΜΗΧΑΝΙΚΗ ΚΑΙ ΕΜΠΟΡΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΤΑΝΑΛΩΤΙΚΩΝ ΑΓΑΘΩΝ»

11. Προϋπολογισμός Προϋπολογισμός και αποδοτικότητα δημοσίων υπηρεσιών: υφιστάμενη κατάσταση

ΕΡΓΑΛΕΙΑ ΣΥΜΒΟΥΛΕΤΙΚΗΣ

3o ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΗΡΑΚΛΕΙΟΥ σχολ. Έτος

αρχαιολόγος- μουσειολόγος- ξεναγός, ΜΑ

Πρακτικό εργαλείο. για την ταυτοποίηση πρώτου επιπέδου των θυμάτων παράνομης διακίνησης και εμπορίας. τη σεξουαλική εκμετάλλευση

Συνωμοσία Πυρήνων της Φωτιάς - Πυρήνας Αντάρτικου Πόλης

Κατερίνα Παναγοπούλου: Δημιουργώντας κοινωνικό κεφάλαιο την εποχή της κρίσης

ΕΓΚΑΤΑΣΤΑΣΗ ΣΤΟΙΒΑΣ LAMP (Linux-Apache-MySQL-php) ΣΤO UBUNTU. ΑΑ, Ιαν. 2013

Οικονομική αξιολόγηση συγκοινωνιακών έργων

Πρόγραμμα Σπουδών για το "Νέο Σχολείο"

ΠΑΙΔΑΓΩΓΙΚΗ ΣΧΟΛΗ (ΦΛΩΡΙΝΑ) ΤΜΗΜΑ ΝΗΠΙΑΓΩΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΔΙΔΑΚΤΙΚΗΣ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΠΑΡΑΓΩΓΗΣ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ

ΑΣΦΑΛΙΣΗ ΑΥΤΟΚΙΝΗΤΟΥ

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Δασικά Οικοσυστήματα και Τεχνικά Έργα

Βασικά σημεία διάλεξης

Σοφία Γιουρούκου, Ψυχολόγος Συνθετική Ψυχοθεραπεύτρια

ΕΝΗΜΕΡΩΤΙΚΟ ΈΓΓΡΑΦΟ Σ.Ε.Ε.Δ.Δ.Ε. ΟΙ ΕΠΙΒΑΡΥΝΣΕΙΣ ΤΟΥ ΝΕΟΥ ΦΟΡΟΛΟΓΙΚΟΥ

ΔΕΛΤΙΟ ΤΥΠΟΥ. Ελλείψεις στο φορολογικό νομοσχέδιο. Σοβαρές ελλείψεις στη νέα μορφή του φορολογικού νομοσχεδίου

Μαρία-Στεφανία-Γιάννης 1 ο Πρότυπο Πειραματικό Δημοτικό Σχολείο Θεσσαλονίκης Ε2 Π.Τ.Δ.Ε.-Α.Π.Θ

Ασυντήρητες και επικίνδυνες οικοδομές

Ευρετήριο πινάκων. Ασκήσεις και υπομνήματα

ΚΕΦΑΛΑΙΟ 3 ο ΤΟ ΜΕΛΛΟΝ ΤΗΣ ΕΥΡΩΠΑΪΚΗΣ ΕΝΩΣΗΣ. 3.1 Εισαγωγή

ΘΕΣΕΙΣ ΠΡΟΤΑΣΕΙΣ ΠΡΟΤΕΡΑΙΟΤΗΤΕΣ

Ο αθλητισμός εμπνέεται από την ειρήνη. Η ειρήνη εμπνέεται από τον αθλητισμό.

ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

Δρ.ΠΟΛΥΚΑΡΠΟΣ ΕΥΡΙΠΙΔΟΥ

Ασφάλεια στις εργασίες κοπής μετάλλων

Κύριε υπουργέ και όσοι υπάλληλοι βαθμολογούνται κάτω από τη βάση θα απολύονται;

Το ολοκαύτωμα της Κάσου

ΣΥΝΤΟΝΙΣΤΕΣ ΟΜΑΔΑΣ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ: ΟΜΑΔΑ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ:

ενεργοί πολίτες για τη Μήλο οι θέσεις μας Υποψηφιότητα Αντώνη Καβαλιέρου δημοτικές εκλογές

ΤΙΤΛΟΣ ΒΙΒΛΙΟΥ: Συνδικαλιστική εκπαίδευση, Συλλογικές συμβάσεις, Συλλογικές διαπραγματεύσεις.

ΜΗ ΤΥΠΙΚΟΤΗΤΑ ΚΑΙ ΜΗ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑ ΣΤΙΣ ΑΓΟΡΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΙΤΗΣΕΩΝ ΜΕΤΑΤΑΞΕΩΝ ΕΚΠΑΙΔΕΥΤΙΚΩΝ. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Υπουργείο Παιδείας και Θρησκευμάτων

γραμματισμό των νηπίων

289 ον Σύστημα Αεροπροσκόπων Αγίας Φύλας ΟΜΑΔΑ ΠΡΟΣΚΟΠΩΝ ΕΓΧΕΙΡΙΔΙΟ ΧΑΛΚΙΝΟΥ ΤΡΙΦΥΛΛΟΥ

ΠΑΓΚΥΠΡΙΑ ΟΡΓΑΝΩΣΗ ΕΛΛΗΝΩΝ ΔΑΣΚΑΛΩΝ (ΠΟΕΔ) ΤΑΚΤΙΚΗ ΠΑΓΚΥΠΡΙΑ ΣΥΝΔΙΑΣΚΕΨΗ ΓΕΝΙΚΩΝ ΑΝΤΙΠΡΟΣΩΠΩΝ ΛΟΓΟΔΟΣΙΑ ΤΟΥ Δ.Σ. ΓΙΑ ΣΧΟΛΙΚΟ ΕΤΟΣ

Σκοτεινές Ομάδες, Σέκτες, Τάγματα & Αδελφότητες. Συντάχθηκε απο τον/την Νεφέλη

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ

ΑΝΑΚΥΚΛΩΣΗ ΤΗΓΑΝΕΛΑΙΟΥ ΓΙΑΤΙ - ΠΩΣ - ΠΟΤΕ

Φλωρεντία, 10 Δεκεμβρίου 1513 Προς τον: ΦΡΑΓΚΙΣΚΟ ΒΕΤΤΟΡΙ, Πρέσβη της Φλωρεντίας στην Αγία Παπική Έδρα, Ρώμη. Εξοχώτατε Πρέσβη,

Αυτός που δεν μπορεί να δει τα μικρά πράγματα είναι τυφλός και για τα μεγαλύτερα. (Κομφούκιος, πχ)

«ΑΝΩ ΛΙΟΣΙΑ: ΤΟΠΙΚΗ ΙΣΤΟΡΙΑ, ΠΕΡΙΒΑΛΛΟΝ, ΠΡΟΚΛΗΣΕΙΣ, ΠΡΟΟΠΤΙΚΕΣ»

Η ελληνική κοινωνία απέναντι στην οικονομική κρίση

Το συνέδριο σας πραγματοποιείται σε μια εξαιρετικά δύσκολη συγκυρία για τον τόπο, την οικονομία της χώρας, την κοινωνία και τον κόσμο της εργασίας.

Παιδαγωγική ή Εκπαίδευση ΙΙ

ΔΙΑΧΕΙΡΙΣΗ ΔΗΜΟΣΙΟΥ ΧΡΕΟΥΣ ΣΕ ΧΩΡΕΣ ΤΗΣ ΕΥΡΩΖΩΝΗΣ

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

Η πρόκληση είναι ότι η πληροφορία που απαιτείται για τη βελτίωση αυτών των διεργασιών είναι παγιδευµένη στα διαχειριστικά συστήµατα.

Έργο :ΕΡΓΑΣΙΕΣ ΣΥΝΤΗΡΗΣΗΣ ΟΙΚΟΔΟΜΙΚΩΝ ΚΑΙ Η/Μ ΣΧΟΛΙΚΩΝ ΚΤΗΡΙΩΝ ΕΤΟΥΣ 2012 ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ. Τιμαριθμική 2010Δ 1 ΓΕΝΙΚΟΙ ΟΡΟΙ

Το ρολόι που κρατάς στα χέρια σου κρύβει ένα μυστικό: το μυστικό της κόκκινης ομάδας. Αν είσαι αρκετά τολμηρός, μπορείς κι εσύ να ενημερωθείς για τα

Kεντρικός συντονισμός πολιτικών, μόνιμοι υφυπουργοί, μείωση ειδικών συμβούλων, κατάργηση αναπληρωτών.

ΙΑΧΕΙΡΙΣΗ ΙΣΤΟΤΟΠΟΥ (Οδηγίες χρήσης και λειτουργιών) Έκδοση /10/2008

Ενώνουμε δυνάμεις. Δείγματα Γραφής. Δυναμικά μπροστά ΑΝΔΡΕΑΣ Ζ. ΚΥΠΡΙΑΝΟΥ. Βουλευτής

Πρώτη διδακτική πρόταση Χρωματίζοντας ένα σκίτσο

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

Εργαστηριακό Μάθημα 1

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

Τα Αναβολικά. Τα αναβολικά χωρίζονται στα φυσικά και στα συνθετικά.

Παγκόσμια Ημέρα Ψυχικής Υγείας

ΟΔΗΓΟΣ ΧΡΗΣΤΗ ΕΙΣΑΓΩΓΗ

ΠΛΗΡΟΦΟΡΙΑΚΟ ΕΝΤΥΠΟ ΑΡ.20. Φορολογική μεταρρύθμιση Κύπρου Ιούλιος 2002 Αύγουστος Γενικά

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

Μια «γριά» νέα. Εύα Παπώτη

ΦΙΛΟΣΟΦΙΑ ΤΟΥ ΔΙΚΑΙΟΥ. Ενότητα 7: Σχέση δικαίου-ηθικής-πολιτικής. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

ΓΕΝΙΚΕΣ ΑΡΧΕΣ ΑΧΡΗΜΑΤΗΣ ΚΟΙΝΩΝΙΑΣ

ΟΡΟΙ ΧΡΗΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ. ΙΔΡΥΜΑΤΟΣ ΜΠΟΔΟΣΑΚΗ (bodossaki.gr)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ

Εργαστηριακή εξάσκηση στις διαταραχές της κίνησης και της οπτικής αντίληψης. Διδάσκων :Α.Β.Καραπέτσας

Γνωρίζω, Αγαπώ & Φροντίζω το Σώμα μου

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 3: Το παράδειγμα της Τρέισι Λάτιμερ (συνέχεια) Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Περιβάλλον και Ανάπτυξη ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Γραμματικογιάννης Α. Ηλίας. Επιβλέπων: Καθηγητής Δ. Ρόκος

«Ειρήνη» Σημειώσεις για εκπαιδευτικούς

ΕΘΙΜΑ ΤΟΥ ΚΟΣΜΟΥ. Αγγελική Περιστέρη Α 2

ΤΟ ΝΟΣΟΚΟΜΕΙΟ ΧΡΕΙΑΖΕΤΑΙ ΤΗΝ ΣΤΗΡΙΞΗ ΟΛΩΝ ΜΑΣ

ΣΥΣΤΗΜΑ ΔΙΑΓΝΩΣΗΣ ΑΝΑΓΚΩΝ ΑΓΟΡΑΣ ΕΡΓΑΣΙΑΣ ΔΙΑΓΝΩΣΗ ΑΝΑΓΚΩΝ ΣΕ ΠΕΡΙΦΕΡΕΙΑΚΟ ΕΠΙΠΕΔΟ

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει

Δημήτρης Αγοραστός Ψυχολόγος

03-00: Βιομάζα για παραγωγή ενέργειας Γενικά ζητήματα εφοδιαστικών αλυσίδων

Transcript:

σελ. 1 Α.Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΔΙΑΧΕΙΡΙΣΗ ΧΡΗΣΤΩΝ ΔΙΚΤΥΟΥ ΜΕΣΩ ΙΣΤΟΣΕΛΙΔΑΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΤΣΕΤΣΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΠΟΥΔΑΣΤΕΣ ΣΑΡΗΜΑΝΩΛΗΣ ΧΡΗΣΤΟΣ ΚΟΡΚΟΥ ΕΥΑΓΓΕΛΙΑ ΚΑΒΑΛΑ, ΙΟΥΛΙΟΣ 2010

σελ. 2 Κατάλογος περιεχομένων Γενική περιγραφή της εφαρμογής...4 Σκοπός...4 Απαιτήσεις λογισμικού...5 Παρουσίαση της εργασίας...5 Απαραίτητα προγράμματα στο διακομιστή (server)...5 Διασύνδεση με την εφαρμογή -βασικοί χρήστες...6 Επικοινωνία με τον server :...6 Γενικές πληροφορίες για την SQL,PHP και εντολές για το σύστημα linux...7 SQL...7 Χειρισμός Δεδομένων της SQL (Data Manipulation)...8 Λίγα λόγια για την php...8 Τι μπορεί να κάνει η php;...8 Λίγα λόγια για την εγκατάσταση και τη διαμόρφωση της php...11 Διαγράμματα web server με την mysql...12 Διάγραμμα web server apache με την mysql...12 ΠΙΝΑΚΕΣ ΕΦΑΡΜΟΓΗΣ...18 Δομή Πίνακα για τον Πίνακα `users`...18 Δομή Πίνακα για τον Πίνακα sxoles...18 Δομή Πίνακα για τον Πίνακα tmimata...18 Δομή Πίνακα για τον Πίνακα linuxgroup...18 Διάγραμμα MOS...19 Μενού επιλογών της εφαρμογής...20 Είσοδος έξοδος χρηστών...20 Ο κώδικας που υλοποιεί την είσοδο...20 Το script που υλοποιεί την είσοδο....22 Ερώτημα (query) της sql για την είσοδο...22 Χρήστες...23 Προφίλ...24 Password...24 Προσθήκη...25 Ιστοσελίδα του χρήστη και τροποποίηση...26 Τροποποίηση και Διαδικασία FTP....26 Ο κώδικας που υλοποιεί την προσθήκη...29 Επεξήγηση κώδικα:...29 Ερώτημα (query) της sql για την προσθήκη....37 Διόρθωση...37 Διαγραφή...38 Σχολές...38 Τμήματα....39 Λεπτομέρειες...39 Το Ubuntu για Server...40 Υποστηριζόμενες αρχιτεκτονικές...40 Λογισμικό πιστοποιημένο στο Ubuntu...40 Αυτόματο LAMP (Linux, Apache, MySQL και PHP)...40 Εγκατάσταση προγραμμάτων στο Ubuntu...41 Μη αυτόματη εγκατάσταση LAMP Server...41

σελ. 3 Εγκατάσταση FTP Server...42 Εγκατάσταση Samba Server...44 Τι είναι η Sambα...44 Εγκατάσταση άλλων προγραμμάτων...45 Aπαραίτητες αλλαγές στο σύστημα Linux...46 Δημιουργία βάσης δεδομένων και απαραίτητων πινάκων της εφαρμογής...47 Βάση: `useradmin`...48 Δομή Πίνακα για τον Πίνακα `linuxgroup`...48 -- 'Αδειασμα δεδομένων του πίνακα `linuxgroup`...48 --...48 --...49 -- Δομή Πίνακα για τον Πίνακα `sxoles`...49 --...49 --...49 -- 'Αδειασμα δεδομένων του πίνακα `sxoles`...49 --...49 -- Δομή Πίνακα για τον Πίνακα `tmimata`...50 -- Άδειασμα δεδομένων του πίνακα `tmimata`...50 -- Δομή Πίνακα για τον Πίνακα `users`...51 -- 'Αδειασμα δεδομένων του πίνακα `users`...51 Επίλογος...52 Βιβλιογραφία...53

σελ. 4 ΕΦΑΡΜΟΓΗ : ΔΙΑΧΕΙΡΙΣΗ ΧΡΗΣΤΩΝ ΔΙΚΤΥΟΥ ΜΕΣΩ ΙΣΤΟΣΕΛΙΔΑΣ Γενική περιγραφή της εφαρμογής Σκοπός Η διαχείρηση χρηστών ενός δικτύου intranet μέσω ιστοσελίδας. Αναλυτικότερα οι διαχειριστές του δικτύου θα μπορούν : να καταχωρούν σε βάση δεδομένων μέσω φόρμας που θα βρίσκεται σε ιστοσελίδα νέους χρήστες. Θα μπορούν να τροποποιούν και να διαγράφουν τα στοιχεία των χρηστών που αυτοί δημιούργησαν Θα υπάρχει ένας ή περισσότεροι υπερδιαχειριστές που θα μπορούν να ελέγχουν και να τροποποιούν τα στοιχεία των χρηστών και των υπόλοιπων διαχειριστών. Τι θα μπορούν να κάνουν οι χρήστες του συστήματος Ο κάθε χρήστης θα έχει πρόσβαση στα αρχεία του μέσω του πρωτόκολλου κοινής χρήσης αρχείων samba και του πρωτοκόλλου ftp, από τον Η/Υ όπου εργάζεται όποιο λειτουργικό σύστημα κι αν χρησιμοποιεί. Ο κάθε χρήστης θα έχει δικό του χώρο για να δημοσιεύσει την ιστοσελίδα του εάν επιθυμεί.

σελ. 5 Απαιτήσεις λογισμικού Η εφαρμογή θα τρέχει σε διακομιστή Linux (server edition), αναλυτικά : apache web server με υποστήριξη php samba file server mysql database server ftp server προγράμματα linux bash script για τη διαχείρηση των χρηστών σε επίπεδο λειτουργικού συστήματος και ιστοσελίδες HTML σε συνεργασία με προγράμματα php script για την υλοποίηση της επικοινωνίας φόρμας βάσης δεδομένων MySql Παρουσίαση της εργασίας Για την παρουσίαση της εργασίας θα χρησιμοποιηθεί το πρόγραμμα παρουσιάσεων του ανοικτού λογισμικού OpenOffice. Στην παρουσίαση θα φαίνεται αναλυτικά ο τρόπος εργασίας από την αρχή, θα φαίνονται και οι οδηγίες για την εγκατάσταση των προγραμμάτων server, οι εντολές sql για το στήσιμο των απαραίτητων πινάκων στη βάση δεδομένων και ο κώδικας όλων των χρησιμοποιούμενων script. Θα γίνει χρήση του δωρεάν λογισμικού Virtual Machine στο οποίο θα τρέχει το λειτουργικό σύστημα Linux server με τις απαραίτητες εφαρμογές Θα γίνει χρήση ενός web browser (Firefox) για να γίνει η επίδειξη του τελικού προγράμματος. Απαραίτητα προγράμματα στο διακομιστή (server) 1. Η εφαρμογή θα τρέχει σε διακομιστή Linux, διανομή Ubuntu. Για λόγους εξοικονόμησης πόρων χρησιμοποιήσαμε το Ubuntu Server έκδοση δηλαδή χωρίς γραφικό περιβάλλον. Το μηχάνημα απαιτεί μόνο 256 Mbytes RAM ενώ το γραφικό περιβάλλον (που είναι βέβαια και πολύ πιο εύχρηστο) απαιτεί τουλάχιστο 512 Mbytes. 2. Επειδή θέλουμε τα στοιχεία των χρηστών να αποθηκεύονται κάπου θα πρέπει να κάνουμε εγκατάσταση μια βάση δεδομένων, την mysql. 3. Επειδή θέλουμε ο κάθε χρήστης του δικτύου να έχει το δικό του χώρο δημοσίευσης ιστοσελίδας αλλά και να διαχειριζόμαστε τους χρήστες μέσω ιστοσελίδας θα πρέπει να κάνουμε εγκατάσταση ένα web server, τον apache 4. Η γλώσσα προγραμματισμού στην οποία θα φτιάξουμε τα προγράμματα για να πετύχουμε τη διαχείριση των χρηστών είναι η php5. 5. Επειδή θέλουμε ο κάθε χρήστης του δικτύου να έχει πρόσβαση στο το δικό του χώρο αποθήκευσης μέσω του ftp θα κάνουμε εγκατάσταση τον server proftpd. 6. Επειδή θέλουμε ο κάθε χρήστης του δικτύου να έχει πρόσβαση στο το δικό του χώρο αποθήκευσης μέσω της κοινής χρήστης αρχείων και φακέλων των windows θα κάνουμε εγκατάσταση τον server samba.

σελ. 6 Διασύνδεση με την εφαρμογή -βασικοί χρήστες Επικοινωνία με τον server : Για να δούμε αν επικοινωνούμε με το server από τη γραμμή εντολών των windows δίνουμε την εντολή : ping ubu Για να κάνουμε login στο linux ως διαχειριστής δίνουμε στην προτοπή login root και password server Για να συνδεθούμε στο Linux από τα windows μέσω της κοινής χρήστης αρχείων και φακέλων των windows στη γραμμή εντολών των windows δίνουμε την εντολή : net use x: \\ubu\manager /u:manager * και δίνουμε password manager δηλ. Δημιουργούμε το δίσκο x: που δίνει τη διαδρομή του δικτύου \\ubu\manager στην οποία συνδεόμαστε με username manager. Το * στην εντολή σημαίνει ότι θα μας ζητηθεί το password. Έτσι έχουμε συνδεθεί ως χρήστης manager. Στο Linux γενικά αποφεύγουμε να δώσουμε απομακρυσμένη πρόσβαση στον root (ο γενικός διαχειριστής σε κάθε Linux) για λόγους ασφαλείας, κι έτσι δημιουργήσαμε στο Linux τον εναλλακτικό χρήστη manager που μπορεί να διαχειρίζεται την εφαρμογή. Οι χρήστες που δημιουργούνται από την εφαρμογή έχουν το δικό τους username και password. Αν θέλουμε να συνδεθούμε στο Linux μέσω του πρωτοκόλλου FTP θα χρειαστούμε ένα πρόγραμμα ftp client όπως το WS-FTP που παρέχει την έκδοση student δωρεάν. Η σύνδεση FTP γίνεται αν στη διεύθυνση server βάλουμε ubu και κάνουμε login με το λογαριασμό manager με password manager. Οι χρήστες που δημιουργούνται από την εφαρμογή έχουν το δικό τους username και password. Για τη διαχείρηση της βάσης mysql στη γραμμή διευθύνσεων του browser (π.χ. Firefox) : http://ubu/phpmyadmin/ και login : root/123 Για τη διαχείρηση της εφαρμογής στη γραμμή διευθύνσεων του browser (π.χ. Firefox): http://ubu/manager/ και login : superadmin/super

σελ. 7 Γενικές πληροφορίες για την SQL,PHP και εντολές για το σύστημα linux. SQL Ιστορικά στοιχεία H SQL (αγγλ. αρκτ. από το Structured Query Language) είναι μία γλώσσα υπολογιστών στις βάσεις δεδομένων, που σχεδιάστηκε για τη διαχείριση δεδομένων, σε ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (Relational Database Management System, RDBMS) και η οποία, αρχικά, βασίστηκε στη σχεσιακή άλγεβρα. Η γλώσσα περιλαμβάνει δυνατότητες ανάκτησης και ενημέρωσης δεδομένων, δημιουργίας και τροποποίησης σχημάτων και σχεσιακών πινάκων, αλλά και ελέγχου πρόσβασης στα δεδομένα. Η SQL ήταν μία από τις πρώτες γλώσσες για το σχεσιακό μοντέλο του Edgar F. Codd, στο σημαντικό άρθρο του το 1970, και έγινε η πιο ευρέως χρησιμοποιούμενη γλώσσα για τις σχεσιακές βάσεις δεδομένων. Τι είναι η SQL; Η SQL αποτελεί μια στάνταρτ γλώσσα του ANSI για να μπορούμε να έχουμε πρόσβαση σε βάσεις δεδομένων. Τα αρχικά SQL σημαίνουν Structured Query Language, δηλ. Δομημένη Γλώσσα Ερωτημάτων. Η SQL μάς δίνει τη δυνατότητα να έχουμε πρόσβαση σε μια βάση δεδομένων (database). Η SQL αποτελεί μια στάνταρτ γλώσσα του ANSI (ANSI standard language). Η SQL μπορεί να εκτελέσει ερωτήματα (queries) σχετικά με μια βάση δεδομένων. Η SQL μπορεί να ανακτήσει δεδομένα από μια βάση δεδομένων. Η SQL μπορεί να εισαγάγει νέες εγγραφές σε μια βάση δεδομένων. Η SQL μπορεί να διαγράψει εγγραφές από μια βάση δεδομένων. Η SQL μπορεί να ενημερώσει εγγραφές σε μια βάση δεδομένων. Η SQL είναι πολύ εύκολη στην εκμάθηση. Η SQL αποτελεί ένα στάνταρτ του ANSI (American National Standards Institute) για να μπορούμε να έχουμε πρόσβαση σε συστήματα βάσεων δεδομένων. Οι εντολές της SQL χρησιμοποιούνται για να ανακτήσουμε (retrieve) και να ενημερώσουμε (update) δεδομένα σε μια βάση δεδομένων (database). Η SQL συνεργάζεται με προγράμματα βάσεων δεδομένων όπως είναι τα εξής : Access, Informix, Microsoft SQL Server, Oracle, Sybase και πολλά άλλα.

σελ. 8 Χειρισμός Δεδομένων της SQL (Data Manipulation) Όπως υπονοεί και το όνομά της, η SQL είναι μια σύνταξη για την εκτέλεση ερωτημάτων (queries). Αλλά η γλώσσα της SQL περιλαμβάνει επίσης μια σύνταξη για την ενημέρωση εγγραφών, την εισαγωγή νέων εγγραφών και τη διαγραφή υπαρχόντων εγγραφών. Αυτές οι εντολές ερωτημάτων και ενημέρωσης αποτελούν μαζί τη Γλώσσα Χειρισμού Δεδομένων (Data Manipulation Language, DML) που αποτελεί κομμάτι της SQL : SELECT - εξάγει δεδομένα από μια βάση δεδομένων. UPDATE - ενημερώνει δεδομένα σε μια βάση δεδομένων. DELETE - διαγράφει δεδομένα από μια βάση δεδομένων. Λίγα λόγια για την php. Τι μπορεί να κάνει η php; Η PHP επικεντρώνεται κυρίως στο server-side scripting, έτσι μπορούμε να κάνουμε οτιδήποτε, όπως: να μαζέψει δεδομένα, να παράγει δυναμικό περιεχόμενο σελίδων, ή να στείλει και να πάρει cookies. Η PHP μπορεί να χρησιμοποιηθεί σε όλα τα κύρια λειτουργικά συστήματα, συμπεριλαμβανομένου του Linux, πολλών εκδοχών του Unix (HP-UX, Solaris και OpenBSD), Microsoft Windows, Mac OS X, RISC OS και πιθανώς σε άλλα. Η PHP υποστηρίζει επίσης τους Apache, Microsoft Internet Information Server, Personal Web Server, Netscape και iplanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, και πολλούς άλλους webserver. Για την πλειοψηφία των server η PHP έχει ένα module, για τους υπόλοιπους η PHP μπορεί να λειτουργήσει ως ένας CGI επεξεργαστής. Έτσι με την PHP έχετε την ελευθερία επιλογής ενός λειτουργικού συστήματος και ενός web server. Επιπλέον, έχετε επίσης την ελευθερία να χρησιμοποιήσετε συναρτησιακό (procedural) ή αντικειμενοστραφή (object oriented) προγραμματισμό ή μια ανάμειξη τους. Αν και η παρούσα έκδοση δεν υποστηρίζει όλα τα πρότυπα χαρακτηριστικά, μεγάλες βιβλιοθήκες κώδικα και μεγάλες εφαρμογές (συμπεριλαμβανομένης και της βιβλιοθήκης PEAR) είναι γραμμένες μόνο με αντικειμενοστραφή κώδικα.

σελ. 9 Έτσι με την PHP έχετε την ελευθερία επιλογής ενός λειτουργικού συστήματος και ενός web server. Με την PHP δεν είστε περιορισμένοι να εξάγετε HTML. Οι δυνατότητες της PHP συμπεριλαμβάνουν την εξαγωγή εικόνων, αρχείων PDF, ακόμη και ταινίες Flash (χρησιμοποιώντας τα libswf και Ming) παράγονται αμέσως. Μπορείτε επίσης να εξάγετε εύκολα οποιοδήποτε κείμενο όπως XHTML και οποιοδήποτε άλλο XML αρχείο. Η PHP μπορεί να δημιουργεί αυτόματα αυτά τα αρχεία και να τα αποθηκεύει στο σύστημα αρχείων, αντί να τα εκτυπώνει, αποτελώντας έτσι μια server-side cache για το δυναμικό σας περιεχόμενο. Ένα από τα πιο δυνατά και σημαντικά χαρακτηριστικά της PHP είναι η υποστήριξη που έχει για ένα μεγάλο σύνολο βάσεων δεδομένων. Η συγγραφή μιας σελίδας που υποστηρίζει βάσεις δεδομένων είναι εξαιρετικά απλή. Οι εξής βάσεις δεδομένων υποστηρίζονται μέχρι στιγμής: Adabas D dbase Empress FilePro (read-only) Hyperwave IBM DB2 Informix Ingres InterBase FrontBase msql Direct MS-SQL MySQL ODBC Oracle (OCI7 and OCI Ovrimos PostgreSQL Solid Sybase

Velocis Unix dbm σελ. 10 Έχουμε επίσης μια αφαιρετική επέκταση DBX βάσεων δεδομένων (DBX database abstraction extension) που σας επιτρέπει διάφανα να χρησιμοποιείτε οποιαδήποτε βάση δεδομένων υποστηρίζεται από αυτή την επέκταση. Επιπλέον η PHP υποστηρίζει το ODBC, το Open Database Connection standard (Ανοιχτό πρότυπο Σύνδεσης Βάσεων δεδομένων) έτσι μπορείτε να συνδεθείτε σε οποιαδήποτε βάση δεδομένων που υποστηρίζει αυτό το παγκόσμιο πρότυπο. Η PHP έχει επίσης υποστήριξη για επικοινωνία με άλλες υπηρεσίες χρησιμοποιώντας πρωτόκολλα όπως LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (στα Windows) και αμέτρητα άλλα. Η PHP έχει ακόμη υποστήριξη για την περίπλοκη ανταλλαγή δεδομένων WDDX μεταξύ σχεδόν όλων των Web programming γλωσσών. Μιλώντας για δια-επικοινωνία, η PHP υποστηρίζει instantiation αντικειμένων Java και τα χρησιμοποιεί διάφανα σαν αντικείμενα PHP. Μπορείτε επίσης να χρησιμοποιήσετε την CORBA επέκταση μας για να προσπελάσετε remote (απομακρυσμένα) αντικείμενα. Η PHP έχει εξαιρετικά χρήσιμα χαρακτηριστικά επεξεργασίας κειμένων, από την POSIX επέκταση ή τις Perl regular expressions μέχρι XML parsing αρχείων. Για τη μεταγλώττιση και την πρόσβαση αρχείων XML, υποστηρίζουμε τα πρότυπα SAX και DOM. Μπορείτε να χρησιμοποιήσετε την XSLT επέκταση μας για να μετατρέπετε τα XML αρχεία σε άλλες μορφές. Καθώς χρησιμοποιείτε την PHP στον τομέα του ecommerce, θα βρείτε τις Cybercash payment, CyberMUT, VeriSign Payflow Pro και CCVS συναρτήσεις χρήσιμες για τα online προγράμματα πληρωμής σας. Τελευταίο αλλά σημαντικό, έχουμε πολλές άλλες ενδιαφέρουσες επεκτάσεις, τις mnogosearch search engine συναρτήσεις, πολλά εργαλεία συμπίεσης (gzip, bz2), μετατροπές ημερολογίου, μεταφράσεις κ.α.

σελ. 11 Λίγα λόγια για την εγκατάσταση και τη διαμόρφωση της php Σε αυτό το σημείο θα δούμε πως γίνεται η εγκατάσταση της php με το Apache σε σύστημα linux/unix. Η διαδικασία είναι περίπου ίδια για οποιαδήποτε έκδοση του λειτουργικού συστήματος Unix. Αν και μπορούμε να βρούμε προ-μεταγλωττισμένες εκδόσεις της php για το λειτουργικό σύστημα που χρησιμοποιείτε,η μεταγλώττιση της php από το πηγαίο κώδικα που μας παρέχει υψηλότερο βαθμό ελέγχου όσον αφορά στις λειτουργίες που μπορούμε να ενσωματώσουμε στο εκτελέσιμο αρχείο μας. Για να μεταφέρουμε στον υπολογιστή μας τα αρχεία διανομής της php μεταβαίνουμε στην αρχική σελίδα για την php στην διεύθυνση http://www.php.net/ και ακολουθούμε τη σύνδεση προς την ενότητα downloads. Επιλέγουμε την πιο πρόσφατη έκδοση του πηγαίου κώδικα. Για την έκδοση που θα επιλέξουμε εμείς,το όνομα του αρχείου θα είναι κάτι του στυλ php-version.tar.gz, όπου το version αντιπροσωπεύει τον πιο πρόσφατο αριθμό έκδοσης. Το αρχείο αυτό είναι ένα συμπιεσμένο tar αρχείο,οπότε θα πρέπει πρώτα να το αποσυμπιέσετε. #> tar xvzf php-version.tar.gz Τοποθετούμε το αρχείο που μεταφέραμε σε ένα κατάλογο ο οποίος χρησιμοποιείται αποκλειστικά για αρχεία κώδικα όπως ο usr/src/ ή ο usr/local/src/. Αφού αποσυμπιέσετε το αρχείο,θα πρέπει να μεταβείτε στον κατάλογο της php: #> cd php-version Μέσα σε αυτόν τον κατάλογο θα βρούμε ένα script με όνομα configure. Το script αυτό δέχεται επιπλέον πληροφορίες οι οποίες παρέχονται όταν τρέχετε από την γραμμή εντολής. Αυτά τα ορίσματα γραμμής εντολής ελέγχου ποιες λειτουργίες και δυνατότητες θα υποστηρίζει η php. Όταν ολοκληρωθεί η εκτέλεση του script configure και εμφανιστούν αρκετές πληροφοριακές σημειώσεις από την ομάδα της php,θα επιτρέψουμε στην προτροπή του συστήματος. Στην συνέχεια εισάγουμε την εντολή make ακολουθούμενη από την εντολή make install. Οι εντολές αυτές ολοκληρώνουν την διαδικασία μεταγλώττισης και εγκατάστασης της php και μας επαναφέρουν στην προτροπή του συστήματος.

σελ. 12 Διαγράμματα web server με την mysql. Στο παρακάτω διάγραμμα φαίνεται πως συνδέεται ο web server apache με την mysql όπου είναι αποθηκευμένα τα δεδομένα. Η γλώσσα script php που είναι τρίτης γενιάς υποβάλει ερωτήματα τέταρτης γενιάς στην mysql και στέλνει τα αποτελέσματα στο web server. Ο χρήστης από το client για παράδειγμα από το web browser Firefox επικοινωνεί μόνο με το web server. Δεν επικοινωνεί απ ευθείας με την mysql. Στην συγκεκριμένη εφαρμογή όταν για παράδειγμα θέλουμε να προσθέσουμε έναν χρήστη συμπληρώνουμε μια φόρμα HTML με τα στοιχεία του χρήστη. Ο χρήστης προστίθεται στη βάση δεδομένων mysql με την εντολή insert και ταυτόχρονα εκτελείται μέσω της PHP ένα script με εντολές Linux το οποίο προσθέτει το χρήστη στο λειτουργικό σύστημα. Αυτά βέβαια γίνονται μετά τους απαραίτητους ελέγχους. Για παράδειγμα αν ο χρήστης υπάρχει ήδη το προηγούμενο σενάριο δεν πετυχαίνει Διάγραμμα web server apache με την mysql Web server php mysql http client firefox

Βασικές Εντολές Πλοήγησης στο Λειτουργικό Σύστημα Linux 1. pwd print working directory Εμφανίζει το directory στο οποίο βρισκόμαστε. Για παράδειγμα: $ pwd /home/ugrads/cl2004/nbathana 2. cd change directory Με την εντολή cd αλλάζουμε directory. Σύνταξη εντολής: cd [directory] Παραδείγματα: cd χωρίς κανένα όρισμα, μεταφέρει τον χρήστη το home directory του cd / μεταφέρει τον χρήστη στο root directory cd.. μεταφέρει τον χρήστη ένα directory πιο πάνω από αυτό που βρίσκεται cd../.. μεταφέρει τον χρήστη δύο directories πιο πάνω από αυτό που βρίσκεται cd /usr/tmp μεταφέρει τον χρήστη στο directory με απόλυτο path /usr/tmp cd /share/lib μεταφέρει τον χρήστη στο directory share/lib (το οποίο δεν γράφεται εδώ σαν relative path άρα προϋποθέτει ότι το share/lib βρίσκεται κάτω από το directory στο που βρίσκεται ήδη ο χρήστης) cd ~john/papers μεταφέρει τον χρήστη από οποιοδήποτε directory στο directory με όνομα papers που βρίσκεται κάτω από το home directory του χρήστη john (ο συμβολισμός john μεταφράζεται από το σύστημα σαν το home directory του χρήστη με username john) 3. mkdir make directory Η εντολή mkdir δημιουργεί directories Σύνταξη εντολής: mkdir [παράμετροι] directory σελ. 13

Χρήσιμες παράμετροι: -p δημιουργεί το directory και μαζί τα parent directories αν δεν υπάρχουν -m mode δημιουργεί το directory και δίνει τα permissions που ορίζονται με το mode Παραδείγματα: $ mkdir /home/test $ mkdir -p test1/test2/test3 4. rmdir remove directory Σβήνει ένα directory με την προϋπόθεση ότι είναι άδειο Παραδείγματα: $ rmdir test $ rmdir /home/test/test1 5. ls list directory contents Δείχνει τα περιεχόμενα ενός directory και μαζί ό,τι στοιχεία ζητηθούν από τις παραμέτρους της. Σύνταξη εντολής: ls [παράμετροι] [όρισμα] Χρήσιμες παράμετροι: -a δείχνει όλα τα αρχεία και τα directories που υπάρχουν μέσα σε ένα directory. -d δείχνει μόνο τα ονόματα των directories και όχι τα αρχεία μέσα στο directory -g εμφανίζει το group στο οποίο ανήκει το αρχείο -l δείχνει τα περιεχόμενα του directory αναλυτικά Παραδείγματα: $ls debug Linux-2.4 misc fedora share $ ls -a. debug Linux-2.4 misc fedora.. share $ ls -la wx-sr-x workshop acs 512 Jun 7 11:12 wx-xr-x 6 root sys 512 May 20 09:59 σελ. 14

6. cp copy Η εντολή cp αντιγράφει αρχεία ή directories Σύνταξη εντολής: cp [παράμετροι] [argument] Χρήσιμες παράμετροι: -i (interactive mode) περιμένει για επιβεβαίωση των ενεργειών της από το χρήστη πριν να εκτελέσει οτιδήποτε -r αντιγράφει ένα directory δημιουργώντας αντίγραφα και από directories που ίσως υπάρχουν μέσα σε αυτό, διατηρώντας την αρχική δομή Παραδείγματα για την cp: $ cp old_filename new_filename 7. mv move Η εντολή mv μετακινεί αρχεία ή directories Σύνταξη εντολής: $ mv [παράμετροι] [argument] Χρήσιμες παράμετροι: -i (interactive mode) περιμένει για επιβεβαίωση των ενεργειών της από το χρήστη πριν να εκτελέσει οτιδήποτε -f μετακινεί το αρχείο ή το directory ακόμα και αν χρειαστεί να γράψει πάνω σε αρχείο που υπάρχει ήδη Παραδείγματα: mv old_filename new_filename 8. rm remove Η εντολή rm σβήνει αρχεία ή directories Σύνταξη εντολής: rm [παράμετροι] [argument] Χρήσιμες παράμετροι: -i περιμένει για επιβεβαίωση πριν να εκτελέσει την μετακίνηση 9. chmod change mode Η εντολή chmod αλλάζει τα permissions ενός αρχείου ή ενός directory. Η εντολή echo τυπώνει στην οθόνη το όρισμα που παίρνει σελ. 15

Σύνταξη εντολής: echo [όρισμα] Παραδείγματα: $ echo This is a test 11.cat concatenate files Με την εντολή cat προβάλλουμε τα περιεχόμενα ενός αρχείου Σύνταξη εντολής: $ cat filename(s) Παραδείγματα: $ cat file1 file2 file2 12. more Η εντολή more έχει 2 χρήσεις: (α) προβολή αρχείων στην οθόνη (όπως το cat) αλλά εάν το αρχείο καταλαμβάνει χώρο περισσότερο από μία οθόνη, η προβολή διακόπτεται σε κάθε μία οθόνη και ο χρήστης μετακινείται στην επόμενη με τη χρήση του spacebar. Σύνταξη εντολής: $ more filename (β) χρήση σε συνδυασμό με άλλες εντολές προβολής (π.χ. ls), έτσι ώστε εάν η προβολή στοιχείων υπερβαίνει την μία οθόνη, να διακόπτεται και ο χρήστης μετακινείται στην επόμενη με τη χρήση του spacebar. Παράδειγμα: $ ls more (ο χαρακτήρας βρίσκεται στο πλήκτρο που δίνει την ανακάθετο (backslash) 13.man Η εντολή man (manual) εμφανίζει στην οθόνη την περιγραφή και οδηγίες σχετικά με κάποια από τις εντολές του συστήματος. Είναι ένας πολύ καλός τρόπος για να μάθει κανείς την χρήση των εντολών του συστήματος. Σύνταξη εντολής: man [παράμετροι] όνομα εντολής ή keyword σελ. 16

Χρήσιμες παράμετροι: -k ψάχνει το σύνολο των οδηγιών χρήσης του συστήματος (manual pages) για αναφορές πάνω στην λέξη κλειδί που δίνεται Παράδειγμα: $ man man (εμφανίζει οδηγίες για την χρήση και τις δυνατότητες της εντολής man) $ man ls (εμφανίζει οδηγίες για την χρήση και τις δυνατότητες της εντολής ls) $ man -k date (εμφανίζει τα manual pages μέσα στα οποία εμφανίζεται η λέξη "κλειδί" date) 14.passwd Αλλάζει τον κωδικό πρόσβασης (password) ενός χρήστη Σύνταξη εντολής: passwd [username] Παράδειγμα: $ passwd Enter old passwd: ******** Enter new passwowd: ********* Confirm new password: ******** σελ. 17

σελ. 18 ΠΙΝΑΚΕΣ ΕΦΑΡΜΟΓΗΣ Δομή Πίνακα για τον Πίνακα `users` ΠΕΔΙΟ ΤΥΠΟΣ ΜΗΚΟΣ ΠΕΡΙΓΡΑΦΗ loginuser varchar 15 Όνομα εισόδου χρήστη στο server πρωτεύον κλειδί pasuser varchar 20 Password χρήστη loginadmin varchar 10 Διαχειριστής που έχει δημιουργήσει και διαχειρίζεται το λογαριασμό του χρήστη. name varchar 15 Πραγματικό όνομα του χρήστη sname varchar 15 Πραγματικό Επώνυμο του χρήστη linuxgroup varchar 12 Ομάδα στην οποία ανήκει ο χρήστης. Συνδέεται με τον πίνακα linuxgroup idsxoli Int 11 Κωδικός Σχολής συνδέεται με τον πίνακα sxoles idtmima Int 11 Κωδικός τμήματος συνδέεται με τον πίνακα tmimata date date power Int Ημερομηνία δημιουργίας λογαριασμού. 11 Αριθμός που θα δείχνει πόσο ισχυρός είναι (1-5). Αν έχει το βαθμό 5 θα μπορεί να διαχειρίζεται τους λογαριασμούς όλων των χρηστών και διαχειριστών. Δομή Πίνακα για τον Πίνακα sxoles ΠΕΔΙΟ ΤΥΠΟΣ ΜΗΚΟΣ ΠΕΡΙΓΡΑΦΗ idsxoli Int 11 Κωδικός Σχολής αυτόματη αρίθμηση title varchar 30 Τίτλος σχολής Δομή Πίνακα για τον Πίνακα tmimata ΠΕΔΙΟ ΤΥΠΟΣ ΜΗΚΟΣ idtmima ΠΕΡΙΓΡΑΦΗ Κωδικός Τμήματος αυτόματη αρίθμηση idsxoli Int 11 Κωδικός Σχολής συνδέεται με τον πίνακα sxoles title varchar 50 Τίτλος τμήματος Δομή Πίνακα για τον Πίνακα linuxgroup ΠΕΔΙΟ ΤΥΠΟΣ ΜΗΚΟΣ ΠΕΡΙΓΡΑΦΗ linuxgroup varchar 12 Πραγματική ομάδα στο Linux που πρέπει να υπάρχει. remarks varchar 50 Σχόλια για την ομάδα.

σελ. 19 Διάγραμμα MOS Στο διάγραμμα φαίνονται οι συνδέσεις μεταξύ των πινάκων : O κάθε user έχει τον κωδικό της σχολής του (idsxoli) και συνδέεται με τον πίνακα sxoles. Κάθε σχολή έχει κάποια τμήματα. Αυτά βρίσκονται στον πίνακα tmimata και οι πίνακες συνδέονται με το κοινό πεδίο idtmima. loginuser users idsxoli sxoles idtmima tmimata

Μενού επιλογών της εφαρμογής Η εφαρμογή παρέχει τις παρακάτω βασικές λειτουργίες : Είσοδος έξοδος χρηστών. Ο κώδικας που υλοποιεί την είσοδο. Παρακάτω φαίνεται το script της εισόδου. 1. <?php 2. // 3. //login.php 4. // 5. //Είσοδος στο σύστημα. Θέτει τις παρακάτω γενικές μεταβλητές : 6. // $_SESSION['admin'] είναι το loginname του χρήστη που έκανε είσοδο 7. // $_SESSION['power'] είναι ο βαθμός διαχείρισης που έχει. 5 οι superadmins 8. // 9. // 10. session_start(); 11. require_once("head.php"); 12. 13. if(isset($_session['admin'])) 14. echo "Έχεις ήδη συνδεθεί με unsername : ".$_SESSION['admin']; 15. else{ 16. if(isset($_post['admin'])) //αν έχουν συμπληρωθεί τα πεδία της φόρμας 17. { 18. $admin=$_post['admin']; 19. $pwdadmin=$_post['pwdadmin']; 20. $msg='mήνυμα : '; σελ. 20

21. 22. σελ. 21 require_once("connect.php"); $isadmin = mysql_query("select * FROM users WHERE loginuser='$admin' and pasuser='$pwdadmin'"); 23. $admin_ok = mysql_num_rows($isadmin); 24. $row = mysql_fetch_array($isadmin, MYSQL_ASSOC); 25. if($admin_ok == 0) { 26. $msg=$msg. "Λάθος username / KΩΔΙΚΟΣ"; 27. } 28. //elseif ($row['power']<3) $msg="μόνο για"; 29. else{ 30. $myip=$_server['remote_addr']; //192.168.1.1 31. $msg="γεια σου $admin από IP $myip"; 32. $_SESSION['admin']=$admin; 33. $_SESSION['power']=$row['power']; 34. 35. echo '<script>parent.topmenu.location = "topmenu.php"</script>'; 36. } 37. }else{// εμφάνιση των πεδίων της φόρμας 38. print("<h3>είσοδος στο σύστημα διαχείρισης Χρηστών </h3>"); 39. print("<p><form "."action=\"{$_server['php_self']}\" "."method=\"post\">". 40. "<table id='mytable' cellspacing='0'>". 41. "<tr><th>username : <td><input type=text name=admin value=$admin>". 42. "<tr><th>kωδικοσ : <td><input type=password name=pwdadmin value=$pwdadmin>". 43. "<tr><th><td><input type='submit' value='εiσοδοσ'>". 44. "</table>". 45. "</form>"); 46. } 47. print($msg); 48. $msg=''; 49. } 50.?> 51.

σελ. 22 Το script που υλοποιεί την είσοδο. Αρχικά στη γραμμή 13 ελέγχουμε αν έχει συνδεθεί ο χρήστης. Στη συνέχεια στη γραμμή 16 ελέγχουμε αν έχει συμπληρώσει τη φόρμα. Στην γραμμή 23 βλέπουμε σε πόσες γραμμές βρέθηκε ο χρήστης, αν αυτό είναι 0 σημαίνει ότι δε βρέθηκε κάπου ο χρήστης. Διαφορετικά βγάζουμε ένα μήνυμα χαιρετισμού στο χρήστη. Αυτό συμβαίνει στις γραμμές απο 30 εως 33. Αν δεν έχει συμπληρωθεί η φόρμα εισόδου τότε εκτελούνται οι γραμμές 38 έως 45. Ερώτημα (query) της sql για την είσοδο Αφού έχουμε πραγματοποιήσει τον έλεγχο στη γραμμή 13 για το αν έχει συνδεθεί ο χρήστης και αφού έχουμε πραγματοποιήσει τον έλεγχο στη γραμμή 16 για το αν έχει συμπληρωθεί η φόρμα κάνουμε το ερώτημα αναζήτησης των στοιχείων του χρήστη μέσα στον πίνακα users.

σελ. 23 Χρήστες. Εμφανίζονται οι χρήστες του συστήματος με τη δυνατότητα αναζήτησης χρηστών και εμφάνισης του χώρου της ιστοσελίδας τους πατώντας στο σύνδεσμο www. Αν επιλέξουμε εμφάνιση τότε βλέπουμε στην οθόνη τους χρήστες που έχει δημιουργήσει ο διαχειρηστής που έχει κάνει είσοδο.

σελ. 24 Προφίλ. Εμφανίζονται τα στοιχεία του χρήστη που έχει κάνει login. Password. Ο χρήστης μπορεί να δει το password των χρηστών που δημιούργησε. Αν σε περίπτωση που κάποιος ξεχάσει το password του η εφαρμογή δίνει την δυνατότητα εφόσον δεν είναι κλειστή, να πάει στον διαχειριστή και να του τον θυμίσει. Συμπληρώνοντας το username χρήστη, το επώνυμο του και επιλέγοντας το πλήκτρο εμφάνιση βλέπουμε τα στοιχεία του χρήστη και το κωδικό.

σελ. 25 Προσθήκη. Ο χρήστης μπορεί να προσθέσει τα πεδία του καινούργιου user που θα δημιουργήσει. Έχει τη δυνατότητα να επιλέξει την σχολή, το τμήμα, τον κωδικό, το ονοματεπώνυμο και την ισχύ του χρήστη. Στην ισχύ του χρήστη έχουμε την δυνατότητα να επιλέξουμε μια από τις τρεις παρακάτω επιλογές: 1 απλός χρήστης. 3 απλός διαχειριστής 5 superadmin Προσοχή! Το password πρέπει να έχει 7-20 χαρακτήρες μέσα στους οποίους να υπάρχουν κεφαλαία ή μικρά γράμματα (μόνο αγγλικά), τουλάχιστο 1 ψηφίο και ένα σύμβολο από τα!@#$%&. π.χ. Προτείνω το password : SWM$22&X

σελ. 26 Ιστοσελίδα του χρήστη και τροποποίηση. Όταν έχουμε δημιουργήσει ένα χρήστη, ο χρήστης μπορεί να μπει στην ιστοσελίδα του για να την τροποποιήσει μέσα από την κοινή χρήση των windows ή χρησιμοποιώντας το ftp client. Τροποποίηση και Διαδικασία FTP. Για να μπορέσουμε να επεξεργαστούμε την αρχική ιστοσελίδα του χρήστη πραγματοποιούμε τα παρακάτω βήματα. Από το μενού επιλέγουμε χρήστες και στη συνέχεια εμφάνιση. Επιλέγουμε το πεδίο WWW του χρήστη που θέλουμε. Τότε εμφανίζεται η πρώτη του ιστοσελίδα.

σελ. 27 Από το μενού της μηχανής αναζήτησης επιλέγουμε εργαλεία και fireftp. Από το μενού του fireftp επιλέγουμε edit συμπληρώνουμε τη φόρμα με τα στοιχεία του χρήστη και στη συνέχεια connect. Επιλέγουμε το φάκελο και κάνουμε download το αρχείο index.html και overwrite.

σελ. 28 Από το φάκελο tmp (C:\ptyxiaki\tmp), ανοίγουμε το αρχείο index.html με το πρόγραμμα EditPad Pro και επεξεργαζόμαστε το κείμενο που θέλουμε να εμφανίζεται στην ιστοσελίδα του χρήστη. Έπειτα από το fireftp επιλέγουμε το index.html που επεξεργαστήκαμε, κάνουμε upload και overwrite. Αφού κάνουμε ανανέωση της ιστοσελίδας εμφανίζονται τα νέα περιεχόμενα.

σελ. 29 Ο κώδικας που υλοποιεί την προσθήκη. Παρακάτω φαίνεται το script της προσθήκης. 1. #!/bin/sh 2. if [! -e /var/www/users/$1 ]; 3. then 4. sudo /bin/mkdir /var/www/users/$1 5. sudo /bin/ln -s /var/www/users/$1 /home/$1/www 6. sudo /bin/chown -R $1:$2 /var/www/users/$1 7. #!/bin/sh 8. sudo cat head.html >/var/www/users/$1/index.html 9. sudo echo \<h1\>my first web page\<h2\>$1>>/var/www/users/$1/index.html 10. sudo cat head.html >>/var/www/users/$1/index.html 11. fi Επεξήγηση κώδικα: Η πρώτη γραμμή δηλώνει ότι είναι script του linux shell(sh). Στη δεύτερη γραμμή γίνεται έλεγχος αν υπάρχει ήδη ο χρήστης που πάμε να δημιουργήσουμε. Το $1 είναι η παράμετρος του script που στέλνεται απο την PHP. Ελέγχει αν υπάρχει ο κατάλογος -e /var/www/users/$1, εάν δεν υπάρχει πάμε στην τέταρτη γραμμή και δημιουργούμε μέσα στον υποκατάλογο users τον υποκατάλογο του χρήστη όπου θα αποθηκεύει την σελίδα του. Στη γραμμή έκτη γραμμή η εντολή ln δημιουργεί έναν σύνδεσμο link προς αυτό το κατάλογο. Ο σύνδεσμος αυτός τοποθετείτε στον προσωπικό κατάλογο του χρήστη. Στην έβδομη γραμμή τροποποιούμε το chown. Η εντολή αυτή ορίζει τον ιδιοκτήτη ενός αρχείου. Στην προκειμένη περίπτωση χρησιμοποιώντας την παράμετρο (-R)ορίζουμε ως ιδιοκτήτη τον προηγούμενο κατάλογο που φτιάξαμε τον ίδιο τον χρήστη. Στις γραμμές επτά-δέκα δημιουργούμε με την εντολή cat την αρχική σελίδα του χρήστη. Στην γραμμή εννιά αντιγράφουμε το αρχείο head στο αρχείο index html. Στην όγδοη γραμμή γράφουμε: My First Web Page. Τέλος η εντολή fi κλείνει την εντολή if. Εάν κάνουμε ανανέωση παρατηρούμε πλέον ότι ο χρήστης έχει προστεθεί στο Linux. Έχει την αρχική του σελίδα αλλά ταυτόχρονα έχει προστεθεί και στη βάση δεδομένων για να μπορούμε να αλλάξουμε και τα στοιχεία του. Πώς έγιναν όμως όλα τα παραπάνω?

σελ. 30 Στη συνέχεια γράφουμε το script με το οποίο δημιουργήσαμε την παραπάνω εφαρμογή. 1. <?php 2. // 3. // addusers.php 4. // 5. // script που τρέχουν 6. // Προσθήκη χρήστη στο linux /usr/sbin/useradd 7. // Αλλαγή του password του χρήστη σε αυτό που δήλωσε /script/changepwd 8. // Δημιουργία καταλόγων χρήστη /script/newuser 9. // Προσθήκη στο samba /script/smbchpasswd 10. // /script/deleteuser Διαγραφή του χρήστη σε περίπτωση αποτυχίας εγγραφής του 11. // προσθήκη εγγραφής στον πίνακα users 12. // 13. //χρησιμοποιεί το chkpasswd.php 14. 15. session_start(); 16. require_once('connect.php'); 17. require_once('tools.php'); 18. require_once('head.php'); 19. if(!isset($_session['admin'])) 20. header( 'Location: isodos.php' ) ; 21. elseif($_session['power']<3){ 22. $msg='mη επιτρεπτή λειτουργία για διαχειριστές με ID<3 '; 23. print($msg); 24. }else{ 25. 26. $admin=$_session['admin']; 27. $login=$_post['login']; 28. $pwd=$_post['pasuser'];

29. $name=$_post['name']; 30. $sname=$_post['sname']; 31. $linuxgroup=$_post['linuxgroup']; 32. $sxoli=$_post['sxoli']; 33. $tmima=$_post['tmima']; 34. $power=$_post['power']; 35. $date=$today = date("y-m-d"); 36. $msg='mήνυμα : '; σελ. 31 37. //echo "login=$login, pasuser=$pwd, admin=$admin, name=$name, sname=$sname, linuxgroup=$linuxgroup, sxoli=$sxoli, tnima=$tmima, date=$date, power=$power"; 38. if(isset($_post['login'])){ 39. if($_post['update']=='προσθηκη'){ 40. require_once('chkpasswd.php'); 41. if(!validlogin($login)) 42. $msg= $msg." Το όνομα του χρήστη να είναι μέχρι 315 χαρακτήρες, όχι σύμβολα και να μην αρχίζει από αριθμό."; 43. elseif(empty($login) empty($name) empty($sname) empty($sxoli) empty($tmima) ) 44. $msg= $msg." Συμπληρώστε όλα τα πεδία."; 45. 46. elseif(!validpasswd($pwd)){ 47. $pwd=secure_pass(); 48. 49. $msg= $msg."το password πρέπει να έχει 7-20 χαρακτήρες μέσα στους οποίους να υπάρχουν ". 50. "<BR> κεφαλαία ή μικρά γράμματα (μόνο αγγλικά), τουλάχιστο 1 ψηφίο και ένα σύμβολο από τα!@#$%&.". 51. "<br>προτείνω το password : ".$pwd ; 52. } 53. else{ 54. # 55. # useradd - Adding a new user 56. # Options: 57. # * -d home directory 58. # * -s starting program (shell)

59. # * -p password 60. # * -g (primary group assigned to the users) 61. # * -G (Other groups the user belongs to) 62. # * -m (Create the user's home directory) 63. # σελ. 32 -c Full_name 64. 65. $l=exec("sudo /usr/sbin/useradd $login -c $name -p $pwd -g $linuxgroup -m",$a,$ret); 66. 67. 68. // προσθήκη εγγραφής στον πίνακα users 69. if($ret==0) { 70. $msg= $msg."ο χρήστης δημιουργήθηκε. "; 71. // Αλλαγή του password του χρήστη σε αυτό που δήλωσε 72. $l=exec("sudo /script/changepwd $login $pwd ",$a,$ret); 73. // Δημιουργία καταλόγων χρήστη 74. $l=exec("sudo /script/newuser $login $group ", $a,$ret); 75. // Προσθήκη στο samba 76. $l=exec("sudo /script/smbchpasswd $login $pwd ",$a,$ret); 77. // προσθήκη εγγραφής στον πίνακα users 78. $sql="insert INTO users(loginuser,pasuser,loginadmin,name,sname, idsxoli,idtmima,date,power,linuxgroup) ". 79. "VALUES ('$login','$pwd','$admin','$name','$sname','$sxoli','$tmima','$date',$power,'$linuxgroup')"; 80. //echo $sql; 81. 82. if (mysql_query($sql,$conn)){ 83. $msg= $msg." Η εγγραφή καταχωρήθηκε στον πίνακα χρηστών."; 84. }else{

85. σελ. 33 $msg=$msg. "Λάθος κατά την καταχώρηση στον πίνακα. Αλλάξτε username."; 86. $l=exec("sudo /script/deleteuser $login", $a,$ret); 87. 88. } 89. $login=$pwd=$name=$sname=''; 90. }else{ 91. //$login=$pwd=''; 92. $msg= $msg." Πρόβλημα κατά τη δημιουργία του χρήστη."; 93. }//END if($ret==0) 94. }//END if(!validlogin($login)) 95. } //END if($_post['update']=='προσθηκη'){ 96. }//end if(isset($_post['login'])){ 97. $linuxgroup='users'; 98. $grp=selectbox($conn,"select * from linuxgroup", $linuxgroup,'linuxgroup','linuxgroup','remarks',"linuxgroup",false); 99. $sel_sxoli=selectbox($conn,'select idsxoli,title from sxoles ORDER BY idsxoli',$sxoli,'sxoli','idsxoli','title',"σχολή",true); 100. $sel_tmima=selectbox($conn,"select idtmima,title from tmimata where idsxoli='$sxoli' ORDER BY idtmima", $tmima,'tmima','idtmima','title',"τμήμα",false); 101. 102. print("<h3>προσθήκη χρήστη $login</h3>"); 103. print("<p><form name=frmedit action=\"{$_server['php_self']}\" method=post>". 104. χρήστη">'. '<table id="mytable" cellspacing="0" summary="προσθήκη 105. "<tr><th>σχολh :<td>$sel_sxoli". 106. "<tr><th>τμημα :<td>$sel_tmima". 107. "<tr><th>username χρήστη : <td><input type=text name='login' value=$login>". 108. "<tr><th>κωδικοσ :<td><input type=password name='pasuser' value=$pasuser>". 109. value=$name>". "<tr><th>ονομα :<td><input type=text name='name'

σελ. 34 110. value=$sname>". "<tr><th>επωνυμο :<td><input type=text name='sname' 111. "<tr><th>linux Group :<td>".$grp); 112. if($_session['power']==5){ 113. style='font-size: 10px'>"; $sel_power="<select name='power' value='' 114. for($i=1;$i<=5;$i++) 115. $sel_power.=" <option value=$i>$i</option>"; 116. $sel_power.="</select>"; 117. χρήστης)<td>".$sel_power); print("<tr><th>ισχύς Xρήστη/Διαχειριστή (1=Απλός 118. }else{ 119. print("<input type='hidden' name='power' value='1'>"); 120. } 121. print("<tr><th><input type='submit' name='update' value='προσθηκη'></td></table>"); 122. 51);'>$msg</span>"); print("<p><span style='background-color: rgb(255, 204, 123. $msg='mήνυμα : '; 124. 125. 126. }//END if(!isset($_session['admin'])) 127.?> 'Όταν γράφουμε κώδικα πάντα ξεκινά με αυτό το σύμβολο >. Στην 15η γραμμή δηλώνουμε ότι πρέπει να γράψουμε όλες τις γενικές μεταβλητές που φυλάσσονται μέσα στον πίνακα της php. $_SESSION:με το σύμβολο $ δηλώνουμε όλες τις μεταβλητές. Τι είναι όμως οι καθολικές (public) μεταβλητές; Για παράδειγμα έχουμε συνδεθεί στην εφαρμογή μέσω της σελίδας είσοδος. Όταν θα πάω σε κάποια άλλη σελίδα της εφαρμογής για παράδειγμα στη προσθήκη η εφαρμογή θα πρέπει να θυμάται ποίος χρήστης είμαι. Αυτό γίνεται επειδή αποθηκεύεται μέσα στον πίνακα session το όνομα του χρήστη που συνδέθηκε.

σελ. 35 Πρώτη φορά που τρέχουμε την φόρμα εκτελούνται οι γραμμές 103-122. Όταν συμπληρώσουμε την φόρμα και πατήσουμε την προσθήκη τότε εκτελούνται οι γραμμές 24102.

σελ. 36 Στην γραμμή 65 δημιουργείτε ο χρήστης linux μέσω της εντολής exec η οποία εκτελεί εξωτερικό κώδικα. Στις γραμμές 69 έως 76 εάν ο χρήστης έχει δημιουργηθεί προσθέτουμε το χρήστη στις απαραίτητες εφαρμογές samba και δημιουργία καταλόγων.

σελ. 37 Ερώτημα (query) της sql για την προσθήκη. Στη γραμμή 79 δημιουργείτε το ερώτημα της sql για να προσθέσουμε το χρήστη στη βάση δεδομένων. Το ερώτημα δημιουργίας βρίσκεται στη γραμμή 83. Διόρθωση. Στην διόρθωση ο κάθε διαχειριστής βλέπει μόνο τους χρήστες που έχει δημιουργήσει αυτός. Για να γίνει η διόρθωση επιλέγουμε το username και εμφανίζεται η παρακάτω μάσκα όπου μπορούμε να διορθώσουμε οποιοδήποτε από τα πεδία θέλουμε και στο τέλος επιλέγουμε διόρθωση.

σελ. 38 Διαγραφή. Στην διαγραφή τσεκάρουμε ποιους θέλουμε να διαγράψουμε και πατάμε διαγραφή. Προσοχή!! Όταν διαγράψουμε έναν χρήστη διαγράφεται και ο φάκελός του Σχολές. Ο χρήστης σε αυτή την επιλογή μπορεί να τροποποιήσει τις υπάρχον σχολές, δηλαδή να διορθώσει το όνομα της η να την διαγράψει. Επίσης ο χρήστης σε αυτό το πεδίο μπορεί να πραγματοποιήσει την προσθήκη μιας νέας σχολής.

σελ. 39 Τμήματα. Ο χρήστης σε αυτή την επιλογή μπορεί να τροποποιήσει τα υπάρχοντα τμήματα, δηλαδή να διορθώσει το όνομα του τμήματος η να το διαγράψει. Επίσης ο χρήστης σε αυτό το πεδίο μπορεί να πραγματοποιήσει την προσθήκη ενός νέου τμήματος. Λεπτομέρειες Για να χρησιμοποιήσει το πρόγραμμα αυτό κάποιος πρέπει να είναι διαχειριστής του συστήματος. 1. Ο έλεγχος θα γίνεται από φόρμα εισόδου γραμμένη σε php με αναζήτηση στον πίνακα admins 2. Ο νέος χρήστης θα προστίθεται στον πίνακα users και αν γίνει αυτό με επιτυχία θα εκτελείται εντολή script στο server για τη δημιουργία του στο σύστημα. 3. Γίνεται διόρθωση στοιχείων του χρήστη από τον διαχειριστή που τον διαχειρίζεται. 4. Γίνεται διαγραφή του χρήστη από τον διαχειριστή που τον διαχειρίζεται. Οι παρακάτω λειτουργίες αφορούν τον υπέρ Διαχειριστή. 5. Προσθήκη νέων Διαχειριστών. 6. Διόρθωση στοιχείων Διαχειριστών.

σελ. 40 Το Ubuntu για Server Το Ubuntu είναι μια διανομή του LINUX χτισμένο πάνω στη σταθερή βάση του Debian - γνωστό για τις στιβαρές του εγκαταστάσεις server. Διαθέτει μια νέα έκδοση ανά έξι μήνες. Το όνομά της λαμβάνεται αριθμητικά από το έτος και μήνα κυκλοφορίας (πχ. η τελευταία 2009.10 τον Οκτώβριο του 2009) και ένα παρατσούκλι από το όνομα ενός μέλους του ζωικού βασιλείου. Η έκδοση Ubuntu Server Edition 8.10 LTS, με υποστήριξη μακράς διάρκειας, προσφέρει υποστήριξη για διάφορες συνήθεις διαμορφώσεις, φέρνοντας στις εγκαταστάσεις server την ευκολία χρήσης που έκανε το Ubuntu διάσημο στη χρήση γραφείου. Το Ubuntu Server Edition παρέχει μια ολοκληρωμένη πλατφόρμα για την εγκατάσταση νέων server με υπηρεσίες διαδικτύου, όπως mail, web, DNS, file serving ή database management. Ένα βασικό μάθημα από το Debian είναι αυτό της by default ασφάλειας. Ο Ubuntu Server δεν έχει ανοιχτά ports μετά την εγκατάσταση και περιέχει μόνο το απαραίτητο λογισμικό για το στήσιμο ενός ασφαλούς server. Υποστηριζόμενες αρχιτεκτονικές Το Ubuntu Server Edition υποστηρίζει τις ακόλουθες αρχιτεκτονικές: x86 για 32 bit υπολογιστές AMD64 για 64 bit υπολογιστές Με πολύ απλά λόγια, διαλέγετε αν θα τρέξετε 32μπιτο (x86) ή 64μπιτο (x64) λειτουργικό. Δεν έχει σημασία, αν έχετε επεξεργαστή Intel ή AMD όπως ίσως παραπλανά η ονομασία. Οι σύγχρονοι επεξεργαστές (εδώ και χρόνια) υποστηρίζουν και 64μπιτες εφαρμογές. Κάτω από κατάλληλες συνθήκες, η χρήση 64bit λειτουργικών προσφέρει μεγαλύτερη ταχύτητα και ασφάλεια. Λογισμικό πιστοποιημένο στο Ubuntu Η πλατφόρμα Ubuntu server έχει πιστοποιηθεί για DB2 της IBM, MySQL και PostgreSQL μεταξύ πολλών άλλων εφαρμογών. Αυτόματο LAMP (Linux, Apache, MySQL και PHP) Σε περίπου 15 λεπτά, τον χρόνο δηλαδή που διαρκεί η εγκατάσταση του Ubuntu Server Edition, μπορείτε να έχετε έναν LAMP server έτοιμο για χρήση. Αυτή η λειτουργία, αποκλειστική στο Ubuntu Server Edition, είναι επιλέξιμη κατά την εγκατάσταση. Η επιλογή LAMP σας γλιτώνει από τον κόπο και τα προβλήματα της εγκατάστασης και της ενοποίησης καθενός από τα τέσσερα συστατικά του LAMP, μιας διαδικασίας που μπορεί να πάρει ώρες και απαιτεί ειδικές γνώσεις πάνω στην εγκατάσταση και ρύθμιση των επιμέρους εφαρμογών. Παίρνετε αυξημένη ασφάλεια, μειωμένο χρόνο εγκατάστασης και μειωμένο κίνδυνο κακής ρύθμισης.

σελ. 41 Εγκατάσταση προγραμμάτων στο Ubuntu Για να συνδεθούμε στο Ubuntu δίνουμε το όνομα του χρήστη και τον κωδικό που μας ζητήθηκε κατά την εγκατάσταση. Αν θέλουμε να κάνουμε εγκαταστάσεις προγραμμάτων στο σύστημά μας πρέπει να γνωρίζουμε τα εξής : Τα αρχεία εγκατάστασης του ubuntu έχουν την κατάληξη.deb από διανομή debian. Αν υπήρχε κάτι αντίστοιχο του.exe των Windows, ας πούμε ότι είναι αυτό. Πρέπει να είμαστε συνδεδεμένοι στο internet για να κάνουμε εγκαταστάσεις. Όλα έρχονται τη στιγμή που τα ζητάμε από αποθήκες (repositories) του ubuntu. Θα τις ονομάζαμε διαδικτυακές αποθήκες προγραμμάτων. Στον κόσμο του Linux τα προγράμματα είναι σπασμένα σε πακέτα για λόγους οικονομίας και ευχρηστίας στους προγραμματιστές. Έτσι για την εγκατάσταση ενός προγράμματος (πχ. Gimp) θα χρειαστούν πολλά πακέτα. Τα πακέτα αυτά λοιπόν βρίσκονται διαθέσιμα ανά κατηγορίες σε διαδικτυακές αποθήκες (τοποθεσίες δικτύου), τις οποίες αναγνωρίζει η διανομή μας Το πρόθεμα sudo τοποθετείται μπροστά από εντολές στην κονσόλα, για να δώσει δικαιώματα υπερχρήστη στην εντολή που ακολουθεί. Η εντολή sudo σημαίνει ότι εκτελούμε κάτι ως διαχειριστές, θα μας ζητηθεί κωδικός (αυτός που δώσαμε κατά την εγκατάσταση) ο οποίος ισχύει για κάποιο μικρό χρονικό διάστημα για να μη μας ζητάει όλη την ώρα. Η εντολή apt-get install χρησιμοποιείται όταν θέλουμε να κάνουμε κάποια εγκατάσταση. Η εντολή apt-get update χρησιμοποιείται όταν θέλουμε να συγχρονίσουμε τον πίνακα εφαρμογών που υπάρχει στον υπολογιστή μας με αυτόν που υπάρχει στις αποθήκες λογισμικού. Μη αυτόματη εγκατάσταση LAMP Server Αν δεν επιλέξουμε την εγκατάσταση του LAMP κατά την εγκατάσταση μπορούμε να το κάνουμε μετά από την κονσόλα του Linux. Με την παρακάτω εντολή στη γραμμή του ubuntu Linux κάνουμε εγκατάσταση : web server : apache2 Βάση δεδομένων mysql Γλώσσα προγραμματισμού server based : php5 sudo tasksel install lamp-server ή sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server Στη συνέχεια κάνουμε εγκατάσταση και το πρόγραμμα phpmyadmin με το ποίο διαχειριζόμαστε τον mysql server πολύ εύκολα μέσω της ιστοσελίδας : http://server/phpmyadmin Η εντολή για την εγκατάσταση του phpmyadmin είναι : sudo apt-get install phpmyadmin

σελ. 42 Εγκατάσταση FTP Server Τι είναι FTP; FTP (File Transfer Protocol) είναι ο γενικός όρος για μια ομάδα των προγραμμάτων ηλεκτρονικών υπολογιστών με στόχο τη διευκόλυνση της μεταφοράς των αρχείων ή δεδομένων από έναν υπολογιστή σε άλλο. Οι διαφορές μεταξύ FTP και HTTP. Η πιο σημαντική διαφορά μεταξύ FTP και HTTP είναι ότι FTP είναι αμφίδρομο σύστημα - μπορεί να χρησιμοποιηθεί για να αντιγράψετε ή να μετακινήσετε αρχεία από ένα διακομιστή σε έναν υπολογιστή-πελάτη, καθώς και να φορτώσετε ή να μεταφέρετε αρχεία από έναν πελάτη σε ένα διακομιστή. HTTP, από την άλλη πλευρά, είναι απολύτως προς μία μόνο κατεύθυνση: "μεταφέρει" κείμενο, φωτογραφίες και άλλα στοιχεία (που διατυπώνονται σε μια ιστοσελίδα) από το "server" σε έναν υπολογιστή-πελάτη που χρησιμοποιεί έναν web browser για να προβάλετε τα δεδομένα. Τρόπος λειτουργίας. Αρχικά ο FTP server ανοίγει την θύρα (port) 21 περιμένοντας έναν FTP client να συνδεθεί. Στη συνέχεια ο client ξεκινά μια νέα σύνδεση από μια τυχαία θύρα προς την θύρα 21 του server. Μόλις γίνει η σύνδεση παραμένει ανοιχτή για όλη τη διάρκεια της συνόδου FTP. Η συγκεκριμένη σύνδεση ονομάζεται σύνδεση ελέγχου (control connection).έπεται η δημιουργία της σύνδεσης δεδομένων (data connection), της σύνδεσης με την οποία μεταφέρονται τα δεδομένα. Υπάρχουν δύο τρόποι για να δημιουργηθεί, με χρήση της ενεργητικής λειτουργίας (active mode) ή με χρήση της παθητικής λειτουργίας (passive mode).

σελ. 43 Επειδή θέλουμε ο κάθε χρήστης του δικτύου να έχει πρόσβαση στο το δικό του χώρο μέσω του ftp θα κάνουμε εγκατάσταση τον server proftpd. : sudo apt-get install proftpd Το αρχείο ρυθμίσεων αν χρειαστεί να αλλάξουμε κάτι στη λειτουργία του server είναι το /etc/proftpd/proftpd.conf και μπορούμε να το τροποποιήσουμε με την εντολή sudo pico /etc/proftpd/proftpd.conf Η μόνη αλλαγή που κάναμε είναι να δηλώσουμε ποιος είναι ο αρχικός κατάλογος του κάθε χρήστη αλλάζοντας τη γραμμή : DefaultRoot ~/www Για να κάνουμε επανεκκίνηση τον server σε περίπτωση αλλαγών στο αρχείο ρυθμίσεων δίνουμε την εντολή sudo /etc/init.d/proftpd restart Περισσότερα στη σελίδα : http://www.basicconfig.com/linuxnetwork/install_configure_proftpd_ubuntu_server Πώς μπορούμε να συνδεθούμε στο server ; Τρέχουμε ένα ftp client π.χ. Το wsftp Lite το οποίο είναι και δωρεάν για σπουδαστική χρήση : http://www.saddleback.edu/faculty/dbusche/html/ws_ftptutorial/wsdownload.html Δίνουμε την IP διεύθυνση του server, και τα στοιχεία του λογαριασμού μας. Ο κάθε χρήστης βλέπει το δικό του υποφάκελο www όπου τοποθετεί τις ιστοσελίδες του. Βλέπουμε 2 παράθυρα, το τοπικό και το απομακρυσμένο. Επιλέγουμε τα αρχεία που θέλουμε να μεταφέρουμε και χρησιμοποιούμε τα βελάκια στο κέντρο

σελ. 44 Εγκατάσταση Samba Server Τι είναι η Sambα. Samba ονομάζουμε μια συλλογή από Unix εφαρμογές, οι οποίες υποστηρίζουν το πρωτόκολλο SMB(Server Message Block). Πολλά λειτουργικά συστήματα(windows και OS/2) χρησιμοποιούν το συγκεκριμένο πρωτόκολλο, με σκοπό την επικοινωνία client και server. Αυτό κάνει και η Samba σε Unix - Linux λειτουργικά συστήματα. Δηλαδή ένας υπολογιστής με λειτουργικό Unix - Linux μπορεί να συνδεθεί σε ένα δίκτυο με χρήστες και servers οι οποίοι χρησιμοποιούν λειτουργικά της οικογένειας Microsoft, και να λειτουργεί με τον ίδιο ακριβώς τρόπο, όπως αυτοί οι υπολογιστές. Η σύνδεση με Samba καλύπτει αυτούς που θέλουν να συνδέονται δηλαδή στο Server μέσω της περιοχής δικτύου των windows. θα κάνουμε εγκατάσταση το samba. : sudo apt-get install samba και στη συνέχεια θα πρέπει να διαμορφώσουμε κατάλληλα το αρχείο ρυθμίσεων /etc/samba/smb.conf για να διορθώσουμε το αρχίο ρυθμίσεων δίνουμε : sudo pico /etc/samba/smb.conf Οι βασικές αλλαγές που κάναμε στο αρχείο αυτό είναι : [global] // Επιτρέπουμε τη χρήση μόνο από το τοπικό δίκτυο για λόγους ασφαλείας hosts allow = 127.0.0.1 192.168.1.0/24 hosts deny = 0.0.0.0/0 //To όνομα της ομάδας εργασίας των windows και το όνομα του Server workgroup = WORKGROUP netbios name = UBU //Ενεργοποίηση της κοινής χρήσης αρχείων για τον κάθε χρήστη. //ο χρήστης του Linux δηλαδή μπορεί να δει το φάκελό του ενώ οι άλλοι όχι [homes] read only = No bowseeable = No Για να κάνουμε επανεκκίνηση τον server σε περίπτωση αλλαγών στο αρχείο ρυθμίσεων δίνουμε την εντολή sudo /etc/init.d/ samba restart

σελ. 45 Εγκατάσταση άλλων προγραμμάτων Άλλα προγράμματα - βιβλιοθήκες που χρειάστηκαν : Η βιβλιοθήκη db για την php : sudo apt-get install php-db Το πρόγραμμα expect απαραίτητο για διαλογικά script φλοιού : sudo apt-get install expect Προσθήκη linux Group Θα πρέπει να δημιουργήσουμε τις ομάδες χρηστών που θέλουμε για παράδειγμα υπάρχει εξ ορισμού η ομάδα users αλλά μπορούμε να προσθέσουμε κι άλλες ομάδες χρησιμοποιώντας την εντολή groupadd sudo groupadd power οι ομάδες καταχωρούνται στο αρχείο /etc/group ενώ οι χρήστες στο /etc/passwd Τέλος θα πρέπει να σημειώσουμε στο χαρτί τις ομάδες χρηστών που θέλουμε να τοποθετούνται οι χρήστες μας για να ενημερώσουμε αργότερα τη βάση δεδομένων. Καλύτερα να γίνει χειροκίνητα αυτό παρά με κάποιο script επειδή στο Linux υπάρχουν για διαφορετικούς σκοπούς πολλές ομάδες μέσα στο /etc/group.

σελ. 46 Aπαραίτητες αλλαγές στο σύστημα Linux Ο χρήστης που μπαίνει στο server μέσ ιστοσελίδας web είναι ο www-data Για να μπορέσει να δώσει κάποιες εντολές στο σύστημα μέσα από το πρόγραμμα θα πρέπει να έχει τα κατάλληλα δικαιώματα. Μπορούμε εφόσον είμαστε σίγουροι από το πρόγραμμα ότι είναι ένας διαπιστευμένος διαχειριστής να του δώσουμε το δικαίωμα να εκτελέσει τις επιλογές που του παρέχει το πρόγραμμα. Βάζοντας στο αρχείο /etc/sudoers την παρακάτω γραμμή www-data ALL=(ALL) NOPASSWD:ALL ο www-data μπορεί να εκτελέσει οποιαδήποτε εντολή Βάζοντας στο αρχείο /etc/sudoers τις παρακάτω γραμμές www-data ALL=NOPASSWD: /script/deleteuser, /script/newuser www-data ALL=NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel www-data ALL=NOPASSWD: /bin/rm, /bin/mkdir, /bin/ln, /bin/chown www-data ALL=NOPASSWD: /script/chpasswd, /script/smbchpasswd www-data ALL=NOPASSWD: /usr/bin/which, /usr/sbin/arp, /usr/sbin/usermod του επιτρέπουμε να τρέξει μόνο τις απαραίτητες εντολές για την εφαρμογή. Έτσι έχουμε μεγαλύτερη ασφάλεια. Προσοχή : το αρχείο το διορθώνουμε μόνο με την εντολή visudo, δηλ. γράφουμε visudo στη γραμμή εντολών και στο τέλος του αρχείου προσθέτουμε τις παραπάνω γραμμές. Δημιουργία καταλόγου ιστοσελίδων χρηστών : mkdir /var/www/users chmod a+xrw /var/www/users Δημιουργία κοινόχρηστου καταλόγου /pub (μόνο για ανάγνωση για τους χρήστες) mkdir /pub

σελ. 47 Δημιουργία βάσης δεδομένων και απαραίτητων πινάκων της εφαρμογής. Όλες οι εργασίες θα γίνουν μέσω της εφαρμογής phpmyadmin από τη διεύθυνση http://localhost/phpmyadmin. Κάνουμε εισαγωγή ως root. Επιλέγουμε collation utf8_general_ci, γράφουμε το όνομα της βάσης (useradmin) και Create. phpmyadmin SQL Dump.

Βάση: `useradmin` Δομή Πίνακα για τον Πίνακα `linuxgroup` CREATE TABLE IF NOT EXISTS `linuxgroup` ( `linuxgroup` varchar(15) collate utf8_unicode_ci NOT NULL, `remarks` varchar(50) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`linuxgroup`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -- 'Αδειασμα δεδομένων του πίνακα `linuxgroup` -INSERT INTO `linuxgroup` (`linuxgroup`, `remarks`) VALUES ('users', 'normal user'); σελ. 48

--- Δομή Πίνακα για τον Πίνακα `sxoles` -CREATE TABLE IF NOT EXISTS `sxoles` ( `idsxoli` int(11) NOT NULL auto_increment, `title` varchar(30) NOT NULL, PRIMARY KEY (`idsxoli`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; --- 'Αδειασμα δεδομένων του πίνακα `sxoles` -INSERT INTO `sxoles` (`idsxoli`, `title`) VALUES (1, 'Σχολή Διοίκησης Και Οικονομίας'), (2, 'Σχολή Τεχνολογικών Εφαρμογών'), (3, 'Σχολή Τεχνολογίας Γεωπονίας'), (4, 'Παράρτημα Διδυμότειχου'), (6, 'ΓΡΑΦΕΙΑ'); σελ. 49