Ho fatto la stessa domanda per le caselle di rilascio degli studenti nella mailing list di samba qualche anno fa (http://lists.samba.org/archive/samba/2008-September/143610.html) e la risposta ha funzionato per noi. Hai bisogno di attributi acl estesi sul tuo filesystem (dal pacchetto acl), ecco la risposta di Jeremy Allison ...
Ok, il problema è che gli studenti devono essere in grado di leggere la directory di contenimento per poter trascinare e rilasciare i nuovi file lì. Il motivo è che Samba deve essere in grado di scansionare la directory per loro conto al fine di effettuare ricerche senza distinzione tra maiuscole e minuscole.
Ma finché non ti dispiace permettere agli studenti di vedere i nomi di ogni altro file, puoi impostare un DropBox in modo che gli studenti possano scrivere in esso (e i loro file) ma non modificare o vedere altri file.
Innanzitutto, si desidera assicurarsi che i file creati nella directory DropBox non siano di proprietà del gruppo primario dello studente, ma del proprietario del gruppo della directory DropBox. Così :
chgrp insegnanti DropBox
per renderlo di proprietà del gruppo di insegnanti. Quindi imposta il bit setgid nella directory DropBox per assicurarti che i file creati al suo interno abbiano un gruppo proprietario di insegnanti.
chmod g + s DropBox
Quindi assicurati che un file in DropBox possa essere rinominato o eliminato solo dal proprietario del file, dal proprietario della directory o dalla radice (stesse autorizzazioni di / tmp).
chmod + t DropBox
Quindi consentire agli studenti di scrivere nella directory aggiungendo un ACL
setfacl -mg: studenti: DropBox rwx
Finché il defaul acl è impostato in modo che "altri" non abbiano autorizzazioni, i file scritti da uno studente in quella directory saranno di proprietà di se stessi ma avranno un gruppo proprietario di "insegnanti" e gli studenti non saranno in grado di leggere ogni altri file.
Se è necessario che i file siano di proprietà del proprietario della directory, non degli studenti che li hanno creati, è necessario impostare una condivisione separata come descritto sopra, ma quindi aggiungere il parametro del livello di condivisione:
ereditare proprietario = sì
che farà sì che i file creati all'interno delle directory in quella condivisione siano di proprietà della directory contenente, non del proprietario che crea.