Info:

twitter

Ultimi commenti: Comment feed

Tags:

Sponsor:

Archivio 2018:

Feb Gen

Archivio 2017:

Dic Nov Ott Mag Apr Mar Feb Gen

Archivio 2016:

Dic Nov Ott Ago Mag Mar Feb Gen

Archivio 2015:

Nov Ott Set Mar Gen

Archivio 2014:

Dic Nov Ott Set Lug Giu Mag Apr Gen

Archivio 2013:

Dic Nov Set Ago Lug Giu Mag Apr Feb Gen

Archivio 2012:

Dic Nov Ott Set Ago Giu Mag Apr Mar Feb Gen

Archivio 2011:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2010:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2009:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2008:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2007:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2006:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Unix permissions vs. ACLs

La nuova implementazione del server è in dirittura di arrivo, mentre scelgo l’OS su cui installare i dati in formato ZFS. Sto provando FreeNAS 8 RC5 che mi piace abbastanza e mi son imbattuto con un problema alquanto classico.

Ci sono quattro utenti: Tizio, Caio, Sempronio e Ugo. L’obiettivo è di dare accesso totale a Tizio e Caio, in lettura a Sempronio e nessun accesso a Ugo (che ha accesso ad altri file). Di solito quando si confronta l’implementazione delle policy di accesso viene spesso fuori il luogo comune che le ACL sono più flessibili del necessario, che possono introdurre bachi se usate male, ecc. mentre i permessi Unix sono semplici e difficili da sbagliare.

Nel mio caso però non sono riuscito a trovare una soluzione soddisfacente al problema. Sono troppo Windows Oriented o le policy di accesso Unix tradizionali sono così limitate? Attendo illuminazione…

Potrebbero interessarti anche:
Commenti (28):
1. floo
lunedì 25 aprile 2011 alle 8:19 PM - chrome 10.0.648.205 Windows 8
   

Se non sbaglio, anche nel mondo Unix è arrivato qualcosa di simile alle ACL. Mi pare poi che con ZFS dovrebbero essere supportate.

   
2. Paperino
lunedì 25 aprile 2011 alle 10:24 PM - chrome 10.0.648.205 Windows 7
   

Yes, sono le ACL Posix e ZFS ne supporta un'estensione (guarda caso mooooolto simile a quelle Windows). La mia domanda è: con i permessi tradizionali Unix si può fare quello che voglio? Mi sembra di no ad occhio e croce, però non vorrei essere troppo limitato nel calcolo delle permutazioni

   
3. bpz
martedì 26 aprile 2011 alle 9:09 AM - firefox 4.0 Windows 7
   

fai un gruppo "tica" e lo assegni a tizio e caio poi fai un utente sempronio

chown sempronio:tica /folder/* -R

chmod 570 /folder/* -R

se non sbaglio dovrebbe andare...

   
4. Paperino
martedì 26 aprile 2011 alle 6:20 PM - chrome 10.0.648.205 Windows 7
   

@bpz: sì, condizionale d'obbligo. Ci ho pensato anche io ma ho scartato perché:

1) è un hack, l'owner fa da prestanome, chissá che succederebbe per le leggi antiriciclaggio

2) non scala. Se a sempronio si aggiunge Bob, la soluzione non funziona.

FreeNAS mi sta deludendo parecchio anyway.

   
5. Gabriele
martedì 26 aprile 2011 alle 11:33 PM - chrome 4.1.249.1045 Windows 7
   

@floo
Le ACL Posix sono del 2002-2003, è un po' che ci sono.
Poi ci sono varie implementazioni...

@Paperino
La filosofia Unix è Keep It Simple Stupid.
Opzioni semplici per il 90% dei casi in cui bastano, opzioni potenti per il restante 10%.
In windows la filosofia è diversa. Aggiungi l'ereditarietà dei permessi, diversi utenti anonimi o locali e il fatto che windows passa per essere semplice da usare ed ecco perché la gente finisce per dare tutti i permessi a tutti al primo problema di accesso negato.
Ossia levare la porta perché non si riesce ad usare la chiave...

   
6. Gabriele
martedì 26 aprile 2011 alle 11:35 PM - chrome 4.1.249.1045 Windows 7
   

Wow, risulto Chrome@windows7 mentre sono webkit@android!

   
7. Snake
mercoledì 27 aprile 2011 alle 1:46 PM - Opera 11.10 Windows 7
   

In windows la filosofia è diversa.

Io la metterei in altri termini: il vero problema risiede tra la sedia e la tastiera, a prescindere dalla piattaforma in uso. Ho visto fare le peggio porcate (in termini di settaggio dei permessi) su sistemi GNU/Linux e BSD così come Windows. Gli strumenti bisogna saperli usare, e per saperli usare bisogna conoscere la piattaforma, chi fa le porcate solitamente cerca sempre la via più facile e meno "brainstormed" per risolvere il problema, che non sempre è quella corretta/idonea, proprio perchè chi la applica pecca di scarsa conoscenza della piattaforma, unita ad un pizzico di laziness  nell'imparare a gestirla correttamente.

   
8. Paperino
mercoledì 27 aprile 2011 alle 6:44 PM - chrome 10.0.648.205 Windows 7
   

@Gabriele: di semplici son semplici; mi permetto di fare un'osservazione: Unix è nato per i lab e le organizzazione modellate più o meno sul modello gerarchico. Nel momento in cui questa premessa non è valida come nell'uso casalingo di un server il modello mostra i suoi limiti.

Lo scopo del post non è denigrare, ma un onesto tentativo di capire se effettivamente ne stavo saggiando i limiti o mi sfuggiva qualcosa visto che non ho dovuto fare "ricerca" ma ho semplicemente cercato di applicare le ACL che avevo sul vecchio server con FreeNAS. Il risultato è che con questa versione (RC5), con ZFS come file system, non è possibile, ma questa è un'altra storia.

Ma tutta questa moltitudine di NAS opensource sul mercato la usa veramente qualcuno??

   
9. Passante
giovedì 9 giugno 2011 alle 3:46 AM - firefox 3.6.16 Linux
   

non ho ben prensente freenas delle ultime versioni ma su server linux non e' una roba difficile usando solo gruppi e utenti, in samba puoi imporre che i file che vengono scritti dentro una determinata share abbiamo sempre la stessa maschera utente/gruppo e dei permessi  a prescindere da quale utente effettivamente vi accede e a quel punto tu puoi tranquillamente aggiungere un'utente al gruppo senza problemi. E' piu' probabile che in freenas ci siano problemi di gui che limitazioni del sistema.

Dovresti provarti questa distribuzione http://wiki.contribs.org/Main_Page fa molto altro oltre al fileserver, ma la gui e' parecchio piu' avanzata di freenas

   
10. Paperino
giovedì 9 giugno 2011 alle 7:57 PM - chrome 12.0.742.91 Windows 7
   

Ciao Passante, distro interessante ma non mi sembra che supporti ZFS (a meno di non voler varcare territori insondati: www.zfsonlinux.org ). E no ZFS, no party.

   
11. Passante
sabato 11 giugno 2011 alle 2:46 PM - firefox 3.6.16 Linux
   

bisogna vedere quanto sia realmente necessario ZFS e quanto la sua presenza sia importante in confronto ad altre features di gestione del sistema degli utenti etc... Ho provato freenas anni fa' quando era ancora molto immaturo e l'ho sempre trovato molto limitante perche' se non e' esattamente come vuoi e' piu' difficile personalizzarselo al contradio di una distro piu' completa che puo' essere adattata facilmente, prova a cercare nel forum di quella distribuzione magari qualcuno e' riuscito a installarci fuse-zfs, contribs cmq e' basata su centos quindi e' probabile che pacchetti aggiuntivi provenienti dai repository centos possano essere usati seguendo qualche tutorial, ricordo che mi era capitato di installa php5 cgi per poter avere il supporto al php5 su alcuni siti hostati quando ancora ufficialmente supportava solo php4.

Cmq le cose che vorresti fare tu gia' all'epoca le facevo regolarmente su server di aziende con qualche centinaio di client windows con titolari paranoici che volevano tot utenti in RW tot in R only tot che non entrassero e via discorrendo, e anche l'aggiunta di nuovi utenti era una passeggiata, ma lo sarebbe anche editando semplicemente a mano smb.conf, al contrario ho sempre trovato caotico il sistema di permessi di windows e anche stupido che in un sistema windows un'utente amministratore possa escludere a se stesso l'accesso ai suoi file, allora devi andare in provvisoria a fare le operazioni di ripristino dei permessi e' parecchio seccante, delle volte per far prima quando gli utenti scasinavano me capitato anche di avviare PC con dei live CD Linux per far prima.

   
12. Passante
sabato 11 giugno 2011 alle 2:50 PM - firefox 3.6.16 Linux
   

nell'ultimo mex mi son spiegato male, anche in Linux uno potrebbe vietare l'accesso a un proprio file, pero' root sopra tutto ha accesso totale, mentre su windows (almeno fino a XP pro) Administrator poteva non riuscire ad eseguire certe operazioni se non in modalita' provvisoria.

   
13. Paperino
sabato 11 giugno 2011 alle 6:34 PM - chrome 12.0.742.91 Windows 7
   

Per riappropriarsi dei permessi dei file, da NT in poi, non è necessaria la modalità provvisoria, basta riprendersi l'ownership. Un amministratore può sempre prendere l'ownership del file e l'owner ha sempre il permesso di modificare le ACL.

In quanto ai file system ZFS per ora è l'unico file system in grado, ovviamente in presenza di ridondanza, di scoprire errori hardware, correggerli al volo, creare un record per l'errore nel log e restituire i dati corretti all'applicazione. Nessun file system per ora è in grado di fare questo e c'è da aggiungere che a differenza di BTRFS ZFS è alquanto "maturo". Se ti leggi un paio di ricerche pubblicate da Cern e altri enti che hanno a che fare con grosse quantità di dati e quindi possono fornire statistiche accurate scopri che gli errori elettronici, per quanto meno drammatici di quelli meccanici, sono estremamente più comuni. Forse sono troppo paranoico io ma non mi piacerebbe vedere l'accesso ai file a cui tengo di più sparire da un momento all'altro e senza che io possa neanche accorgemene: fenomeno che va sotto il nome di silent corruption. Aggiungi pure che tra SSD e altissime densità nei platter dei nuovi HD il fenomeno non può che peggiorare.

   
14. Passante
sabato 11 giugno 2011 alle 10:40 PM - firefox 3.6.16 Linux
   

"Per riappropriarsi dei permessi dei file, da NT in poi..." in teoria... in pratica mi capitato tansissime volte che mi fosse negato a volte riuscivo solo in provvisoria ad effettuare certe modifiche a volte non ci riuscivo del tutto, il perche' non l'ho mai capito... magari c'era anche qualche errore nell'FS e avendo dietro le spalle l'utonto impaziente poi finivo per prendere le vie piu' rapide.

Sulle caratteristiche di ZFS non mi sono documentato tantissimo, anche perche' da diverso tempo mi occupo di elettronica vintage e non piu' di computer a tempo pieno (perche' di piene ne avevo anche le palle, piu' degli utenti che dei computer cmq...) Parlando solo di bad cluster gia' in un semplice raid1 se si danneggia un cluster di un disco il sistema se ne accorge a livello kernel, e passa all'applicazione il dato buono preso dal disco buono senza che questa se ne accorga. Poi puoi installare demoni che aprono popup o mandano email non appena vengono rilevati errori del genere cosi' che tu possa cambiare il disco che si sta guastando prima che avvengano errori ancora peggiori.

A parte che tipicamente un harddisk moderno va bene e rimane perfetto per X tempo poi quando inizi a trovare i primi badcluster di solito in poco tempo da li il disco e' da sbattere via.

   
15. Paperino
domenica 12 giugno 2011 alle 5:41 PM - chrome 12.0.742.91 Windows 7
   

1) la silent corruption è diversa dal concetto di bad cluster. Un bad cluster è qualcosa di cui il S.O. viene notificato. La silent corruption è la modifica accidentale dei dati: scrivi PIPPO però poi quando rileggi il cluster ci trovi PIPPA.

2) Nel caso della silent corruption avere delle repliche RAID non aiuta. Se hai un mirror RAID uno e due dischi su cui uno c'è scritto PIPPO e sull'altro PIPPA non hai nessun modo per capire quale dei due è corretto. Anzi molto spesso il controller RAID si accorge della discrepanza e marca il cluster logico come non più leggibile

3) La silent corruption è molto frequente. Siccome è silent non ci se ne accorge fin quando non è troppo tardi.

4) con RAID 5 se uno dei dischi si corrompe (ovvero continua a scrivere contenuti sbagliati) non c'è modo di recuperare i dati.

5) La silent corruption può avvenire in diversi modi: problema di controller o addirittura dati già scritti che si alterano a causa di fenomeni magnetici.

ZFS risolve tutti questi problemi ed introduce una flessibilità nella gestione dei volumi logici che è inimmaginabile. Tutti i FS moderni si stanno orientando nella stessa direzione, ma ZFS è stato lanciato già nel 2004 quindi ha anche una maturità abbastanza rilevante. Aggiungici il supporto alla deduplicazione online e tante altre belle cosette ed avrai il quadro preciso della situazione.

   
16. Passante
domenica 12 giugno 2011 alle 7:47 PM - firefox 3.6.16 Linux
   

Scusa quando scrivi dati su un cluster vengono anche piazzati bit di controllo, per avere una corruzzione del genere sarebbe necessario che il dato fosse sbagliato e i bit di controllo calcolati in coerenza col dato sbagliato diversamente l'errore sarebbe palesemente anche al piu' arcaico dei SO, stessa cosa capita durante la trasmissione dei dati sui vari BUS, cosa che invece mi e' capitato di osservare e' nel caso di RAM bacate che sul disco venissero scritti fischi per fiaschi, ma in questo caso a mio parere il SO legge dati sbagliati dalla RAM e li scrive "correttamente corrotti" sul disco ma qui non c'e' filesystem che tenga. Tornando all'errore del disco mi sembra che materialmente sia molto difficile che possa avvenire una cosa del genere, mi fa venire in mente piu' che altro una tecnologia che permetta il funzionamento di sistemi informatici in condizioni estreme, tipo apparecchiature sottoposte a radiazioni (centrali nucleari o satelliti e robottini vagabondi per lo spazio) dove il bombardamento di particelle ionizzanti provoca frequenti interferenze sui dischi.

   
17. Paperino
lunedì 13 giugno 2011 alle 7:27 AM - chrome 12.0.742.91 Windows 7
   

Scusa quando scrivi dati su un cluster vengono anche piazzati bit di controllo

Ma se questo succede dopo che i dati sono considerati "scritti" li devi praticamente buttare.

 Tornando all'errore del disco mi sembra che materialmente sia molto difficile che possa avvenire una cosa del genere

Infatti da un punto di vista statistico lo e'. Il problema è che quando le quantità si fanno grandi la legge dei grandi numeri è in agguato. 1 TB sono 8 circa miliardi di bit. Qualcuno questi calcoli li ha fatti: www.cs.wisc.edu/.../corruption-fast08.html

http://indico.cern.ch/getFile.py/access?...

static.googleusercontent.com/.../disk_failures.pdf 

 

   
18. Passante
lunedì 13 giugno 2011 alle 1:49 PM - firefox 3.6.16 Linux
   

non ho capito "Ma se questo succede dopo che i dati sono considerati "scritti" li devi praticamente buttare." quando tu passi dati all'elettronica del disco esso li memorizza nella sua cache poi la scrittura dei singoli settori da 512byte avviene in modo hardware, quando il disco scrive quindi scrive un settore alla volta tutto per intero, cioe' crea un pacchetto dati e metadati (dove i metadati sono i bit di controllo) da 512byte totali che viene scritto. Non credo sia possibile scrivere un dato su un settore senza che vengano calcolati e scritti anche i relativi bit di controllo perche' e' una procedura hardware di basso livello gestira direttamente dal firmware del disco fisso, stessa cosa avviene sui BUS perche' tutti i protocolli di trasferimento asincroni  prevedono l'impacchettare cio' che viene fatto passare con dati di controllo e con algoritmi di verifica e correzzione piuttosto efficaci. Poi per la teoria del caos e per la legge dei grandi numeri se getto a caso i vestiti nell'armadio infinite volte almeno 1 volta questi finiranno per disporsi perfettamente in ordine, pero' questa e' un'evenienza talmente rara che preoccuparsene e' piu' che paranoico, e forse in ZFS la hanno prevista perche' il filesystem puo' gestire dischi da migliai di exabyte, ma con solo misero tera per me e' quasi impossibile, nel tuo sistema hai piu' probabilita' che ti corrompa un dato quando e' ancora in RAM (come nell'esempio sopra) e se il livello di preoccupazione e' questo io al posto tuo mi preoccuperei piu' di montare delle RAM ecc registered che usare ZFS

   
19. Passante
lunedì 13 giugno 2011 alle 3:04 PM - firefox 3.6.16 Linux
   

errata: sui dischi la dimensione di settore e' maggiore di 512 byte, 512 byte e' la capienza netta esclusi i bit di controllo gestiti dall'hardware.

   
20. Paperino
lunedì 13 giugno 2011 alle 7:33 PM - chrome 12.0.742.91 Windows 7
   

Non mi son spiegato bene.

L'OS chiede al disco di scrivere PIPPO. Ci sono due possibilità

  1. va tutto bene
  2. il settore è danneggiato

Nel caso due l'OS marca il settore e scrive altrove. 

Nel caso uno il dato viene scritto sul disco ma si danneggia in seguito. Il danno può essere di due tipi:

  1. evidente, ovvero il controller non riesce più a leggere il settore
  2. subdolo, il controller rileggendo i dati legge PIPPA anziché PIPPO.

Perché 2 possa accadere deve, come fai notare, cambiare più di un bit, almeno due. Le ricerche hanno dimostrato che questo accade più spesso di quanto pensiamo, in quanto l'evento del cambiamento di due bit in uno stesso settore non è indipendente. 

   
21. Passante
lunedì 13 giugno 2011 alle 8:44 PM - firefox 3.6.16 Linux
   

ho capito cosa hai detto ma se il bit cambia in seguito alla scrittura la sequenza di dati non collimera' piu' con il dati di controllo e quindi in fase di lettura l'errore viene rilevato, per non essere rilevato non solo devono modificarsi i dati ma anche i bit di controllo devono venir modificati e in una maniera tale da combaciare e questa e' un'evenienza davvero molto rara, ci credo che possa capitare ma credo che queste protezioni abbiano senso di fronte ad enormi datacenter dove hai capacita' di stoccaggio dati di migliaia e migliaia di terabyte.

Quindi se vuoi provare zfs per pura sperimentazione ok, ma se il tuo scopo e' pratico io non mi farei troppe paranoie, e mi preoccuperei di altri aspetti della macchina, se devi fare un fileserver io mi preoccuperei di montare una bella schema madre tranquilla e con un processore che scalda poco, ram buone, di fare un bel raid con dischi diversi (per prevenire che si rompano tutti nello stesso lasso di tempo) e metterei un SO con un'interfaccia avanzata e facilmente customizzabile.. tutto il resto sono dettagli

   
22. Paperino
lunedì 13 giugno 2011 alle 9:39 PM - chrome 12.0.742.91 Windows 7
   

un'evenienza davvero molto rara

vs

CERN found an overall byte error rate of 3 * 10^7

Ovviamente la ricerca del CERN è basata su tecnologia del 2007. Non mi sorprenderebbe se nel 2011 i dati siano peggiorati visto che non c'è stato nessun annuncio in questa direzione.

Se alla paranoia ci aggiungi anche la probabilità di sfiga...

   
23. Passante
martedì 14 giugno 2011 alle 2:20 PM - firefox 3.6.16 Linux
   

e la capienza del data storage qual'e' ? numeri cosi' grossi sembrano cmq tanto irreali, cioe' un computer dovrebbe essere sempre bloccato perche' ogni volta che carichi un'eseguibile o una libreria leggeresti dati errati e quindi l'applicazione andrebbe in crash. Si potrebbe fare un'esperimento casalingo usando semplicemente md5sum, fai uno script che in loop calcola l'md5 di un file da 1 mega e registra il log e poi vedere quante volte l'md5 risuta diversa...

   
24. Passante
martedì 14 giugno 2011 alle 3:24 PM - firefox 3.6.16 Linux
   

secondo quanto ho letto l'esperimento e' stato condotto su storage di centinaia o migliaia di petabyte, facendo girare un file da 2 giga con un pattern preciso su un sisteam distribuito di centinaia di 100 nodi rilevando alla fine 500 errori, in via proporzionale su un singolo disco da 1 tera la probabilita' rimane veramente remota e sei sicuramente piu' soggetto ad altri problemi.

   
25. Passante
martedì 14 giugno 2011 alle 3:25 PM - firefox 3.6.16 Linux
   

"sistema distribuito di 100 nodi"

   
26. Passante
martedì 14 giugno 2011 alle 3:26 PM - firefox 3.6.16 Linux
   

e questo file ha girato per 5 settimane

   
27. Paperino
martedì 14 giugno 2011 alle 6:23 PM - chrome 12.0.742.91 Windows 7
   

Ho letto statistiche non condivisibili provenienti da uno dei team più grandi in quanto a capacità che portano a confermare il mio pessimismo cosmico... Certo altri problemi ci possono essere, rottura meccanica, furti, ecc. però se il dato all'origine è bacato...

   
28. Passante
mercoledì 15 giugno 2011 alle 1:07 PM - firefox 3.6.16 Linux
   

ho letto anche io quella roba e ho concluso che buona parte dei problemi che hanno rilevato era data da BUG nei firmware e interazione tra questi, ad esempio tale harddisk messo su tale controller... di fatti menzionavano l'update dei firmware dei dischi. Poi come dicevo io nei silent corruption la modifica dei dati avviene dopo la scrittura ma quando torni a leggere il settore il checksum non torna piu' e il settore viene rilevato come badcluster. In ZFS praticamente non si fidano dei controlli hardware e hanno implementato un sistema di checksum e correzzione dell'errore via software e probabilmente in un sistema distribuito o in un sistema raid in caso di errore il filesystem riesce ad andare a trovare il dato corretto nel disco dove questo e' rimasto integro. Quindi sono ancora dell'idea che su un serverino semi casalingo ha un'utilita' molto relativa.

   
Lascia un commento:
Commento: (clicca su questo link per gli smiley supportati; regole di ingaggio per i commenti)
(opzionale, per il Gravatar)