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

Debian στο Raspberry Pi και Permissions


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

Δημοσ.

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

 

Πχ

 

mkdir test

chmod –R 777 test

cd test

mkdir free

ls –l

 

και φαίνεται ότι ο free είναι: drwxr-sr-x ενώ θέλω να είναι: drwxrwsrwx

 

Γνωρίζει κανείς τον τρόπο;

  • Απαντ. 38
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ.

Δοκίμασε

 

chmod -R go+w test

 

Δυστυχώς επιστρέφει:  drwxr-sr-x για τον νέο φάκελο free, που δημιούργησα μέσα στον test.
 
Να ρωτήσω και κάτι άλλο.
Μήπως μπορώ να αλλάξω καθολικά όλα τα δικαιώματα του χρήστη;
Δηλ. ότι φάκελο ή αρχείο δημιουργεί ο χρήστης pi να είναι: drwxrwsrwx
 

Υπάρχει τρόπος;

Δημοσ.

Για το πρώτο πρόβλημα σου δες το setuid,setgid bit, για το δεύτερο το umask.

 

Τελικά το umask 000 λύνει το πρόβλημα αλλά προσωρινά!
Μετά από μία επανεκκίνηση, επιστρέφουμε στην αρχική κατάσταση.
 
Μπορούμε να κάνουμε το umask 000 μόνιμο;
 
 
Τα setuid,setgid bit μου έπεσαν λίγο βαριά (δεν κατάλαβα τίποτα :P ) και δεν ασχολήθηκα.
Δημοσ.
Νομίζω ότι έβγαλα άκρη.

Γράφουμε

 

sudo nano  /etc/profile

 

Προσθέτουμε στο τέλος του αρχείου:

 

umask 000

 

Σώζουμε και μετά από επανεκκίνηση ισχύουν οι αλλαγές (υποθέτω για τον χρήστη pi)

 

Αν έχετε να προσθέσετε κάτι, πολύ ευχαρίστως.
Δημοσ.

Πάντως αυτο που έκανες είναι πολύ επικίνδυνο άλλαξες system-wide το umask. Αν σώνει και καλά το θες αυτο άλλαξε το umask μόνο στο profile του χρήστη σου μέσα στο ~ και το άλλο ξανακάντο όπως ήταν.

Δημοσ.

Πάντως αυτο που έκανες είναι πολύ επικίνδυνο άλλαξες system-wide το umask. Αν σώνει και καλά το θες αυτο άλλαξε το umask μόνο στο profile του χρήστη σου μέσα στο ~ και το άλλο ξανακάντο όπως ήταν.

 

Άρα έχουμε και λέμε:
Επαναφέρουμε το /etc/profile
και μετά
 
sudo nano ~/.profile  ( αυτό είναι το σωστό; )
 
Προσθέτουμε στο τέλος του αρχείου:
 
umask 000
 
Σώζουμε και μετά από επανεκκίνηση ισχύουν οι αλλαγές μόνο για τον χρήστη pi.
Ασφαλέστερο τώρα;
Δημοσ.

Καλύτερα στο "~/.bashrc".


Btw διαβάζοντας το topic, είναι χίλιες φορές προτιμότερο να κινηθείς με ACL (=Access Control Lists). Η τροποποίηση του umask κρύβει διάφορους κινδύνους και παγίδες, δε συνίσταται να τροποποιείται ακόμα και για απλούς χρήστες αν δεν είσαι 100% σίγουρος τι κάνεις.

 

Το ακόλουθο one-liner θα κάνει τη δουλειά σου, δοκίμασε το και απέφυγε τα umask voodoo:

setfacl -Rm u::rwX,g::rwX,o::rwX,d:u::rwX,d:g::rwX,d:o::rwX /path/to/your/directory/

Το τρέχεις σαν απλός χρήστης αντικαθιστώντας το δικό σου directory path στο τέλος. Αυτό που κάνει είναι το εξής: το πρώτο κομμάτι (u::rwX,g::rwX,o::rwX) είναι ακριβώς το ίδιο με το αν έκανες "chmod -R 777". Το δεύτερο κομμάτι (d:u::rwX,d:g::rwX,d:o::rwX) ορίζει το default, ώστε όποτε δημιουργηθεί καινούριο αρχείο/φάκελος να του γίνει αυτόματα το ίδιο chmod.

 

Για περισσότερες πληροφορίες man setfacl.

 

P.S.: Προϋπόθεση της παραπάνω μεθόδου είναι να υποστηρίζει ACLs το file system σου. Σε οποιαδήποτε σύγχρονη διανομή είναι ενεργοποιημένα by default.

Δημοσ.

Καλύτερα στο "~/.bashrc".

Btw διαβάζοντας το topic, είναι χίλιες φορές προτιμότερο να κινηθείς με ACL (=Access Control Lists). Η τροποποίηση του umask κρύβει διάφορους κινδύνους και παγίδες, δε συνίσταται να τροποποιείται ακόμα και για απλούς χρήστες αν δεν είσαι 100% σίγουρος τι κάνεις.

 

Το ακόλουθο one-liner θα κάνει τη δουλειά σου, δοκίμασε το και απέφυγε τα umask voodoo:

setfacl -Rm u::rwX,g::rwX,o::rwX,d:u::rwX,d:g::rwX,d:o::rwX /path/to/your/directory/

Το τρέχεις σαν απλός χρήστης αντικαθιστώντας το δικό σου directory path στο τέλος. Αυτό που κάνει είναι το εξής: το πρώτο κομμάτι (u::rwX,g::rwX,o::rwX) είναι ακριβώς το ίδιο με το αν έκανες "chmod -R 777". Το δεύτερο κομμάτι (d:u::rwX,d:g::rwX,d:o::rwX) ορίζει το default, ώστε όποτε δημιουργηθεί καινούριο αρχείο/φάκελος να του γίνει αυτόματα το ίδιο chmod.

 

Για περισσότερες πληροφορίες man setfacl.

 

P.S.: Προϋπόθεση της παραπάνω μεθόδου είναι να υποστηρίζει ACLs το file system σου. Σε οποιαδήποτε σύγχρονη διανομή είναι ενεργοποιημένα by default.

 

Καταργούμε το umask.
Επανεκκίνηση και γυρίζουμε στην αρχική κατάσταση.
Η εντολή δεν υπήρχε οπότε, γράφουμε:
 
sudo apt-get install acl
 
Επανεκκίνηση.
 
setfacl -Rm u::rwX,g::rwX,o::rwX,d:u::rwX,d:g::rwX,d:o::rwX /path/to/your/directory
 
και επιστέφει για τους φακέλους και υποφακέλους:
 
setfacl: /path/to/your/directory: Operation not supported
 
και ενώ αλλάζει τους υπάρχοντες φακέλους σε drwxrwsrwx, δεν «μεταδίδει» την ιδιότητα και τους νέους.
 
Δοκίμασα umask 000 στο ~/.bashrc και η ιδιότητα που θέλω επανήλθε.
Δημοσ.

Δεν πιστεύω να εκτέλεσες την εντολή με "/path/to/your/directory" μέσα, έτσι?  ^_^

 

Οι ACLs είναι η ιδανική λύση για το πρόβλημα σου πάντως. Αν θες να το κάνεις να δουλέψει πόσταρε το /etc/mtab να δούμε αν είναι ενεργοποιημένα τα ACLs στο file system σου.

Δημοσ.
:-D

Η ακριβής θέση είναι: /home/pi/test

 

 

/etc/mtab 

 

rootfs / rootfs rw,noatime,size=112640k,nr_inodes=29204 0 0

proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0

sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0

dev /dev devtmpfs rw,relatime,size=116816k,nr_inodes=29204,mode=755 0 0

/dev/sda1 /mnt ext4 rw,noatime,data=ordered 0 0

/dev/loop0 /squashfs squashfs ro,relatime 0 0

none / aufs rw,relatime,si=5121ecbc 0 0

tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=47560k,mode=755 0 0

tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0

tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=95100k 0 0

devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
Δημοσ.

Άνοιξε /etc/fstab, βάλε "acl" στα mount options του root (μετά το noatime π.χ.), reboot και ξαναδοκιμάζεις την εντολή.

 

Ένα παράδειγμα του αποτελέσματος που προσφέρουν τα ACLs: http://pastebin.com/raw.php?i=sz6qd7T2

 

/etc/fstab

 

proc            /proc           proc    defaults          0       0

#/dev/mmcblk0p1  /boot           vfat    defaults          0       2
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
 
Ποιό είναι το root;
Δημοσ.

Η τελευταία γραμμή είναι αλλά πριν αλλάξουμε κάτι, τρέξε την εντολή "dumpe2fs -h /dev/mmcblk0p2" και πόσταρε ένα pastebin link. Ίσως χρειαστεί sudo. Θα μας δώσει πληροφορίες για το root filesystem σου, ίσως είναι ήδη ενεργοποιημένα τα ACLs.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

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