Προς το περιεχόμενο

File permisions & ownership


miza

Προτεινόμενες αναρτήσεις

Έχω κάποια αρχεία τα οποία owner είναι ο www-data με group www-data. Έχω δώσει δικαίωμα σε όσους είναι στο group να μπορούν να επεξεργάζονται αυτά τα αρχεία (chmod 770). Όταν ένας user που είναι στο group www-data επεξεργαστεί κάποιο αρχείο τότε γίνετε owner του αρχείου. Πως μπορώ να "κλειδώσω" τον owner των αρχείων, ώστε όποιος και να γράφει στα αρχεία owner των αρχείων και του group να παραμένει ο www-data.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό δεν θα έπρεπε να συμβαίνει, είσαι σίγουρος;

Ένας τρίτος χρήστης κανονικά δε μπορεί με οποιοδήποτε τρόπο να αλλάξει την ιδιοκτησία ενός αρχείου, άσχετα από το αν έχει write permissions σε αυτό.

 

>(root) # touch test
(root) # chgrp nske test
(root) # chmod g+w test
(nske) $ echo test > test
(nske) $ ls -lh test
-rw-rw-r-- 1 root nske 5 2009-09-07 21:00 test

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εκεί στο τελευταίο θρανίο, πάμε για λίγα advanced unix permissions. Μερικά δεδομένα:

 

  1. Κάθε αρχείο που δημιουργεί ο χρήστης ανήκει στον ίδιο.
  2. Κάθε αρχείο που δημιουργεί ο χρήστης, έχει ως group το primary group του χρήστη, εκτός αν το directory μέσα στο οποίο δημιουργείται το αρχείο έχει το setgid bit set, οπότε «κληρονομεί» το group από το directory.
    >
    apoikos@crowley:~/tmp/test $ mkdir a
    apoikos@crowley:~/tmp/test $ mkdir b
    apoikos@crowley:~/tmp/test $ sudo chgrp audio b
    apoikos@crowley:~/tmp/test $ sudo chmod g+s b
    apoikos@crowley:~/tmp/test $ ls -l
    total 8
    drwxr-xr-x 2 apoikos apoikos 4096 2009-09-07 21:33 a
    drwxr-sr-x 2 apoikos audio   4096 2009-09-07 21:33 b
    apoikos@crowley:~/tmp/test $ touch a/test
    apoikos@crowley:~/tmp/test $ touch b/test
    apoikos@crowley:~/tmp/test $ ls -l a/test
    -rw-r--r-- 1 apoikos apoikos 0 2009-09-07 21:34 a/test
    apoikos@crowley:~/tmp/test $ ls -l b/test
    -rw-r--r-- 1 apoikos audio 0 2009-09-07 21:34 b/test
    


     

  3. Τα permissions του ίδιου του αρχείου καθορίζονται από την umask. man umask.
     
  4. Ο χρήστης μπορεί να αλλάξει μόνο το group ενός αρχείου που του ανήκει, και αυτό μόνο προς ένα group στο οποίο είναι μέλος
     
  5. Αν ο χρήστης είναι owner του directory, ή αν έχει write permissions στο directory χωρίς να είναι ιδιοκτήτης του και το directory δεν έχει το sticky bit set, τότε μπορεί να σβήσει ή να μετονομάσει ένα αρχείο μέσα σε αυτό, ακόμα και αν δεν μπορεί να γράψει στο ίδιο το αρχείο.
     
    >
    apoikos@crowley:~/tmp/test $ mkdir c
    apoikos@crowley:~/tmp/test $ sudo chown root c
    apoikos@crowley:~/tmp/test $ sudo chgrp g+w c
    apoikos@crowley:~/tmp/test $ ls -ld c/
    drwxrwxr-x 2 root apoikos 4096 2009-09-07 21:43 c/
    apoikos@crowley:~/tmp/test $ sudo touch c/test
    apoikos@crowley:~/tmp/test $ ls -l c/test
    -rw-r--r-- 1 root root 0 2009-09-07 21:47 c/test
    apoikos@crowley:~/tmp/test $ rm c/test
    rm: remove write-protected regular empty file `c/test'? y
    apoikos@crowley:~/tmp/test $ ls -l c/
    total 0
    


     

  6. Αν ένα world ή group writable directory έχει το sticky bit set, τότε ένα αρχείο μπορεί να το σβήσει ή να το κάνει rename μόνο ο ιδιοκτήτης του ή ο ιδιοκτήτης του directory. Αυτός είναι ο λόγος για τον οποίο τα "public" directories, π.χ. /tmp, /var/tmp κανονικά πρέπει να έχουν το sticky bit set, ώστε να μπορούν να δημιουργήσουν μεν όλοι οι χρήστες αρχεία, αλλά να μην μπορεί ο ένας χρήστης να πειράξει τα αρχεία του άλλου.
     
    >
    apoikos@crowley:~/tmp/test $ sudo chmod +t c/
    apoikos@crowley:~/tmp/test $ ls -ld c
    drwxrwxr-t 2 root apoikos 4096 2009-09-07 21:48 c
    apoikos@crowley:~/tmp/test $ sudo touch c/test
    apoikos@crowley:~/tmp/test $ ls -l c/test 
    -rw-r--r-- 1 root root 0 2009-09-07 21:48 c/test
    apoikos@crowley:~/tmp/test $ rm c/test
    rm: remove write-protected regular empty file `c/test'? y
    rm: cannot remove `c/test': Operation not permitted
    


     

 

Συνοψίζοντας, αν σε ένα directory θες να έχουν όλοι write access, αλλά να μην μπορεί ο ένας να τροποιήσει τα αρχεία του άλλου, τότε το κάνεις chmod 1777 και owned από τον root. Αν θες να έχουν πρόσβαση περιορισμένοι χρήστες και να μπορούν όλοι να γράψουν στα αρχεία όλων, τότε το κάνεις chmod 2775 (ή 2770), βάζεις τους χρήστες στο owning group του directory και ρυθμίζεις το umask σε 007.

 

Αυτά τα ολίγα, είναι μάλλον ότι πιο πολύπλοκο υπάρχει σε UNIX permissions (εκτός από τις POSIX ACLs).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Γεια σου Δάσκαλε! :)

Ευχαριστούμε!

 

Γεια σας θρανία! :)

 

(κάποιος πρέπει να φτιάξει μια σελίδα στο wiki με συνδέσμους σε όλα αυτά τα μαθήματα του Δάσκαλου!)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτά κάνεις και μας σκλαβώνεις!

 

Σαβ/κο αν μπορέσεις έχει

 

beer-1.jpg

 

 

---------- Το μήνυμα προστέθηκε στις 22:18 ----------

 

(κάποιος πρέπει να φτιάξει μια σελίδα στο wiki με συνδέσμους σε όλα αυτά τα μαθήματα του Δάσκαλου!)

 

Γεια σου Άλκη! Εγώ τα μαζεύω!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

τα μαζεύεις αλλά απ' την πολύ ναυμαχία που παίζουμε

εκτός που δεν μ' αφήνεις να κρατάω σημειώσεις

δεν δημοσιεύεις και τις δικές σου !

 

άτακτε !

 

και θα διαπρέψει πάλι ο "καλός μαθητής" (γειά σου alkisg) :mrgreen:

 

γειά σας κύριε

fire κερνάω τις μπύρες !

.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάνοντας chmod 2770 αλλάζει ο owner αλλα το group παραμένει ίδιο,οποτε είμαι ok, γιατί πριν μου άλλαζε και το group και το owner και δεν μπορούσε μετά ο apache να κάνει τίποτα.

Το εξής παράξενο είναι ότι αν κάνω edit από nano και χωρίς να έχω 2770 με σκέτο 770 δεν αλλάζει ούτε owner ούτε το group, με το gedit αν έχω 2770 μου αλλάζει owner και μένει ίδιο το group και πριν βάλω 2770 μου άλλαζε και owner και group.Ευχαριστώ για αλλη μια φορα όλους για την πολύτιμη βοήθεια.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλησπέρα gtroza & everyone, good to be back :-)

 

(κάποιος πρέπει να φτιάξει μια σελίδα στο wiki με συνδέσμους σε όλα αυτά τα μαθήματα του Δάσκαλου!)

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

 

@firewalker, για τις beer.png π.μ. ;-)

 

@Miza μήπως τα αρχεία αυτά δεν είναι σε κάποιο τοπικό filesystem; Γιατί εκεί μπλέκουν λίγο τα πράγματα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Miza μήπως τα αρχεία αυτά δεν είναι σε κάποιο τοπικό filesystem; Γιατί εκεί μπλέκουν λίγο τα πράγματα.

 

Ναι, δεν είναι τοπικό. Έστησα ένα σερβερονι που το χειρίζομαι με ssh μονο για πειραματισμούς, torrent client, lamp, θέλω να το κάνω και φιλε server αλλα δεν έχω μεγάλο σκληρό ακόμα. Συνδέομαι με sftp και από εκεί ανοίγω με gedit τα αρχεία που θέλω.Με chmod 2770 πάντως μου φαίνονται όλα καλά, αφού το group παραμένει www-data είμαι μια χαρά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 4 μήνες μετά...

>$ ls -hl
drwxrwxrwx. 2 root  root  4.0K 2010-02-02 15:00 mydir

 

>cd mydir

 

>touch file1

 

>chown myuser:myuser file1

 

>chmod 700 file1

 

 

ΑΛΛΑ!!!...

 

o root συνεχίζει να έχει πλήρη δικαιώματα στο "file1" :(

 

Εγώ θέλω να έχει πλήρη δικαιώματα στο file1 μόνο ο "myuser" και κανένας άλλος ούτε ο root.

Και αυτό στο συγκεκριμένο dir /mnt/data/"mydir"

 

Γινεται;

 

Και.. πώς;

 

Ευχαριστώ προκαταβολικά! :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...