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

Debian στο Raspberry Pi και Permissions


fwtonio

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

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

 

Πχ

 

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, βάλε "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.

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

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

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

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

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

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

Σύνδεση

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

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

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