θέλω να εμφανίζονται μόνο ορισμένοι χρήστες, συγκεκριμένα οι μαθητές της Α' τάξης στην οθόνη σύνδεσης. Για να γίνει αυτό έβαλα στο ltsp.conf
#Στην οθόνη σύνδεσης να εμφανίζονται μόνο οι παρακάτω λογαριασμοί
LTSPDM_USERS="a*"
αφού όλοι οι χρήστες από την Α' ξεκινούν με a. Παρόλα αυτά δεν παίζει. Είναι κάτι άλλο;
Ευχαριστώ!
Θεωρία: υπάρχουν 2 παραπλήσιες μέθοδοι, τα "globs" (wildcards) και οι "κανονικές εκφράσεις" (regular expressions).
Τα globs είναι πιο απλά και τα χρησιμοποιεί το shell, το bash, το DOS κλπ. Εκεί, "*" σημαίνει "0 ή περισσότεροι χαρακτήρες", και "?" σημαίνει "ένας οποιοσδήποτε χαρακτήρας".
Τα regular expressions είναι πολύ πιο δυνατά και χρησιμοποιούνται σε όλες τις γλώσσες προγραμματισμού αλλά και σε εργαλεία τύπου sed και awk. Εκεί, "a*" σημαίνει "0 ή περισσότερα a", δηλαδή "", "a", "aa", "aaa" κλπ, ενώ η τελεία "." σημαίνει "ένας οποιοσδήποτε χαρακτήρας".
Η LTSPDM_USERS χρησιμοποιεί κανονικές εκφράσεις. Έτσι, αυτό που ήθελες είναι το:
LTSPDM_USERS="a.*" ==> a και μετά οσοιδήποτε χαρακτήρες
ή το:
LTSPDM_USERS="a[0-9-]*" ==> a και μετά οσαδήποτε νούμερα ή παύλες
Άλκη, επειδή έχω να ακούσω για κανονικές εκφράσεις από τη σχόλη, ερώτηση...
Αν δε θέλω να εμφανίζεται κανένας χρήστης στο login screen (παρά μόνο η σύνδεση με πληκτρολόγηση username/password) θα αρκούσε το :
LTSPDM_USERS=""
???
Την περίπτωση να μην εμφανίζεται καθόλου η λίστα χρηστών την υποστήριζε ο lightdm από μόνος του χωρίς πρόσθετο κώδικα από το LTSP, οπότε παρέμεινε ως έχει:
https://alkisg.mysch.gr/steki/index.php?topic=8396.msg92343#msg92343
[clients]
LIGHTDM_CONF="greeter-hide-users=true"
Γι' αυτό το λόγο η LTSPDM_USERS ενεργοποιείται μόνο εάν υπάρχουν "matching users", αλλιώς αγνοείται. Θεώρησα ότι ήταν καλύτερο σε PC χωρίς HOSTNAME, που καταλήγει να ονομάζεται ltsp123, να εμφανίζονται όλοι οι διαθέσιμοι χρήστες.
Α! Τώρα μάλιστα... Φχαριστώ, θα το χρειαστώ!
Μια χαρά, ευχαριστώ!
Παράθεση από: alkisg στις 17 Σεπ 2020, 10:08:10 ΠΜ
Θεωρία: υπάρχουν 2 παραπλήσιες μέθοδοι, τα "globs" (wildcards) και οι "κανονικές εκφράσεις" (regular expressions).
Τα globs είναι πιο απλά και τα χρησιμοποιεί το shell, το bash, το DOS κλπ. Εκεί, "*" σημαίνει "0 ή περισσότεροι χαρακτήρες", και "?" σημαίνει "ένας οποιοσδήποτε χαρακτήρας".
Τα regular expressions είναι πολύ πιο δυνατά και χρησιμοποιούνται σε όλες τις γλώσσες προγραμματισμού αλλά και σε εργαλεία τύπου sed και awk. Εκεί, "a*" σημαίνει "0 ή περισσότερα a", δηλαδή "", "a", "aa", "aaa" κλπ, ενώ η τελεία "." σημαίνει "ένας οποιοσδήποτε χαρακτήρας".
Η LTSPDM_USERS χρησιμοποιεί κανονικές εκφράσεις. Έτσι, αυτό που ήθελες είναι το:
LTSPDM_USERS="a.*" ==> a και μετά οσοιδήποτε χαρακτήρες
ή το:
LTSPDM_USERS="a[0-9-]*" ==> a και μετά οσαδήποτε νούμερα ή παύλες