Ψηφοφορία

Θέλετε να έχετε την δυνατότητα να κάνετε login με αυτοματοποιημένο τρόπο σε όλους τους clients από τον server;

Ναι
17 (100%)
Όχι
0 (0%)

Σύνολο ψηφοφόρων: 17

Αποστολέας Θέμα: Υλοποίηση τρόπου μαζικού ελεγχόμενου login των clients από τον server  (Αναγνώστηκε 5823 φορές)

Πέτρος Κ.

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 113
Έχω δύο ερωτήσεις για σας! :)
1) Να την βάλω την παραπάνω δυνατότητα ως προεπιλεγμένη; Δηλαδή, στο pc01 θέλουμε να φαίνονται π.χ. 120 λογαριασμοί από default ή μόνο οι 10 που αντιστοιχούν σε αυτόν τον client;
2) Είναι η παραπάνω δυνατότητα αρκετή πια, ή χρειάζεται και αυτό που λέγαμε με το να τρέχουμε μια εντολή μέσα από τον Επόπτη για να δείχνει μόνο το τρέχον τμήμα; (δεν είναι δύσκολο να υλοποιηθεί, ρωτάω μήπως είναι τελείως αχρείαστο πια).

Να φαίνονται όλοι είναι πρακτικά άβολο.
Θα πρότεινα (αν υπάρχει τεχνικά η δυνατότητα), αντί για αντιστοιχία user - pc, να υπάρχει το manual  login και μια λίστα με τους τελευταίους χρήστες που έκαναν είσοδο στο κάθε μηχάνημα. Το "τελευταίους" μπορεί να οριστεί είτε ως πλήθος χρηστών (πχ οι 10 τελευταίοι έκαναν login) είτε οι πιο πρόσφατοι (πχ όσοι έκαναν login τις 2 τελευταίες βδομάδες).

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Γενικά οι clients δεν έχουν δικαίωμα εγγραφής στον server (οι users εννοείται έχουν), οπότε είναι δύσκολο να αποθηκεύσουν state.

Η εντολή `lastlog` στον server εμφανίζει πότε συνδέθηκε τελευταία φορά ο κάθε χρήστης, και σε ποια IP:

Παράθεση από: lastlog
b2-05           pts/2    192.168.1.139    Πεμ Οκτ 25 12:45:13 +0300 2018
b2-06           pts/7    192.168.1.143    Τετ Μαΐ 22 09:18:25 +0300 2019
b2-07           pts/3    192.168.1.142    Τετ Μαΐ 22 09:17:17 +0300 2019

Οπότε ΑΝ υποθέσουμε ότι η IP συνήθως δεν αλλάζει, μπορούμε να εκμεταλλευτούμε αυτή την πληροφορία για τους "12 τελευταίους users που συνδέθηκαν στην IP=pc10 εντός του τελευταίου μήνα"... αν θεωρείτε ότι είναι καλύτερο από "τους λογαριασμούς που έχουν username=xx10 ή που ανήκουν στο group pc10" κλπ κλπ.

denispyr

  • Βετεράνος
  • ****
  • Μηνύματα: 70
(Δημοτικό)

Σε σχέση με τους "τελευταίους", στο 19θέσιο Δημοτικό μου + 2 ολοήμερα αυτοί θα ήταν 21 χρήστες. όχι και λίγοι :)

Μία οθόνη με τους λογαριασμούς του τρέχοντος τμήματος συν manual login ακούγεται ενδιαφέρουσα. Ιδιαίτερα αν οι λογαριασμοί κάνουν passwordless login, θα γλύτωνε τρέξιμο στις αρχές της χρονιάς με την Α Δημοτικού. Και με σχολεία στα οποία δεν έχουν αποκτήσει δεξιότητα manual login.


Διονύσης

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
1) Το "λογαριασμοί τρέχοντος pc" δεν προϋποθέτει κάποια ενέργεια.
2) Το "λογαριασμοί τρέχοντος τμήματος" προϋποθέτει ότι σε κάθε διάλειμμα ο καθηγητής θα τρέχει μια εντολή από τον Επόπτη.
3) Το "τελευταίοι Ν λογαριασμοί" προϋποθέτει να ταιριάζουν οι IP και ο καθηγητής να τρέχει π.χ. κάθε πρωί ή κάθε βδομάδα μια εντολή "ltsp initrd" για να μεταφέρει το "lastlog" του server στους clients.

Άρα αν κατάλαβα καλά, πάμε για το "1" ως προεπιλογή, το "2" ως δυνατότητα για όσους το θέλουν, ενώ το "3" το αφήνουμε για λίγο αργότερα μήπως σκεφτούμε κάποια καλύτερη υλοποίηση τεχνικά. Το manual login το έχουμε σε όλες τις περιπτώσεις.

denispyr

  • Βετεράνος
  • ****
  • Μηνύματα: 70
Θα μπορούσαμε να είχαμε επιλογή "σκέτο manual login" (όπως είναι τώρα, δηλαδή) ;
(Σε δεύτερη σκέψη, μήπως αυτό είναι το "1" χωρίς να ανατεθούν λογαριασμοί; )
Διονύσης

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Ναι οκ αυτό γίνεται εύκολα. Τεχνικά είναι πιο αποδοτικό αν μπει ως ξεχωριστή επιλογή στο ltsp.conf.

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Τελικά υλοποίησα τα παρακάτω στο νέο LTSP (προσοχή δεν ισχύουν στο παλιό):

Παράθεση από: ltsp.conf
# Στην οθόνη σύνδεσης να εμφανίζονται μόνο οι παρακάτω λογαριασμοί
LTSPDM_USERS="(guest|[a][0-9ab]*)-*%{HOSTNAME#pc}"

# Σε όσους clients έχουν οριστεί HOSTNAME=pc01, pc02 κλπ,
# να ενεργοποιηθεί αυτόματο login με τους λογαριασμούς user01, user02 κλπ.
#AUTOLOGIN="^pc\([0-9]*\)$/user\1"

# Οι παρακάτω λογαριασμοί να συνδέονται χωρίς κωδικό (δουλεύει μόνο με NFS)
PASSWORDS_GUESTS="guest[0-9-]*/"
#PASSWORDS_CLASSES="[abcdefg][0-9-]*/"

Η πρώτη γραμμή ορίζει ότι στο pc01 θα εμφανίζονται ο guest01 και τα πρωτάκια, a01 ή a1b-01 κλπ. Σαν προεπιλογή, ας θεωρήσουμε ότι μέσα στη χρονιά θα μάθουν να γράφουν το όνομά τους οπότε τα δευτεράκια δεν χρειάζεται να φαίνονται. Εννοείται όποιος θέλει το αλλάζει.

Η δεύτερη ενεργοποιεί το AUTOLOGIN για π.χ. τον user01 στο pc01 ώστε να μη φαίνεται καν η λίστα χρηστών.

Και η τρίτη ορίζει ότι οι guests θα μπορούν να συνδέονται με σκέτο Enter χωρίς να βάζουν κωδικό. Αν κάποιος θέλει, προσθέτει εκεί και τα πρωτάκια ή τους userXX αν έχει ενεργοποιήσει AUTOLOGIN.

Αυτές οι 3 οδηγίες είναι λίγο δυσνόητες αλλά πολύ ευέλικτες (κάνουν για όλα τα παραπάνω σενάρια), οπότε είναι θέμα μετά των sch-scripts να τις παρουσίασουν με ωραίο γραφικό interface, ώστε να δώσουν και δυνατότητα εμφάνισης μόνο των χρηστών ενός τμήματος κλπ... ίδωμεν!

markakis

  • Working Dead
  • Βετεράνος
  • ****
  • Μηνύματα: 67
Δηλαδή για παράδειγμα για να κάνουμε login του τμήματος a1, μέσα από τον Επόπτη δίνουμε:
sudo /usr/share/sch-scripts/host-to-username pc/a1-

Εγκατέστησα 20.04 και βλέπω ότι αυτό δεν το έχουμε πλέον διαθέσιμο στα sch-scripts.
Με έχει βολέψει απίστευτα να αποσυνδέω τους λογαριασμούς του τμήματος που τελείωσε το μάθημα και να συνδέω αυτούς του επόμενου τμήματος.
Υπάρχει άλλος τρόπος χωρίς την παρέμβαση του μαθητή; Αναφέρομαι σε λογαριασμούς ανά τμήμα και υπολογιστή.

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Καλημέρα, ήταν στα TODO αλλά το ξέχασα, να το ετοιμάσω μέσα στην ερχόμενη βδομάδα.

markakis

  • Working Dead
  • Βετεράνος
  • ****
  • Μηνύματα: 67
Ευχαριστούμε!
Είδα ότι άλλαξαν οι οδηγίες στο Linux/LTSP/Προχωρημένα/Αυτόματη σύνδεση, χωρίς να περιλαμβάνεται η συγκεκριμένη δυνατότητα και ανησύχησα. Φαντάζομαι δεν είμαι ο μόνος που το χρησιμοποιεί.

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Έτοιμο! Τεκμηρίωση εδώ:

https://ts.sch.gr/wiki/Linux/LTSP/Προχωρημένα/Αυτόματη_σύνδεση

Δηλαδή εν ολίγοις τρέχετε το παρακάτω μέσα από τον Επόπτη:
sudo /usr/share/sch-scripts/autologin pc/a1-

Ενώ πλέον υποστηρίζει και "false" για να αποσυνδέσει ένα τμήμα χωρίς να συνδέσει το επόμενο:
sudo /usr/share/sch-scripts/autologin false

Επίσης δουλεύει ανεξάρτητα από τα υπόλοιπα settings, δηλαδή δεν χρειάζεται προηγουμένως να έχετε ενεργοποιήσει το AUTOLOGIN.

Kermit, ο Βάτραχος

  • Θαμώνας
  • ***
  • Μηνύματα: 24
Άλκη,

δοκίμασα την αυτόματη σύνδεση τμήματος από τον επόπτη μέσω της:
Κώδικας: [Επιλογή]
sudo /usr/share/sch-scripts/autologin pc/a1-
και δουλεύει μια χαρά, αλλά αδυνατώ να αποσυνδέσω πλέον τους χρήστες. Ή μάλλον αποσυνδέονται και ξανασυνδέονται αμέσως σαν να είχα ξαναδώσει εγώ την εντολή αυτή.
Αυτό γίνεται τόσο από τον Επόπτη, όσο και από τους ίδιους τους σταθμούς. Μόνο με επανεκκίνηση στρώνει. Αυτό είναι by design;

Στο ltsp.conf δεν έχω ενεργοποιήσει καμία ρύθμιση autologin.

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5576
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Εφόσον έχεις χρησιμοποιήσει το autologin pc/a1- έστω και μια φορά, έχει ενεργοποιηθεί το autologin. Έτσι, για να τους αποσυνδέσεις, πρέπει να δώσεις το παρακάτω μέσα από τον Επόπτη:

Κώδικας: Bash
  1. sudo /usr/share/sch-scripts/autologin false

Kermit, ο Βάτραχος

  • Θαμώνας
  • ***
  • Μηνύματα: 24
Ευχαριστώ πολύ, Άλκη!

Δούλεψε όπως λες.

ioakyriazis

  • ΠΛΗΝΕΤ
  • *
  • Μηνύματα: 32
Αυτό σημαίνει ότι για να κάνεις login με άλλο τμήμα, θα πρέπει πρώτα να κάνει logout το προηγούμενο τμήμα; Δίνω παράδειγμα:

Έχω δώσει

Κώδικας: [Επιλογή]
sudo /usr/share/sch-scripts/autologin pc/a1-
για να συνδεθεί το Α1. Την επόμενη ώρα έχω Β2. Τι πρέπει να δώσω

Κώδικας: [Επιλογή]
sudo /usr/share/sch-scripts/autologin pc/b2-
ή θα πρέπει να βγάλω πρώτα το Α1, δίνοντας

Κώδικας: [Επιλογή]
sudo /usr/share/sch-scripts/autologin false
sudo /usr/share/sch-scripts/autologin pc/b2-