Linux LAN

Ξεκίνησε από Δημήτρης Δαλαγιώργος, 11 Νοε 2008, 03:55:03 ΜΜ

« προηγούμενο - επόμενο »

xagapiou

Συμφωνώ απόλυτα Άλκη με όλα όσα λες. Νομίζω οτι είναι η καλύτερη υλοποίηση για ένα σχολικό εργαστήριο.

Παράθεση από: alkisg στις 24 Οκτ 2009, 10:43:55 ΠΜ
Με βάση λοιπόν κι αυτά που ακούστηκαν στο θέμα Λογαριασμοί χρηστών: ανά μαθητή ή ανά υπολογιστή/τμήμα;,
απ' ότι καταλαβαίνω ΔΕΝ χρειαζόμαστε κοινόχρηστα home directories, ούτε LDAP!!!

Δηλαδή:

  • Έχουμε 12 PC + τον server. Με ένα script στο αρχικό setup δημιουργούμε *μόνο έναν* χρήστη για κάθε τμήμα: c1, c2, ct (τεχνολογικής), admin (πληροφορικός), teacher (άσχετοι καθηγητές) κτλ.
  • Τα δεδομένα των χρηστών παραμένουν τοπικά στο /home/c1. Δηλαδή ο χρήστης c1 στο πρώτο PC θεωρείται διαφορετικός χρήστης από τον χρήστη c1 στο δεύτερο PC. Έτσι δεν έχουμε και το άγχος για το τι θα γίνει αν π.χ. κολλήσει το hub ή τραβηχτεί ένα καλώδιο δικτύου ή χαλάσει ο server, όπου με NFS θα τιναζόταν το εργαστήριο στον αέρα.
  • Ο *server* συνδέεται αυτόματα σε όλα τα homes είτε με NFS είτε με sshfs και τα προσαρτά π.χ. στο  /clienthomes/pc1, /clienthomes/pc2 κτλ, για να μπορεί ο καθηγητής να κάνει backup των εγγράφων των μαθητών καθώς και να αντιγράφει έγγραφα μεταξύ τους, όταν χρειάζεται. Με αυτόν τον τρόπο τα backups είναι και πιο αξιόπιστα, αφού βρίσκονται σε διαφορετικά PCs: και στους clients και στον server.
  • Το παραπάνω είναι περίπου το "αντίθετο" από τα NFS-shared homes, δηλαδή οι clients δεν έχουν πρόσβαση στα αρχεία των άλλων και άρα οι μαθητές δεν μπορούν να δουν τις ασκήσεις των διπλανών.
  • Το (μοναδικό?) μειονέκτημα των παραπάνω είναι ότι τα έγγραφα δεν είναι roaming. Δηλαδή, αν π.χ. καεί το pc1, θα πρέπει να *αντιγράψουμε* τα έγγραφά του (από το backup που έχουμε στον server) στο π.χ. pc12 που το είχαμε σε αχρηστία, πριν κάνουν login οι μαθητές, γιατί αλλιώς δεν θα βρουν τα έγγραφά τους. Αυτό όμως θεωρητικά συμβαίνει σπάνια...
  • Το θετικό είναι ότι όλοι οι χρήστες *ανά τμήμα* έχουν το ίδιο uid/gid, επομένως ένα απλό copy/paste από τον server αρκεί, δηλαδή λογικά λίγα δευτερόλεπτα δουλειά.
  • Τέλος, φτιάχνω κι ένα script για τον καθηγητή που να κάνει αυτόματα logon ένα συγκεκριμένο τμήμα, π.χ. "κλικ: σύνδεσε το τμήμα a1b". Έτσι οι μαθητές δεν θα χρειάζεται καν να ξέρουν το password του λογαριασμού.
  • Επίσης μπορεί να φτιαχτεί και ένα πρόγραμμα "πλάνο τάξης" με το οποίο θα ορίζουμε ποιος κάθεται που. Το όφελος από το "κλασσικό πλάνο τάξης στο Word" θα είναι ότι το πρόγραμμα θα μπορεί να ενημερώνει αυτόματα τα real names των μαθητών, ώστε να φαίνονται στο gnome-panel πάνω δεξιά, και να τους μαθαίνουμε έτσι ευκολότερα.
  • Ανεξάρτητα από τα παραπάνω, μπορούν να υπάρχουν κοινόχρηστοι φάκελοι με NFS στο π.χ. /home/a1/shared ώστε να γίνεται η συνεργασία των μαθητών ανά τμήμα που περιγράφει ο Δημήτρης. Φυσικά αν πέσει το δίκτυο μπορούν οι μαθητές να συνεχίσουν να δουλεύουν, απλά δεν θα έχουν πρόσβαση στον κοινόχρηστο φάκελο.

Αυτά. Πώς σας φαίνεται; Να προχωρήσω σε αυτοματοποίηση;

alkisg

Παράθεση από: alkisg στις 25 Οκτ 2009, 06:29:36 ΜΜ
Τελικά μάλλον θα φτιαχτεί ένα nautilus extension το οποίο θα μας ανοίγει με sftp (passwordless ssh) σε 12 tabs όλα τα αρχεία της τάξης (κλικ: θέλω να δω τα αρχεία της τάξης Α3 στους clients). Έτσι, το copy/paste παίρνει αυτόματα τον owner του προορισμού! Επομένως δεν νομίζω ότι απαιτείται να έχουν ίδιο uid/gid, κι άρα δεν υπάρχει μειονέκτημα σε αυτό που κάνεις. Παρεμπιπτόντως, έτσι γλυτώνουμε *τελείως* και το (ακρυπτογράφητο) NFS.

Τεχνική περιγραφή για το πώς θα γίνεται αυτοματοποιημένα η σύνδεση στα απομακρυσμένα αρχεία των χρηστών: Απομακρυσμένες συνδέσεις χωρίς κωδικό (passwordless ssh)

da_perama

Για την ώρα δουλεύω με έναν χρήστη ανά υπολογιστή και η ιδέα για ένα χρήστη ανά τμήμα μου φαίνεται πολύ ελκυστική, αν μπορεί να γίνει σχετικά εύκολα. Το σημαντικότερο όμως θα είναι η κεντρική διαχείριση των ενημερώσεων ( προσπάθησα αλλά δεν τα κατάφερα ) .
Α ! και να μας πει ο alkisg σε πια πλατεία προτιμάει να του στήσουμε τον αδριάντα του.  :)

alkisg

Παράθεση από: haritak στις 24 Οκτ 2009, 06:14:08 ΜΜ
Εγώ αυτό που θα ήθελα, αλλά δεν έχω ασχοληθεί είναι να ξέρω απο command line πως γίνονται κάποια πράγματα γιατί το cluster ssh είναι command line. Πχ πως να αλλάξω το start page του firefox σε κάτι συγκεκριμένο. Πως να δηλώσω default printer σε όλους. Αν κάτι μπορείς να το κάνεις σε command line μπορείς να το κάνεις σε όλους ταυτόχρονα.

Για το start page γίνεται με το user.js του firefox, δες την ενότητα 7.2 του οδηγού εγκατάστασης Ubuntu 9.04/LTSP.
Για τον default printer υποθέτω ότι θα γίνεται με τα gconf settings, δες την ενότητα 7.3.
Γενικά ό,τι θέλετε ανοίξτε ένα θέμα στο φόρουμ και το συζητάμε εκεί...

Παράθεση από: da_perama στις 26 Οκτ 2009, 03:28:55 ΜΜ
Το σημαντικότερο όμως θα είναι η κεντρική διαχείριση των ενημερώσεων...

Εγώ τις κάνω με το clusterssh: https://alkisg.mysch.gr/steki/index.php?topic=2214.0
Αν είναι δύσκολο, να κάνουμε σκριπτάκι και γι' αυτό.

Σε καμιά 10ριά μέρες θα ανεβάσουμε και νέα έκδοση του οδηγού για το squid, ώστε να είναι και πιο εύκολο το στήσιμο και να κάνει και .deb caching (για να μη χρειάζεται το apt-cacher ούτε αλλαγή στο sources.list). Το δοκίμασα στο σχολείο και πάει μια χαρά.

denix

1. Είχαμε DOS, δεν υπήρχε η "έννοια" χρήστης
2. Μας ήρθαν τα 95, βάλαμε 1 χρήστη σε κάθε μηχάνημα
3. Μας ήρθαν τα XP κάναμε και... ομάδες!
4. Ρυθμίσαμε και στο A.D. "υποχρεωτικό φόντο"?! Ααα!! Χαράς ευαγγέλια!!

Linux σημαίνει ελευθερία!

Εμπεριέχει παραθυροκατάλοιπα ο άλλος τρόπος σκέψης.

Ακόμη δε μπήκαμε Νοέμβρη και τα πρωτάκια μου κάνουν login σαν ώριμοι λινουξάδες! Μπορεί να μην πληκτρολογούνε γρήγορα ακόμη, αλλά ήδη σερφάρουν, αποθηκεύουν εικόνες, τις βάζουν φόντο, ζωγραφίζουν, και φυσικά, συναγωνίζονται (εκτός των άλλων) και για το High score με τους "παλιούς" αφού ξετρύπωσαν και τα παιχνίδια... Πως?! Συνεργατική μάθηση! Χωρίς φυσικά να τους "διδάξω" τίποτε από όλα αυτά. Γιατί τα μάθανε στο... διάλειμμα!

Απλά, τους έδωσα ελευθερία.

Για όλα τα υπόλοιπα* φροντίζει το linux και η μητέρα φύση!

*της μάθησης

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 24 Οκτ 2009, 10:43:55 ΠΜ
Ο *server* συνδέεται αυτόματα σε όλα τα homes είτε με NFS είτε με sshfs και τα προσαρτά π.χ. στο  /clienthomes/pc1, /clienthomes/pc2 κτλ, για να μπορεί ο καθηγητής να κάνει backup των εγγράφων των μαθητών καθώς και να αντιγράφει έγγραφα μεταξύ τους, όταν χρειάζεται. Με αυτόν τον τρόπο τα backups είναι και πιο αξιόπιστα, αφού βρίσκονται σε διαφορετικά PCs: και στους clients και στον server.

Πώς το κάνουμε αυτό; Πρέπει να εγκατασταθεί nfs-server σε κάθε workstation; Και αν πρέπει να γίνει αυτό, δεν παίζει ρόλο πλέον με ποια σειρά θα γίνεται η εκκίνηση των μηχανημάτων; Πρώτα ο server ή οι clients;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Αφού πήγαμε σε passwordless ssh για όλους τους χρήστες και για τον root,
δεν χρειαζόμαστε πια ούτε NFS ούτε sshfs ούτε τίποτα.

Π.χ. με μια εντολή σαν την παρακάτω μπορείς να πάρεις backup τα δεδομένα όλων των χρηστών του client01:
sudo scp -r client01.local:/home ~/backups/client01/


Στα τελικά scripts βέβαια το backup δεν θα το κάνουμε με scp αλλά με rsync, ώστε να παίρνει μόνο τις διαφορές και όχι όλο το /home κάθε φορά (το rsync μπορεί να δουλέψει "πάνω" από το ssh ώστε να μη ζητάει κωδικό).

Αν θες εσύ προσωπικά να έχεις μόνιμα προσαρτημένους τους φακέλους των μαθητών, μπορείς να εγκαταστήσεις το sshfs στον server και να τρέχεις με ένα σκριπτάκι στην επιφάνεια εργασίας εντολές του στυλ
sudo sshfs client01.local:/home /clienthomes/client01

Εννοείται ότι θα πρέπει να έχεις βάλει passwordless ssh για τον root (δες το σχετικό θέμα).
Θα μπορούσες να το βάλεις και στο fstab, αλλά τότε θα έπαιζε ρόλο η σειρά εκκίνησης, δεν νομίζω ότι το θέλουμε.
Γενικά αν δεν υπάρξει λόγος, νομίζω ότι το sftp (ναυτίλος, ssh, scp, rsync) μας αρκεί για πρόσβαση, αφού μάλιστα δεν χρειάζεται να δίνουμε κωδικό.

Υπομονή, θα αρχίσω σιγά σιγά να ανεβάζω σκριπτάκια για μαζική αντιγραφή αρχείων στους clients κτλ.

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 03 Νοε 2009, 12:49:55 ΜΜ
Υπομονή, θα αρχίσω σιγά σιγά να ανεβάζω σκριπτάκια για μαζική αντιγραφή αρχείων στους clients κτλ.

Τέλεια!

Απλώς το θέμα είναι ότι το εργαστήριο έχει γίνει και εργαστήριο δοκιμών και πειραματισμών και πρέπει να ξέρω πώς θα προλάβω διάφορα προβλήματα μιας και κάθε βδομάδα μπαίνουν μια ντουζίνα διαφορετικά τμήματα. Είναι θέμα χρόνου ν' αρχίσουν οι πιτσιρικάδες να πειράζουν πράγματα και να ψαχουλεύουν δεξιά κι αριστερά!
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Παράθεση από: haritak στις 24 Οκτ 2009, 06:14:08 ΜΜ
4) Ενα /public_shared για όλους (πρόσβαση απο όλους πλήρης)

Με τι ρυθμίσεις;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Εκτός απ' το να σκοτώσω τη διεργασία του, υπάρχει κάποιος πιο "ευγενικός" τρόπος για να κάνω logout σε κάποιο χρήστη; Στην περίπτωση που δεν υπάρχει, το pkill είναι καλό;

sudo pkill -u username


ή χρειάζομαι κάτι άλλο;

Επίσης, με το

sudo killall firefox


σκοτώνω το firefox, σωστά;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Για logout:
gnome-session-save --silent --kill


Με την killall, σκοτώνεις όλους τους firefox, δηλαδή π.χ. στο LTSP θα σκότωνες τους firefox όλων των μαθητών. Εννοείται ότι αν έχει συνδεθεί μόνο ένας μαθητής, σκοτώνεις αυτού του μαθητή.
Χωρίς το sudo, έχεις δικαίωμα και σκοτώνεις μόνο του τρέχοντα χρήστη.
Και εναλλακτικά για κάποιον συγκεκριμένο χρήστη υπάρχει και η pkill:
pkill -u "$USER" firefox

Δημήτρης Δαλαγιώργος

#41
Άλκη αν έχεις χρόνο δες λίγο αυτές τις οδηγίες: Disable Shutdown for Normal Users.

Θέλω να απενεργοποιήσω δύο πράγματα: 1) Το να μπορούν οι απλοί χρήστες να σβήσουν τον υπολογιστή απ' το μενού. 2) Το να σβήνει ο υπολογιστής όταν πατάς το κουμπί power στο κουτί του υπολογιστή. Ειδικά το δεύτερο είναι πολύ εκνευριστικό: είναι οι υπολογιστές ανοιχτοί αλλά έχει μπει ο screen saver και τα πιτσιρίκια αντί να κουνήσουν το ποντίκι όπως τους έχω πει ένα εκατομμύριο φορές, πάνε και πατάνε κατευθείαν το power με αποτέλεσμα να σβήνει ο υπολογιστής!

Ok, προφανώς οι οδηγίες από το προαναφερθέν site δεν δουλεύουν. Δοκίμασα ν' απενεργοποιήσω το power button αλλάζοντας τα δικαιώματά του, αλλά δεν δούλεψε.

Ψάχνοντας, βρήκα το εξής: How do I change/disable the timeout value for automatic shutdown after pressing the power button. Εκεί μέσα βρήκα:

ALT-F2
gconf-editor
Click on apps
Click on gnome-power-manager
Click on buttons
On the right click on power
Hit ENTER
type in "nothing" (without the quotes)
Click Ok.


Το οποίο απενεργοποιεί το power button για τον τρέχοντα χρήστη. Χρειάζομαι δύο πράγματα: α) Να γίνει υποχρεωτική η ρύθμιση για όλους τους χρήστες (μαντεύω gconftool-2), και β) να ισχύει η ρύθμιση και όταν είμαστε στην οθόνη του login, πριν, δηλαδή, προλάβει καν να συνδεθεί κάποιος χρήστης.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set /apps/gnome-power-manager/buttons/power nothing


Και, απ' ότι φαίνεται, καλύπτει και το (α) και το (β)
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Λογικά θα πρέπει να γίνεται και μέσω policy kit, και να ισχύει μέχρι και εκτός gnome, οπότε αν το παραπάνω δεν σε καλύψει τελικά πες μου να το δω με την πρώτη ευκαιρία...

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 13 Νοε 2009, 09:53:55 ΠΜ
Λογικά θα πρέπει να γίνεται και μέσω policy kit, και να ισχύει μέχρι και εκτός gnome, οπότε αν το παραπάνω δεν σε καλύψει τελικά πες μου να το δω με την πρώτη ευκαιρία...

Τι είναι το policy kit;

Επί τη ευκαιρία, άλλαξα το screensaver σε κάτι άλλο απ' την κενή οθόνη, για να καταλαβαίνουν ότι ο υπολογιστής δουλεύει:

sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set /apps/gnome-screensaver/themes screensavers-biof
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller