Ερωτήσεις για κοινόχρηστους φακέλους

Ξεκίνησε από athrouss, 06 Φεβ 2019, 10:46:08 ΠΜ

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

athrouss

Καλησπέρα,
ελπίζω να γράφω στη σωστή ομάδα για το θέμα που με απασχολεί.

Έκανα πρόσφατα αναβάθμιση του Ubuntu LTSP στο εργαστήριο του σχολείου από 12.04 σε 18.04.1.
Αντιμετώπισα αρκετά προβλήματα αλλά σιγά σιγά τα λύνω.
Τελευταία παρατηρώ ότι οι μαθητές όταν δημιουργούν ή αντιγράφουν κάποιο αρχείο στα Δημόσια αυτό δεν είναι με δυνατότητα ανάγνωσης από τους υπολοίπους. Ούτε και από administrator. Αυτό γίνεται διότι τα αρχεία και οι φάκελοι δημιουργούνται με την ομάδα του χρήστη και όχι του δημόσιου φακέλου. π.χ. andriannast αντί για lykeio_2018.
Οπότε όλοι οι υπόλοιποι δεν έχουν πρόσβαση στο αρχείο.
Αυτό έγινε όταν στα sch-scripts όρισα σαν κύρια ομάδα για κάθε χρήστη τη δική του.
Εάν βάλω σαν κύρια ομάδα το lykeio_2018 τότε κατά τη δημοσίευση του εικονικού δίσκου πετάει ένα μήνυμα <userdel: η ομάδα andriannast δεν διαγράφηκε γιατί δεν είναι πρωταρχική ομάδα του χρήστη andriannast>.

Μήπως καταλαβαίνετε τι έχω κάνει λάθος;

Ευχαριστώ για το χρόνο σας
Θανάσης

alkisg

Καλημέρα Θανάση,

τα κοινόχρηστα βασίζονται στις ομάδες των χρηστών για να λειτουργήσουν. Η κύρια ομάδα είναι έτσι κι αλλιώς ο ίδιος ο χρήστης, αλλά θα πρέπει να συμμετέχει και στην ομάδα του τμήματος. Παράδειγμα:
Κώδικας: Bash
$ id a1-01
uid=1016(a1-01) gid=1035(a1-01) ομάδες=1035(a1-01),1017(a1)


Επίσης, οι κοινόχρηστες ομάδες αναφέρονται στο παρακάτω αρχείο:
Κώδικας: Bash
$ cat /home/Shared/.shared-folders
# List of groups for which shared folders will be created.
SHARE_GROUPS="a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 guests teachers"


Αν για κάποιον λόγο αυτά έχουν υπερ-πειραχτεί, μια γρήγορη λύση είναι να διαγράψεις όλους τους χρήστες και όλες τις ομάδες, επιλέγοντας και "διαγραφή προσωπικού καταλόγου", και να τους ξαναδημιουργήσεις από την αρχή.

Αν θες βοήθεια στο "σώσιμο" των υπάρχοντων λογαριασμών, μπορείς να έρθεις και από το IRC, http://ts.sch.gr/wiki/IRC.

athrouss

Το έκανα αυτό και φαίνεται ότι δεν υπάρχει πρόβλημα:

athrouss@srv-lyk-erymanth:~$ sudo id andriannastrav18 
uid=1224(andriannastrav18) gid=1149(andriannastrav18) ομάδες=1149(andriannastrav18),1085(sambamachines),1039(wineuser),1143(lykeio_2018)
athrouss@srv-lyk-erymanth:~$ sudo cat /home/Shared/.shared-folders
# List of groups for which shared folders will be created.
SHARE_GROUPS="lykeio_2017 lykeio_2016 teachers lykeio_2014 lykeio_2018 lykeio_2015 lykeio_2010 lykeio_2011 lykeio_2013 gym_a user gym_c lykeio_2012 gym_b"


Στην επισυναπτόμενη εικόνα φαίνεται το group με αριθμό. Ενώ σε άλλες περιπτώσεις το γράφει ολογράφως. 1149 είναι andriannastrav18, το όνομα της μαθήτριας. Επάνω υπάρχει και ένα λουκετάκι.

athrouss

Συγγνώμη για το ανακάτεμα στις απαντήσεις...
Επανέρχομαι πάλι στο θέμα με τα δικαιώματα στον κοινόχρηστο φάκελλο.

Όταν κάποιος χρήστης δημιουργεί ένα αρχείο ή φάκελλο, τότε αυτό αποκτά δικαιώματα:
user του administrator
group το group της ομάδας που ανήκει όσον αφορά τα δημόσια.
Αυτό είναι σωστό. Παρ' όλ' αυτά η πραγματικότητα είναι διαφορετική
ls -la
drwxrwx--- 2 administrator lykeio_2018  4096 Φεβ  12 13:36 'ΟΜΑΔΑ Α'
drwxrwx--- 2 administrator lykeio_2018  4096 Φεβ  12 13:36 'Ομάδα Β'

id administrator
uid=1000(administrator) gid=1000(administrator) ομάδες=1000(administrator),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),1001(teachers),1004(gym_a),1050(gym_c),1049(gym_b),1082(lykeio_2012),1083(lykeio_2010),1081(lykeio_2011),1085(sambamachines),1017(lykeio_2013),1039(wineuser),1042(lykeio_2014),1063(lykeio_2015),1038(lykeio_2016),1121(lykeio_2017),1143(lykeio_2018),129(epoptes)

cat /etc/group | grep lykeio_2018
lykeio_2018:x:1143:masouras18,zafeiropoulosd18,......,athrouss,administrator

στο φάκελλο 'ΟΜΑΔΑ Α' user = administrator, group = lykeio_2018, uid=1000, gid=1143.
Στο γραφικό περιβάλλον όμως όπως φαίνεται στην εικόνα
user = 1168
gid = 1089
Αυτό αντιστοιχεί σε
gkontzis15:x:1089:gkontzis15 (σύμφωνα με το αρχείο /etc/group/)

id gkontzis15
uid=1168(gkontzis15) gid=1089(gkontzis15) ομάδες=1089(gkontzis15),1085(sambamachines),1039(wineuser),1143(lykeio_2018)


Το αποτέλεσμα είναι ότι οι υπόλοιποι δε μπορούν να τροποποιήσουν τα αρχεία ή να προσθέσουν κάτι στους φακέλλους.

Όταν έκανα restore τους χρήστες μετά την εγκατάσταση του 18.04 φαίνεται ότι πήρε λάθος uid's των χρηστών.

alkisg

Θανάση σου διαχώρισα τα μηνύματα σε νέο θέμα, ώστε να υπάρχει ειρμός.

Πώς έκανες "restore τους χρήστες";
Αφού το πρόβλημα επηρεάζει μόνο ένα σχολείο και δεν είναι γενικευμένο, δεν έρχεσαι από το IRC αύριο να το φτιάξουμε live στα γρήγορα;
http://ts.sch.gr/wiki/IRC

athrouss

Γεια,
δυστυχώς αύριο Παρασκευή δεν θα βρίσκομαι στο σχολείο, από Δευτέρα.
Η διαδικασία που ακολούθησα είναι η παρακάτω:
το /home βρισκόταν και βρίσκεται σε διαφορετικό δίσκο, οπότε έμεινε όπως ήταν.
Αρχικά έτρεξα τις παρακάτω εντολές για backup σε εξωτερικό δίσκο:

mkdir /media/DiskB/Backup
export UGIDLIMIT=500
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /media/DiskB/Backup/passwd.mig
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /media/DiskB/Backup/group.mig
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - |egrep -f - /etc/shadow > /media/DiskB/Backup/shadow.mig
cp /etc/gshadow /media/DiskB/Backup/gshadow.mig
tar -zcvpf /media/DiskB/Backup/home.tar.gz /home
tar -zcvpf /media/DiskB/Backup/mail.tar.gz /var/spool/mail

backup ltsp files
-----------------
/var/lib/tftpboot/ltsp/i386/lts.conf
/etc/default/shared-folders
/etc/dnsmasq.d/ltsp-server-dnsmasq.conf
PXELinux


=============================================================
Commands to type on new Linux system
=============================================================
First, make a backup of current users and passwords:
mkdir /root/newsusers.bak
cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak

Create a new user tempuser with UID=1300
-----------------------------------------
adduser --uid 1300 tempuser
adduser tempuser sudo

Login as tempuser and delete administrator
---------------------------------------------

Now restore passwd and other files in /etc/
--------------------------------------------
mkdir /media/DiskB
mount /dev/sdb1 /media/DiskB
cd /media/DiskB/Backup/
cat passwd.mig >> /etc/passwd
cat group.mig >> /etc/group
cat shadow.mig >> /etc/shadow
/bin/cp gshadow.mig /etc/gshadow

reboot

alkisg

Ναι το σωστό θα ήταν να έκανες εισαγωγή από το σχετικό μενού των sch-scripts, χωρίς καν να χρησιμοποιήσεις τερματικό και εντολές...

http://ts.sch.gr/wiki/Linux/sch-scripts/Χρήστες/Δημιουργία_χρηστών => Εισαγωγή χρηστών από το passwd αρχείο

Τώρα προφανώς αυτές οι εντολές στο χάλασαν.

athrouss

Έχω κρατήσει backup από τα αρχεία:
group.mig
gshadow.mig
passwd.mig
shadow.mig
users_lab-server_2018-12-22.csv

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

alkisg

Δεν γνωρίζω ακριβώς πόση ζημιά έκαναν οι παραπάνω εντολές, αλλά μια καλή δοκιμή είναι:
1) Μέσα από τα sch-scripts, να διαγράψεις όλους τους χρήστες εκτός του administrator (uid=1000) ΧΩΡΙΣ να επιλέξεις "διαγραφή και του αρχικού τους καταλόγου", και
2) Πάλι μέσα από τα sch-scripts, να κάνεις "εισαγωγή χρηστών από passwd" και να του πεις να φορτώσει το passwd.mig κλπ.
Και μετά επανεκκίνηση.

athrouss

Γεια,
ξεκίνησα τη διαδικασία.
1) Διαγραφή χρηστών μέσα από sch-scripts χωρίς τους φακέλλους.
2) Εισαγωγή από αρχείο passwd. Εδώ έχει κολλήσει στο αρχικό παράθυρο εύρεσης του αρχείου ενώ στο τερματικό λέει:
administrator@srv-lyk-erymanth:~/Diaxeirish/accounts$ Gtk-Message: 12:42:11.261: GtkDialog mapped without a transient parent. This is discouraged.
Traceback (most recent call last):
  File "./sch-scripts.py", line 293, in on_mi_import_passwd_activate
    new_users = parsers.passwd().parse(passwd, shadow, group)
  File "/usr/share/sch-scripts/parsers.py", line 122, in parse
    u = new_set.users[name] # The user must exist in passwd
KeyError: 'x2gouser'

Καμμιά ιδέα;

athrouss

Το έκανα πάλι με αρχεία που είχα παλαιότερα από κανονικό backup και προχώρησε. Αλλά τώρα μου έβγαλε τα GID's κάποιων χρηστών κόκκινα και πάτησα αυτόματη επίλυση προβλημάτων. Μετά εμφάνισε ένα παράθυρο με αλλαγμένα τα UID's των περισσότερων χρηστών.
Να το αφήσω έτσι;

athrouss

Και πάλι δεν προχωράει.
Ενώ φαίνεται ότι τα διορθώνει με την αυτόματη διόρθωση, όταν πατήσω κλείσιμο επανέρχεται με τα κόκκινα και το πλήκτρο Εφαρμογή είναι ανενεργό.

alkisg

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

Παράθεση από: alkisg στις 14 Φεβ 2019, 12:07:49 ΜΜ
Αφού το πρόβλημα επηρεάζει μόνο ένα σχολείο και δεν είναι γενικευμένο, δεν έρχεσαι από το IRC αύριο να το φτιάξουμε live στα γρήγορα;
http://ts.sch.gr/wiki/IRC

athrouss


alkisg

Το βασικό πρόβλημα ήταν ότι είχε αλλαχθεί η πρωτεύουσα ομάδα των χρηστών από π.χ. user01 σε lykeio2017.
Το σωστό είναι οι ομάδες για τα κοινόχρηστα, όπως είναι το "lykeio2017", να μπαίνουν ως δευτερεύουσες ομάδες και όχι ως πρωτεύουσα (αυτό είναι και η προεπιλογή).