• Nenhum resultado encontrado

[PENDING] Διαχείριση χρηστών δικτύου μέσω ιστοσελίδας.

N/A
N/A
Protected

Academic year: 2024

Share "Διαχείριση χρηστών δικτύου μέσω ιστοσελίδας."

Copied!
53
0
0

Texto

(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

(10)

Velocis

Unix dbm

Έχουμε επίσης μια αφαιρετική επέκταση 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

client firefox

mySQl http

php

(13)

Βασικές Εντολές Πλοήγησης στο Λειτουργικό Σύστημα 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

(14)

Χρήσιμες παράμετροι:

-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

(15)

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 τυπώνει στην οθόνη το όρισμα που παίρνει

(16)

Σύνταξη εντολής:

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

(17)

Χρήσιμες παράμετροι:

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

(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.

idsxoli

sxoles idtmima

loginuser

users

tmimata

(20)

Μενού επιλογών της εφαρμογής

Η εφαρμογή παρέχει τις παρακάτω βασικές λειτουργίες :

Είσοδος – έξοδος χρηστών.

Ο κώδικας που υλοποιεί την είσοδο.

Παρακάτω φαίνεται το 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ήνυμα : ';

(21)

21. require_once("connect.php");

22. $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'];

(31)

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ήνυμα : ';

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." Το όνομα του χρήστη να είναι μέχρι 3-

15 χαρακτήρες, όχι σύμβολα και να μην αρχίζει από αριθμό.";

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)

(32)

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. # -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{

(33)

85. $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. "<tr><th>ΟΝΟΜΑ :<td><input type=text name='name' value=$name>" .

(34)

110. "<tr><th>ΕΠΩΝΥΜΟ :<td><input type=text name='sname' value=$sname>" .

111. "<tr><th>Linux Group :<td>".$grp);

112. if($_SESSION['power']==5){

113. $sel_power="<select name='power' value='' style='FONT-SIZE: 10px'>";

114. for($i=1;$i<=5;$i++)

115. $sel_power.=" <option value=$i>$i</option>";

116. $sel_power.="</select>";

117. print("<tr><th>Ισχύς Xρήστη/Διαχειριστή (1=Απλός χρήστης)<td>".$sel_power);

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. print("<p><span style='background-color: rgb(255, 204, 51);'>$msg</span>");

123. $msg='Mήνυμα : ';

124.

125.

126. }//END if(!isset($_SESSION['admin']))

127. ?>

'Όταν γράφουμε κώδικα πάντα ξεκινά με αυτό το σύμβολο ¨ > ¨.

Στην 15η γραμμή δηλώνουμε ότι πρέπει να γράψουμε όλες τις γενικές μεταβλητές που φυλάσσονται μέσα στον πίνακα της php.

$_SESSION:με το σύμβολο $ δηλώνουμε όλες τις μεταβλητές.

Τι είναι όμως οι καθολικές (public) μεταβλητές;

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

(35)

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

Όταν συμπληρώσουμε την φόρμα και πατήσουμε την προσθήκη τότε εκτελούνται οι γραμμές 24- 102.

(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 in

Referências

Documentos relacionados