Αποστολή αρχείων με δικαιώματα εγγραφής στα μέλη ενός τμήματος

Ξεκίνησε από Δημήτρης Γκίνης, 14 Δεκ 2011, 11:15:14 ΠΜ

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

Δημήτρης Γκίνης

Το ίδιο μου εμφάνιζε και εμένα την πρώτη φορά που το δοκίμασα, κάτι έγραφα λάθος αλλά δεν θυμάμαι τι. Αύριο που θα ξαναμπώ στο εργαστήριο θα ποστάρω ένα δικό μου παράδειγμα για να το συγκρίνεις.

apapakL

Απ' ότι βλέπω στο μήνυμα λάθους, εκτελείς

group-exec c1,c2 cp '/home/teacher/Επιφάνεια Εργασίας/πιστα.sb' 'Επιφάνεια εργασίας/'


Το directory όμως Επιφάνεια Εργασίας δεν υπάρχει... αφού η λέξη εργασίας θέλει πεζό έψιλον και όχι κεφαλαίο. Και αυτό γιατί το Linux «είναι» case sensitive.

Άρα ο σωστός τρόπος εκτέλεσης θα ήταν

group-exec c1,c2 cp '/home/teacher/Επιφάνεια εργασίας/πιστα.sb' 'Επιφάνεια εργασίας/'


Αν το εκτελέσεις όντας συνδεδεμένοι οι χρήστες των συγκεκριμένων τάξεων, κάνε και ένα refresh (πατώντας F5) στην επιφάνεια εργασίας τους.

Δημήτρης Γκίνης


exanemou

ευχαριστώ για την βοηθεια και ιδιως για αυτο
ΠαράθεσηΑν το εκτελέσεις όντας συνδεδεμένοι οι χρήστες των συγκεκριμένων τάξεων, κάνε και ένα refresh (πατώντας F5) στην επιφάνεια εργασίας τους.
αν και διαβάζοντας αυτο
ΠαράθεσηΝα παρατηρήσω όμως σε αυτό το σημείο, ότι εναλλακτικά θα μπορούσες να διαλέξεις τους συνδεδεμένους μαθητές μέσα από τα sch-scripts, και να κάνεις εκτέλεση εντολής, και στο διάλογο που θα εμφανιστεί να γράψεις απλά
cp "/home/teacher/Επιφάνεια εργασίας/Άσκηση 1.pdf" "$ΗΟΜΕ/Επιφάνεια εργασίας/"
Αυτό βέβαια εκτελεί την εντολή μόνο για το συνδεδεμένο τμήμα π.χ. a1, οπότε θα πρέπει να το ξανακάνεις μόλις ξανασυνδεθεί το επόμενο τμήμα π.χ. a2.
αφήνει την υπόνοια οτι η εκτελεση του εν λογω κομματιου προγράμματος αντιγραφει το υποψηφιο αρχειο σε ολες τις ομάδες. Τουλάχιστον,  ετσι το κατάλαβα εγώ
Για το άλλο που έγραψα
Παράθεσηγ)δοκιμασα και το παρακάτω
Παράθεση

      for f in /home/*/Επιφάνεια\ εργασίας; do
        if [ ! -e "$f/Υλικό μαθήματος" ]; then
            sudo ln -s "$HOME/Δημόσια" "$f/Υλικό μαθήματος"
        fi
    done

αλλα ο φακελος υλικο δημιουργηθηκε μονο στην επιφάνεια εργασιας του server και σε κανεναν χρηστη Τι κανω λάθος;
διαπιστωσα μετα απο ενημερωση/συμπιεση του εικονικού δισκου για αλλο λόγο , οτι τότε εμφανίστηκε ο φάκελος στους πελάτες.
Επρεπε το παραπάνω κομμάτι προγράμματος να συνοδευτεί και με ενημερωση/συμπιεση του εικονικού δισκου;

apapakL

Παράθεση από: exanemou στις 07 Φεβ 2012, 12:58:44 ΜΜ
Για το άλλο που έγραψα διαπιστωσα μετα απο ενημερωση/συμπιεση του εικονικού δισκου για αλλο λόγο , οτι τότε εμφανίστηκε ο φάκελος στους πελάτες.
Επρεπε το παραπάνω κομμάτι προγράμματος να συνοδευτεί και με ενημερωση/συμπιεση του εικονικού δισκου;

Πιστεύω οτι χρειάζεται (και σε αυτή τη περίπτωση) ένα refresh στην επιφάνεια εργασίας των χρηστών που ήταν συνδεδεμένοι κατά την εκτέλεση της εντολής.

alkisg

Η εντολή cp μέσα από τα sch-scripts αντιγράφει το αρχείο μόνο στους επιλεγμένους μαθητές. Άρα αν εκείνη στιγμή κάνει μάθημα το a1, θα αντιγραφεί σε όλους τους μαθητές του a1, και μόνο σε αυτούς.

Ο εικονικός δίσκος δεν έχει καμία σχέση. Ένα F5 στην επιφάνεια εργασίας μπορεί να χρειάζεται για ανανέωση σε όλες τις περιπτώσεις.

denispyr

Άλκη είχες παλιά φτιάξει ένα skript;aki group-exec.
Παράθεση από: alkisg στις 14 Δεκ 2011, 02:27:39 ΜΜ
Δημήτρη ανεβάζω ένα script ονόματι group-exec το οποίο είναι πιο γενικής χρήσης και θα πρέπει να υπερκαλύπτει τις ανάγκες σου. .....

Έχει αντικατασταθεί με κάτι άλλο;

Αν όχι μάλλον κάτι άλλαξε τα τελευταία 8 χρόνια  :o γιατί αν το εκτελέσω για το a1

Κώδικας: bash
group-exec a1 cp '/home/denispyr/Επιφάνεια εργασίας/Άσκηση 1.pdf' 'Επιφάνεια εργασίας/'


μου  βγάζει για για κάθε μέλος

Κώδικας: bash
Executing: sudo -i -u a1-9 exec  -- 'cp' '/home/denispyr/Επιφάνεια εργασίας/Άσκηση 1.pdf' 'Επιφάνεια εργασίας/'
-bash: exec  -- 'cp' '/home/denispyr/Επιφάνεια εργασίας/Άσκηση 1.pdf' 'Επιφάνεια εργασίας/': Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
Διονύσης

alkisg

Έχω γράψει διάφορα σχετικά scripts κατά καιρούς εδώ στο φόρουμ αλλά ακόμα δεν αξίωσα να το κάνω να γίνεται με δεξί κλικ από τα sch-scripts.

Αμυδρά θυμάμαι ένα bug με τη sudo και το quoting των παραμέτρων, πάντως τώρα στην 18.04 έτσι όπως ήταν δεν έπαιζε. Το έστρωσα λίγο, κάνε μια ακόμα δοκιμή.

denispyr

Για τους απλούς λογαρισαμούς (όχι sudoers υποθέτω) βγάζει
Κώδικας: bash
Executing: sudo -i -u a2-8 -- cp /home/denispyr/Επιφάνεια εργασίας/Άσκηση 1.pdf Επιφάνεια εργασίας/
cp: αδύνατη η εκτέλεση της stat στο αρχείο '/home/denispyr/Επιφάνεια εργασίας/Άσκηση 1.pdf': Άρνηση πρόσβασης

Αν προσπαθήσω με αρχείο που έχει read permissions τότε παίζει (άρα έχω workaround αν χρειαστεί).

Επίσης αν δώσω a1,a2 δίνει
Κώδικας: bash
No users found in these groups: a1,a2
Διονύσης

alkisg

Το "no users found" το διόρθωσα, ξανακάνε λήψη. Εντωμεταξύ ξέθαψες πολύ παλιό script και μου φαίνεται πολύ περίεργο να το "συντηρώ" εκτός git!

Για την άρνηση πρόσβασης, πρέπει πριν τρέξεις την εντολή να κάνεις `sudo chmod 755 ~` για να δώσεις δικαιώματα ανάγνωσης στο /home/denispyr, ή να βάλεις το αρχείο κάπου αλλού που να έχουν δικαίωμα να το διαβάσουν οι χρήστες.

Τα sch-scripts δίνουν δικαίωμα ανάγνωσης μόνο στο group teachers στους αρχικούς καταλόγους των καθηγητών.

denispyr

Ευχαριστώ για την υποστήριξη :)
Έχεις σε κάποιο git μαζεμένα σκριπτάκια χρήσιμα; Κοίταξα στο https://gitlab.com/sch-scripts/sch-scripts αλλά δεν είδα κάτι.
Διονύσης