PDA

Visualizza la versione completa : Aiuto su ACL


gianiaz
13-05-2010, 08:38
Ho configurato (o sto cercando di configurare) le acl per una dir del mio computer.

La directory è la dir "www" sotto la dir /media/ext, che è una partizione montata:



/dev/sda3 on /media/ext type ext3 (rw,acl)


Come potete vedere dal comando mount la partizione è montata con l'opzione acl.

Ora, quello che mi interessa fare, è fare in modo che in /media/ext/www/ possano scrivere il mio utente con il quale scrivo e sposto files in continuazione da questa directory in modi diversi (cp, mv, utilizzo di eclipse ecc) e l'utente www-data, con il quale gira il webserver.

Cosi ho dato un:



root@dune:/media/ext/www# chown gianiaz:www-data /media/ext/www/
root@dune:/media/ext/www# find . -type f -exec chmod 644 {} \;
root@dune:/media/ext/www# find . -type f -exec chmod 775 {} \;


In questo modo i files hanno i permessi corretti per permettermi di editarli da utente e da webserver.

Ora il problema è fare in modo che i files creati da gianiaz siano impostati con gruppo www-data, quindi per poterlo fare dopo ho settato il group id bit, in modo che i nuovi files di default abbiano assegnato il gruppo della dir genitore e non della shell.



root@dune:/media/ext/www# chmod g+s /media/ext/www/


Quindi se da utente gianiaz entro in media /media/ext/www/ e digito


gianiaz@dune:/media/ext/www$ touch test
gianiaz@dune:/media/ext/www$ ls -la test
-rw-rw-r--+ 1 gianiaz www-data 0 2010-05-13 08:30 test


vedo che il file viene creato correttamente con i giusti permessi, il problema si pone se un file viene creato dall'utente www-data, in quanto avrà proprietario e gruppo www-data, e con gianiaz non potrò editare questi files, cosi ho aggiunto gianiaz al gruppo www-data:



root@dune:/media/ext/www# adduser gianiaz www-data


Ora per essere sicuro che i files vengano creati con i giusti permessi ho anche lanciato il comando :

setfacl -m d:u::rwx,d:g::rwx,d:m:rwx,d:o:r-x /media/ext/www/

Ora il problema

Da utente www-data creo una directory, creo un file al suo interno e vedo questo:



drwxrwSr-x+ 2 www-data www-data 4096 2010-05-13 08:12 test.www


Come utente appartenente al gruppo www-data dovrei poter entrare nella dir ed editare il file, invece vedo questo:




gianiaz@dune:/media/ext/www$ cd test.www/
bash: cd: test.www/: Permesso negato
gianiaz@dune:/media/ext/www$ ls -la test.www/
ls: impossibile accedere a test.www/..: Permesso negato
ls: impossibile accedere a test.www/test: Permesso negato
ls: impossibile accedere a test.www/.: Permesso negato
totale 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? test
gianiaz@dune:/media/ext/www$


Come mi facevano notare, ho una S maiuscola nei permessi che non so bene cosa voglia dire, e dopo tutte queste prove non so bene dove sono andato a parare, qualcuno può darmi una mano?

Grazie

gianiaz
13-05-2010, 08:41
Aggiungo questo se può essere utile:


gianiaz@dune:/media/ext/www$ getfacl test.www/
# file: test.www/
# owner: www-data
# group: www-data
# flags: -s-
user::rwx
group::rwx #effective:rw-
mask::rw-
other::r-x
default:user::rwx
default:group::rwx #effective:rw-
default:mask::rw-
default:other::r-x

gianiaz
13-05-2010, 09:02
Ho trovato la soluzione, in pratica il comando setfacl che ho incollato qui era diverso da quello che ho usato sul sistema, nello specifico nella mask avevo messo rw- anzichè rwx:



setfacl -m d:u::rwx,d:g::rwx,d:m:rw-,d:o:r-x /media/ext/www/


Quello che non mi è molto chiaro è perchè debbano cambiare tutti i significati dei permessi cambiando solo la parte relativa alla mask...

dovrò studiarmi un po' la cosa :-)

se avete info da aggiungere sono ben accette :-)

ciao

sacarde
13-05-2010, 11:39
...
SETGID (Set Group ID):

NOTAZIONE: Viene identificato con s sul permesso di execute in Gruppo (se Gruppo non ha il permesso di execute si denota con S). Es. -rwxrwsr--

USO: Si imposta col codice numerico 2. Es. # chmod 2xxx nome_file

SIGNIFICATO: Il file viene eseguito coi permessi del gruppo.

gianiaz
13-05-2010, 11:44
si il problema del s l'ho capito, ora mi rimane il dubbio di setfacl, ma in effetti ho fatto un po' a pappagallo leggendo un tutorial, ora funziona, ma dovrò studiarmi un po' la cosa.

Loading