# [Risolto] Limitare lo spazio su una directory?

## Apetrini

Volevo sapere se qualcuno conosce qualche metodo per limitare lo spazio di alcune directori. Non a livello di utenti come con "quota" ma al livello di directori...

Per esempio voglio far si che in una certa directori gli utenti(tutti) non possano mettere piu di 1gb di roba...

Esiste qualcosa del genere?

Grazie.

edit: dopo la segnalazione di alcuni di voi, ho corretto "directori" con "directory", mi scuso se ho italianizzato la parola.

----------

## !equilibrium

metti il quote su un gruppo "XYZ"

metti "tutti gli utenti" che ti interessano in quel gruppo e adegui i permessi sulla dir.

my 2 cents.

----------

## akiross

DirectorY, comunque  :Very Happy: 

DarkAngel76, aveva detto non come quota, ma a livello directory.

Tornando al topic, onestamente non ho mai sentito qualcosa a livello directory. Per quel che so i quota e' a livello filesystem, e non a livello directory... poi ci sara' sicuramente qualche modo per limitare a livello di directory, ma onestamente non saprei come - senza ricorrere a stratagemmi ben piu' complicati.

Prova a guardare su google, per directory quota. Io ho trovato solo risposte negative... magari con una ricerca maggiore si trova qualcosa.

Ciauz

----------

## kaosone

io fare un file della dimensione che vuoi, e lo monterei in loopback dove ti interessa avere il limite.. non so se e' la soluzione piu' pulita

----------

## power83

 *kaosone wrote:*   

> io fare un file della dimensione che vuoi, e lo monterei in loopback dove ti interessa avere il limite.. non so se e' la soluzione piu' pulita

 

no ho capito assolutamente nulla di questa tecnica!

----------

## Kernel78

Se tu sai a priori quanto spazio dedicare a quella direcotry e sei SICURO che non vorrai aumentarlo in futuro la scelta migliore è creare una partizione con quella dimensione e montarla su quella directory, in questo modo non si può sforare il limite ed è di immediata implementazione. Il problema potrebbe sorgere se in un secondo tempo ti viene voglia di modificare lo spazio a disposizione di quella dir, con questo metodo dovresti crearti una nuova partizione della dimensione voluta e spostare tutto il contenuto della prima sulla seconda.

Se ti interessa una soluzione più scalare mantenendo anche la facilità di implementazione ti consiglio di dare un'occhiata a LVM. In questo modo potresti usare un volume LVM come partizione ma con il vantaggio che se volessi aumentare la dimensione ti basta assegnare altro spazio a quel volume (ovviamente se hai ancora spazio non allocato).

----------

## golaprofonda

 *Quote:*   

> con questo metodo dovresti crearti una nuova partizione della dimensione voluta e spostare tutto il contenuto della prima sulla seconda.

 

Con gparted può facilmente ridimensionare la partizione in un secondo tempo senza dover copiare niente.quindi la tua idea mi sembra buona..

----------

## Kernel78

 *golaprofonda wrote:*   

>  *Quote:*   con questo metodo dovresti crearti una nuova partizione della dimensione voluta e spostare tutto il contenuto della prima sulla seconda. 
> 
> Con gparted può facilmente ridimensionare la partizione in un secondo tempo senza dover copiare niente.quindi la tua idea mi sembra buona..

 

Su questo mi fido (non uso gnome o programmi che iniziano con la G) ma basta fdisk per modificare la dimensione di una partizione, semplicemente non mi piace in nessun caso ridimensionare una partizione e non sono sicuro che si possa fare senza riavviare il pc.

Con LVM di sicuro puoi aumentare lo spazio senza dover riavviare ma la cosa migliore a mio parere è che puoi avere un volume (l'equivalente di una partizione) che sia diviso su più dischi, in questo modo se finisci lo spazio su un disco ne acquisti un altro e aggiungi lo spazio da questo, cosa che con le partizioni non potresti gestire (nemmeno con gparted).

Io non mi ricordo nemmeno come riuscivo a vivere senza LVM  :Wink: 

----------

## kaosone

 *power83 wrote:*   

>  *kaosone wrote:*   io fare un file della dimensione che vuoi, e lo monterei in loopback dove ti interessa avere il limite.. non so se e' la soluzione piu' pulita 
> 
> no ho capito assolutamente nulla di questa tecnica!

 

faccio un esempio...

```

dd if=/dev/zero of=~/partizione count=10000              # crea un file di 5M 

mkfs.ext3 ~/partizione                                   # crea il filesystem

mount ~/partizione /path/alla/dir -o loop                # monta il file su una partizione

```

nella cartella /path/alla/dir ci sara il limite a 5M

ciao

----------

## Apetrini

 *DarkAngel76 wrote:*   

> metti il quote su un gruppo "XYZ"
> 
> meti "tutti gli utenti" che ti interessano in quel gruppo e adegui i permessi sulla dir.
> 
> my 2 cents.

 

ehm cosi non va. Perche se a tutti gli utenti metto quote 10mb ognuno puo mettere 10mb nella dir, invece io vorrei che la dimensione massima della directory fosse 10mb...indipendentemente se un ci mette 1mb e un altro 9 mb...

@kaosone: sembra interessante il tuo metodo..provo e poi ti so dire. Ma cosi facendo i dati non sono piu soggetti a corruzioni? nel senso che se mi si corrompe un pezzo di file magari non riesco piu a montare e non accedo piu a nulla...

Ma se usassi samba non c'è un opzione per limitare i mb su una directory?

----------

## kaosone

 *Apetrini wrote:*   

> 
> 
> @kaosone: sembra interessante il tuo metodo..provo e poi ti so dire. Ma cosi facendo i dati non sono piu soggetti a corruzioni? nel senso che se mi si corrompe un pezzo di file magari non riesco piu a montare e non accedo piu a nulla...
> 
> 

 

ovviamente se ti si corrompe un settore critico del file (magari quello contenente la struttura del fs) non sara' piu' montabile... ma hai la stessa probabilita' che ti si corrompa un settore critico del fs montato in / e non ti vada piu' niente  :Rolling Eyes: 

----------

## oRDeX

se non c'è metodo a livello più basso farei così come ha detto kaosone, è una soluzione davvero intelligente  :Wink: 

----------

## Apetrini

Ottimo alla fine farò cosi....

----------

## randomaze

 *oRDeX wrote:*   

> se non c'è metodo a livello più basso farei così come ha detto kaosone, è una soluzione davvero intelligente 

 

Sicuramente la cosa più facile da fare, e penso sia accettabile volendo fare in fretta. La unix way invece sarebbe quella suggerita da DarkAngel76  :Wink: 

----------

## Kernel78

 *randomaze wrote:*   

>  *oRDeX wrote:*   se non c'è metodo a livello più basso farei così come ha detto kaosone, è una soluzione davvero intelligente  
> 
> Sicuramente la cosa più facile da fare, e penso sia accettabile volendo fare in fretta. La unix way invece sarebbe quella suggerita da DarkAngel76 

 

Ma il mio suggerimento fa così skifo  :Crying or Very sad:   ???

A me sembrava tanto bellino ...

----------

## randomaze

 *Kernel78 wrote:*   

> Ma il mio suggerimento fa così skifo   ???
> 
> A me sembrava tanto bellino ...

 

Beh, diciamo che va bene per una cartella. Se poi tra un mese le cartelle diventano due, poi 5 poi 20 la situazione, pur restando sotto il controllo di LVM inizierebbe ed essere un poco complessa da gestire  :Rolling Eyes: 

E, peraltro, richiederebbe un ripensamento dell'installazione per metterla/fargli gestire LVM

----------

## silian87

Beh.. a sto punto puoi pure fare uno script che gira come demone con un timeout (oppure usa cose strane come famd), e fa dei "du" sulla directory, se si supera il limite ti bastona di brutto, tipo pure fa degli rm sui file incriminati. E' un sistema barbaro, pero' molto lolloso e crudele  :Twisted Evil: 

----------

## !equilibrium

 *akiross wrote:*   

> DarkAngel76, aveva detto non come quota, ma a livello directory.

 

si lo so, avevo letto attentamente il post, solo che a livello "directory" non si puÃ² fare quello che chiede apetrini, perchÃ¨ non si puÃ² limitare la dimensione di un file a livello di filesystem; esiste appunto il "quota system" per fare queste cose a livello di kernel/fs.

comunque ripensandoci bene, l'unico FS che conosco che Ã¨ in grado di impostare un limite fisico sulle dimensioni come richiesto da apetrini Ã¨ TMPFS.

puoi montare in ram una partizione virtuale di N Mb, raggiunto il limite gli utenti non possono + scrivere.

pro:

- facilitÃ  di implementazione

- velocitÃ  in lettura/scrittura molto elevate

- puoi cambiare le dimensioni della partizione virtuale come meglio credi senza riavviare (e puoi automatizzare il tutto tramite un semplice script)

contro:

- ti consuma memoria (ma non sapendo di preciso quello che vuole fare apetrini potrebbe anche essere non vero)

- in caso di reboot perdi i dati

- se vuoi salvare i dati contenuti nel TMPFS ti devi dare uno script per riversarne il contenuto su HD

potrebbe essere una soluzione?

----------

## akiross

sillian87, secondo me lo script non funziona. Cosa succede se faccio un file da 1GB, lo mvo nella directory che tiene al max 100MB? Dovrei aspettare che il demone lo cancelli... non sarebbe un limite vero, sarebbe solo un controllo automatizzato - ci avevo pensato anche io ad uno script  :Very Happy: 

Ora non e' per fare il testardo... ma secondo me una soluzione ai problemi c'e' quasi sempre, e secondo me c'e' anche a questo.

La soluzione del loopback per ora e' quella che a me piace di piu', credo sia la piu' fattibile in tempi decenti, senza dover toccare altre partizioni. Pero' non c'e' un numero illimitato di loopback disponibili... o no?

Poi pensavo a cose piu' dirette (nel senso: fatte ad hoc) pero' si dovrebbe intervenire con qualche modulo del kernel o del fs, ecco non mi sembra la soluzione piu' immediata  :Very Happy: 

Per curiosita'... qual'e' il limite dei loopback che possono essere montati? Mi sembrava non fosse molto alto... tipo 127 o giu' di li.

Ciauz

----------

## comio

 *Apetrini wrote:*   

> Volevo sapere se qualcuno conosce qualche metodo per limitare lo spazio di alcune directori. Non a livello di utenti come con "quota" ma al livello di directori...
> 
> Per esempio voglio far si che in una certa directori gli utenti(tutti) non possano mettere piu di 1gb di roba...
> 
> Esiste qualcosa del genere?
> ...

 

scusate se posto solo ora... a mio avviso la soluzione ottima al problema è quella di creare un gruppo ed usare un quota al livello di gruppo... Non implica l'uso di loopback (che nascono per fare altro), non portano alla modifica di fs in modo radicale... l'unica cosa è di avere un fs con il supporto quota (abilitato).

(http://www.faqs.org/docs/securing/chap20sec157.html)

my 0.02E

ciao

----------

## oRDeX

si..in effetti la soluzione del quote sul gruppo mi pare ottima.

E' pulita, puoi cambiare il quote quando vuoi...puoi aggiungere utenti o levarli a piacimento..

 :Arrow:   :Wink: 

----------

## !equilibrium

apetrini: se puoi poi dicci come hai risolto, a me la cosa interessa  :Wink: 

----------

