Newsgroup: it.comp.os.linux.debian
Titolo: Condivisione file e proprietario

Esiste una maniera intelligente per aver avere una cartella su cui
possono lavorare più persone senza fare pasticcio con i permessi?
 
Al momento ho la setgid che imposta il gruppo "users" sui nuovi file, e
l'acl default che dà il permesso di scrittura al gruppo "users".
In questa maniera tutti i file acquisiscono automaticamente i permessi
necessari a far sì che tutti possano lavorarci.
 
Tuttavia in questa maniera su ogni file il proprietario resta quello che
lo ha creato.
Di conseguenza solo cui puoi agire sui permessi, creando comunque un
gran pasticcio.
 
Esiste una maniera elegante per ovviare a questo problema, mantenendo
però un file system evoluto tipo ext4?
In certi casi non esiste un chiaro proprietario dei file, ma piuttosto
un gruppo di persone tutte proprietarie di pari livello.
 
-- 
Lurkos

 un gruppo di persone tutte proprietarie di pari livello.
 
Non è proprio il concetto di gruppo e quello che stai ottenendo ora?

 Non è proprio il concetto di gruppo e quello che stai ottenendo ora?
 
Certo... ma chi è il "vero" proprietario? Cosa ci metto in quel campo
(magari automaticamente)?
 
-- 
Lurkos
 

 (magari automaticamente)?
 
Dipende dalla configurazione di samba, credo.
Come soluzione banale puoi mettere uno script in crontab e impostare 
periodicamente il permesso di tutti i file all'utente "gino".

 periodicamente il permesso di tutti i file all'utente "gino".
 
Ci avevo pensato anch'io, ma non mi piace molto, perché non è
istantaneo ed è poco efficiente quando aumenta il numero
di file.
Dovrebbe essere qualcosa che viene automaticamente, come acl
e setgid.
In ogni caso porta a pasticci non piccoli, perché lo UID potrebbe non
essere omogeneo fra le macchine (pensa ad un disco esterno con dei
dati, utilizzato su 1 fisso e 2 portatili).
 
-- 
Lurkos

 accedono in locale.
 
Avevo interpretato io male l'oggetto della discussione.
C'è un problema effettivo che vuoi risolvere? Leggendo di nuovo il primo 
messaggio ho l'impressione che semplicemente non ti sembri una soluzione 
"pulita" ma non c'è un vero problema.

 accedono in locale.
Potresti usare "nfs-kernel" ed esportare la directory solo verso 
"localhost" con una riga in "/etc/exports" del tipo...
===
/home/lavori 
127.0.0.1(secure,all_squash,anonuid=1000,anongid=1000,rw,sync,no_subtree_check)
===
(scegli opportunamente l'id)
 
E in "/etc/fstab" metti qualcosa del tipo...
===
127.0.0.1:/home/lavori /mnt/lavori nfs defaults,hard,intr,noauto 0 0
===
(il "noauto" puo` essere necessario perche` il mount puo` avvenire 
quando il server nfs non e` ancora partito e allora devi anche mettere 
in "/etc/rc.local"...
===
/bin/mount /mnt/lavori
===
 
Ovvio, DEVI accedere ai file in "/mnt/lavori"!
 
gc :-)

 "pulita" ma non c'è un vero problema.
 
Il problema è che ho una gran rottura di balle con i permessi.
 
Tutte le volte che uno _copia_ (e non _crea_) file nella partizione
"dati" viene assegnato il gruppo sbagliato (anche con setgid e acl).
Quindi un altro non può leggere e/o modificare (a seconda dei permessi
di origine).
Se un altro invece crea dei file comunque il proprietario resta lui, e
solo lui può cambiare i permessi.
Quando c'è di mezzo un disco esterno a volte gli UID e i GID non
corrispondono, quindi i file dell'utente X diventano di quello Y, con
conseguenti casini aumentati.
Per non parlare delle volte in cui uno copia dati da una FAT di una
chiavetta... tutti i file con i permessi di esecuzione!
 
Insomma... paradossalmente una NTFS _senza_ permessi avanzati mi darebbe
meno problemi, ma mi toglierebbe la possibilità di gestire
l'eseguibilità degli script, oltre ad essere tremendamente meno
efficiente.
 
Cercavo una soluzione a questo problema.
Mi sembra veramente strano che a nessuno sia mai successo su Linux di
aprire dei dati e puntalmente trovarsi davanti l'impossibilità di
aprire, visualizzare, creare e così via.
Volevo quindi capire come avevate risolto, perché mi sto rompendo un po'
le balle ad dover usare sempre root per rimettare a posto le cose ogni
volta che uno aggiunge un file, che uno copia da una chiavetta o altre
operazioni simili quotidiane.
 
-- 
Lurkos

 "localhost" con una riga in "/etc/exports" del tipo...
 
Non male come idea in effetti. Non avevo pensato ad NFS in locale.
 
-- 
Lurkos
 


Puoi fare cosi
imposti la root dati con permessi 775 (proprietario e gruppo possono 
leggere e scrivere)
imposti il flag t alla directory root dati: chmod +t <root_dati>
imposti l' umask di ogni utente a 0002
imposti per tutti gli utenti un gruppo principale uguale tra loro
in questo modo tutti grazie al flag t tutti i file creati mantengono il 
proprietario ed il gruppo di chi ha creato il file
L' umask 002 crea i file con permessi 664
 
L' unico neo è che la creazione di una directory in root dati non 
eredita il flag t, ma forse non è un grosso problema
 
 
 
 
 
 

 eredita il flag t, ma forse non � un grosso problema
 
Buona idea quello dello sticky_bit.
Non ci avevo pensato ed effettivamente lo imposter� subito.
L'ho su tmpfs per /tmp, ed in effetti anche qui sarebbe utile.
 
Riguardo ad umask ci avevo pensato anch'io, ma non mi piaceva molto per
il fatto che sarebbe da impostare ovunque.
L'ideale sarebbe una qualche opzione del file system stesso, come acl
per capirci.
Cos� andrebbe bene anche per i dischi esterni da portarsi in giro.
 
Comunque se non ci sono altre possibilit� prover� sia la strada NFS, sia
quella umask.
 
-- 
Lurkos
 


 
Perfetto, ciao