Διαχείριση σχολικού εργαστηρίου/Εξυπηρετητής αρχείων

Από Βικιβιβλία

Για ευκολότερη διαχείριση ενός εργαστηρίου που έχει αρκετούς χρήστες θα ήταν επιθυμητό:

  • Η κεντρική διαχείριση λογαριασμών
    • Δημιουργία/Διαγραφή/Ρύθμιση
  • Η ύπαρξη εξυπηρετητή αρχείων στον οποίο θα βρίσκονται οι home κατάλογοι των χρηστών
    • ποιό έυκολη λήψη αντιγράφων ασφαλείας
  • Η ύπαρξη διαμοιραζόμενων καταλόγων για κοινά εγχειρήματα ή τοποθέτηση ασκήσεων για τους μαθητές.

Πιθανές υλοποιήσεις:

  • sync + nfs
    • Στην περίπτωση αυτή θα χρειαστούμε και εργαλεία αυτόματου mount για τους καταλόγους των χρηστών , πχ am-utils, autofs κτλ.
  • nfs + nis
  • nfs + LDAP
  • samba + active directory


Χρήσιμα προγράμματα[επεξεργασία]

Το fusesmb μας επιτρέπει να ενσωματώσουμε με τη μια όλους του διαμοιραζόμενους πόρους άλλων ΗΥ σε ένα σημείο-κατάλογο της ιεραρχίας μας. Βασίζεται στο fuse.

To smbfsnet είναι ένα πρόγραμμα που προσφέρει λειτουργικότητα παρόμοια με το fusesmb.

Xubuntu + samba , text mode[επεξεργασία]

Η λειτουργικότητα που θέλουμε να πετύχουμε είναι ο κάθε μαθητής (student λογαριασμός) να έχει στην επιφάνεια εργασίας έναν σύνδεσμο 'Τάξη' που θα ανοίγει στον thunar τον διαμοιρασμένο πόρο-φάκελο (δ.π) students του εξυπηρετητή.

Θα χρειαστούμε :

[Εξυπηρετητής]

  • samba
  • fusesmb
  • smbnetfs

[Πελάτες]

  • smbclient
  • fusesmb
  • smbnetfs

Διαμοιρασμός πόρων στον εξυπηρετητή[επεξεργασία]

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

$ sudo adduser student
$ sudo adduser teacher

Προσθέστε τους χρήστες αυτούς στην ξεχωριστή βάση του εξυπηρετητή samba.

$ sudo smbpasswd -a teacher
$ sudo smbpasswd -a student
$ sudo smbpasswd -a labadmin

$ cd ; mkdir students ; chmod 777 student

$ sudo nano /etc/samba/smb.conf
 [global]
 netbios name = PCLABSERVER
 workgroup = PCLAB
 security = user 
 [CLASS]
  comment = students files 
  path = /home/labadmin/students
  read only = nο   
  valid users = teacher , student ,labadmin
$ sudo service smbd restart
$ sudo service nmbd restart

Ελέγχουμε : Ποιούς πόρους διαμοιράζει ο samba εξυπηρετητής μας.Θα πρέπει να είμαστε συνδεδεμένοι σαν ένας από τους valid usere που ορίσαμε στο smb.conf. :

$ smbclient -L localhost   

Ποιούς πόρους samba του τοπικού δικτύου βλέπει ο υπολογιστής μας.

$ smbtree 


Πρόσβαση από τους πελάτες[επεξεργασία]

Υποθέτουμε ότι σε κάθε πελάτη υπάρχουν τουλάχιστον οι λογαριασμοί:

  • teacher
  • student

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

$ sudo adduser student
$ sudo adduser teacher

Για την ώρα θεωρούμε ότι συνδέθηκε ένας μαθητής (student).

Δημιουργούμε έναν φάκελο CLASS

$ cd
$ mkdir .network   
$ chmod 777 .network
Ονομάσαμε τον φάκελο .network ώστε να γίνει κρυφός . Αυτό είναι ένα προσωρινό μέτρο ασφαλείας καθώς μπορεί να υπάρχουν διαμοιραζόμενοι πόροι από συναδέλφους που δεν έχουν αντιληφθεί πιθανού κινδύνους. 
$ mkdir .smb
$ cp /etc/smbnetfs.conf ~/.smb/smbnetfs.conf
$ chmod 600 ~/.smb/smbnetfs.conf
$ nano ~/.smb/smbnetfs.conf
auth PCLABSERVER/CLASS  student student

$ cd
$ smbnetfs ~/network

Δοκιμάζουμε να περιηγηθούμε τώρα με τον thunar. Ανοίγουμε τον πλοηγό του συστήματος αρχείων thunar και βρίσκουμε και ανοίγουμε τον φάκελο ~/network. Αν εκτελέστηκε σωστά το smbnetfs θα πρέπει να υπάρχει στο φάκελο αυτόν ένας "φάκελος" με το όνομα 'PCLAB' που είναι το όνομα της ομάδας δικτύου μας , που με τη σειρά του θα πρέπει να περιέχει τον "φάκελο" PCLABSERVER που αναπαριστά τον εξυπηρετητή μας και ανοίγωντας και αυτόν θα πρέπει να βρούμε φακέλους που αναπαριστούν διαμοιραζόμενους πόρους (δ.π) που στην περίπτωση μας ονομάζεται CLASS. Αυτό το όνομα είναι το όνομα του δ.π που προσδιαρίσαμε στο smb.conf και αυτός ο "φάκελος" πρέπει να περιέχει τα περιεχόμενα του φακέλου που προδιορίσαμε στην επιλογή path του δ.π [CLASS], δηλαδή του /home/labadmin/students.

Φυσικά θα ήταν κουραστικό και ανόητο για τους μαθητές να πρέπει να περιηγούνται σε 3 φακέλους για να δούν ή να αποθηκεύσουν τις εργασίες τους. Αυτό μπορεί να λυθεί ως εξής:

  1. Επιλέγουμε από τη γραμμή μενού του thunar Προβολή->Εικονίδια.
  2. Ανοίγουμε στον thunar τον κατάλογο network->PCLAB->PCLABSERVER
  3. Κάνουμε δεξί κλικ στο εικονίδιο PCLABSERVER Αποστολή προς επιφάνεια εργασίας (δημιουργία δεσμού).
  4. Μετονομάζουμε τον φάκελο αυτό στην επιφάνεια εργασίας σε Μαθητές. (Στην ουσία δημιουργήσαμε στην επιφάνεια εργασίας έναν σύνδεσμο προς /home/student/network/PCLAB/PCLABSERVER/CLASS )

Αυτοματοποίηση εκτέλεση smbnetfs[επεξεργασία]

Τώρα μας μένει να αυτοματοποιηθεί η εκτέλεση του προγράμματος smbnetfs ώστε ο μαθητής να μπορεί από την επιφάνεια εργασία να έχει εύκολα πρόσβαση στους φακέλους της τάξης του.

nmbd pre-start process (1998) terminated with status 1

Μια λύση είναι : Εφαρμογές -> Ρυθμίσεις -> Διαχειριστής Ρυθμίσεων Xfce4 -> Συνεδρία και Εκκίνηση -> Αυτόματη εκκίνηση εφαρμογής->Προσθήκη και γράφουμε:

  • Όνομα: smbnetfs
  • Περιγραφή: Προσάρτηση smb πόρων
  • Εντολή: smbnetfs network

και κάνουμε κλικ στο 'Εντάξει'

Πρόσβαση από windows[επεξεργασία]

Συνήθως στην επιφάνεια εργασίας των windows υπάρχει το εικονίδιο Network Places (Θέσεις δικτύου). Πρόκειται για ειδικό φάκελο που αν τον ανοίξουμε ανοίγουμε πρακτικά το πρόγραμμα περιήγησης στους διαμοιραζόμενους πόρους του τοπικού δικτύου. (Στα vista και έπειτα έχει μετονομαστεί απλά σε Δίκτυο). nmbd pre-start process (1998) terminated with status 1

Βρείτε τις επίσης τις 'τοποθεσίες' :

  • Συνολικό δίκτυο (Entire Network).
  • Microsoft Windows (Microsoft Windows Network).


Αποπροσάρτηση διαμοιραζόμενων πόρων[επεξεργασία]

Μπορούμε να αποπροσαρτήσουμε τους δ.πόρους με την εντολή:

$ cd
$ fusermount -u CLASS

Χubuntu + samba + GUI[επεξεργασία]

Εναλλακτικά θα μπορούσαμε να ρυθμίσουμε τον thunar ώστε να διαμοιράζει αρχεία , και αντίστοιχα στους πελάτες ο thunar να μπορεί να ενεργεί σαν share browser και να βρίσκει τους δ.π.

Δηλαδή στην περίπτωση αυτή θα μπορούσαμε να υλοποιήσουμε την επιθυμητή λειτουργικότητα μέσα από τον thunar με GUI τρόπο που είναι ποιό προσιτός και ανάλογος του τρόπου που γίνεται διαμοιρασμός και πλοήγηση δ.π στα windows.

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


Εγκαθιστούμε τον samba εξυπηρετητή στον server μας , καθώς και το πρόσθετο του thunar thunar-shares-plugin . Με την samba εν λειτουργία και το πρόσθετο αυτό εγκατεστημένο μπορούμε να διαμοιράζουμε πόρους του εξυπηρετητή.

Από την πλευρά του πελάτη θα προσπαθήσουμε να έχουμε λειτουργικότητα samba browser. Ένας τρόπος που προσπαθεί να το πετύχει είναι ο How to: Xubuntu - Thunar Native Windows Network Browsing. Δυστυχώς, ενώ έβλεπα από τον thunar τους μοιραζόμενους φακέλους, όταν προσπαθούσα να δω τα περιεχόμενα τους παίρνω το μήνυμα λάθους 'connection time out'

Δοκιμάζουμε στον πελάτη με : smbclient -L <server ip>


Ubuntu + samba , textmode[επεξεργασία]

Ubuntu + samba , GUI mode[επεξεργασία]

Windows 98 πελάτης[επεξεργασία]

Στην προσπάθεια πρόσβασης σε πόρο του samba από win98 πελάτη εμφανίστηκε πρόβλημα το οποίο περιγράφετε στον παρακάτω σύνδεσμο: http://www.troubleshooters.com/linux/win9x_samba.htm

Αρχικά για τη ρύθμιση του πελάτη win98 ακολούθησα τις οδηγίες στο [Using Samba 1st edition] που υπάρχει δωρεάν στο διαδίκτυο: http://oreilly.com/catalog/samba/chapter/book/ch03_01.html

Αρχικά παρατήρησα ότι η πρόσβαση επιτυγχάνεται σε έναν πόρο από win98 πελάτη μόνο όταν στο εξυπηρετητή έχουμε ενεργοποιημένη guest access στον πόρο αυτό ([data share] guest ok = yes )

Όταν όμως απενεργοποιήσουμε την guest access και η πρόσβαση επιτρέπεται μόνο σε μερικούς χρήστες ([data share] valid users = foo zoo moo) τότε δεν γίνει δυνατή η πρόσβαση.

Δημιούργησα χρήστη με το ίδιο όνομα και συνθηματικό που έχω ορίσει με το smbpasswd στον samba server αλλά δεν επιτρέπονταν η πρόσβαση.

Το πρόβλημα τελικά λύνεται με : 1) Την προσθήκη των παρακάτω ρυθμίσεων στο τμήμα [global] του smb.conf :

 lanman auth = yes
 client lanman auth =yes
client plaintext auth = Yes     (για win 95)

2) Επανεκκίνηση του εξυπηρετητή

  sudo service smbd restart
  sudo service smbd restart
ή   /etc/init.d/samba restart  (debian)

3) Τη διαγραφή του χρήστη foo με

           pdbedit -x student
   Και την επανασειγωγή του με 
           pdbedit -a  student

4) Αποσύνδεση και επανασύνδεση στον win98 πελάτη του χρήστή.

Σημαντικό είναι επίσης να ανήκει ο win98 πελάτης στην ίδια ομάδα εργασίας με τον samba εξυπηρετητή.

Η λογική πίσω από αυτή τη λύση περιγράφεται επίσης στον σύνδεσμο που δώσαμε στην αρχή: http://www.troubleshooters.com/linux/win9x_samba.htm