Εμφάνιση μόνο κάποιων χρηστών στην αρχική οθόνη

Ξεκίνησε από elf, 17 Σεπ 2020, 09:47:52 ΠΜ

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

elf

θέλω να εμφανίζονται μόνο ορισμένοι χρήστες, συγκεκριμένα οι μαθητές της Α' τάξης στην οθόνη σύνδεσης. Για να γίνει αυτό έβαλα στο ltsp.conf
#Στην οθόνη σύνδεσης να εμφανίζονται μόνο οι παρακάτω λογαριασμοί
LTSPDM_USERS="a*"
αφού όλοι οι χρήστες από την Α' ξεκινούν με a. Παρόλα αυτά δεν παίζει. Είναι κάτι άλλο;
Ευχαριστώ!

alkisg

Θεωρία: υπάρχουν 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 και μετά οσαδήποτε νούμερα ή παύλες

ilias_s

Άλκη, επειδή έχω να ακούσω για κανονικές εκφράσεις από τη σχόλη, ερώτηση...

Αν δε θέλω να εμφανίζεται κανένας χρήστης στο login screen (παρά μόνο η σύνδεση με πληκτρολόγηση username/password) θα αρκούσε το :

LTSPDM_USERS=""

???

alkisg

Την περίπτωση να μην εμφανίζεται καθόλου η λίστα χρηστών την υποστήριζε ο lightdm από μόνος του χωρίς πρόσθετο κώδικα από το LTSP, οπότε παρέμεινε ως έχει:

https://alkisg.mysch.gr/steki/index.php?topic=8396.msg92343#msg92343

Κώδικας: Bash
[clients]
LIGHTDM_CONF="greeter-hide-users=true"


Γι' αυτό το λόγο η LTSPDM_USERS ενεργοποιείται μόνο εάν υπάρχουν "matching users", αλλιώς αγνοείται. Θεώρησα ότι ήταν καλύτερο σε PC χωρίς HOSTNAME, που καταλήγει να ονομάζεται ltsp123, να εμφανίζονται όλοι οι διαθέσιμοι χρήστες.

ilias_s

Α! Τώρα μάλιστα... Φχαριστώ, θα το χρειαστώ!

elf

Μια χαρά, ευχαριστώ!
Παράθεση από: 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 και μετά οσαδήποτε νούμερα ή παύλες