Come imposto autorizzazioni specifiche per nuovi file / cartelle sul file server Linux?


14

Sto riscontrando un problema con la mia installazione di Ubuntu 9.10 (file server) e le sue autorizzazioni samba. Il login e la lettura funzionano bene. Tuttavia, la creazione di nuove directory da parte degli utenti limita l'accesso per altri utenti. Ad esempio, se Bob (utente di Windows che mappa l'unità) crea una cartella nella directory, Jane (utente Mac che monta semplicemente smb) può leggere da essa, ma non può scrivere su di essa - e viceversa. Devo quindi passare a CHMOD 777 nella directory affinché tutti siano felici. Ho provato a modificare le opzioni "create / directory mask" e "force" nel file smb.conf ma questo non sembra aiutare.

Sto per ricorrere a CRONTABing una routine chmod ricorsiva, anche se sono sicuro che questa non è la soluzione. Come posso ottenere tutti i nuovi articoli per essere sempre 777? Qualcuno ha qualche suggerimento per risolvere questa situazione?

Migliore


Gruppi di utenti e altre autorizzazioni native, non usare chmod 777.
Warner

Risposte:


13

In genere utilizzo la funzionalità nativa di SAMBA per la gestione delle autorizzazioni e dei gruppi sulle condivisioni. Per esempio..

force user=user1
force group=sharedgroup
create mask=775

Dovresti specificare queste impostazioni nella condivisione. Assicurati di ricaricare SAMBA dopo la modifica della configurazione, che potrebbe essere eseguita tramite lo script init.


1
Eppure il post dice che lo ha fatto e non ha funzionato ....
Mistiry

2
Poi ha fatto male. Funziona.
Warner,

Non sono sicuro di cosa sia successo. L'ho provato manualmente e tramite Webmin senza alcun risultato. Forse la mia scelta di gruppo di gruppo è sbagliata? Ho provato a utilizzare "utenti" e vari gruppi creati manualmente, di cui tutti sono stati membri. Indipendentemente da ciò che faccio, gli utenti non possono manipolare nulla di ciò che non si sono posizionati. L'unica "soluzione" è quella di avere tutti gli utenti che accedono (o montano) come GUEST che crea confusione.
humble_coder

SAMBA utilizza una combinazione di autorizzazioni e impostazioni del file system all'interno della configurazione. Se gli utenti non sono su write listo non sono autorizzati a scrivere nella configurazione della condivisione, non funzionerà. Se l'utente con cui SAMBA esegue non è in grado di accedere alle directory, non funzionerà. Gli utenti dovrebbero essere membri del gruppo appropriato, le directory e i file dovrebbero essere di proprietà di quel gruppo e avere il bit scrivibile impostato per il gruppo. Puoi anche controllare i log SAMBA.
Warner,

2
Ho cercato a lungo questo! Grazie! :) Funziona come previsto.
Nagy,

2

Impostare le autorizzazioni sulla directory su 2777, in questo modo:

chmod 2777 /shared/dir

Ciò fa sì che tutti i file e le cartelle nella directory '/ shared / dir' ereditino le autorizzazioni della directory principale, in questo caso 777.

Successivamente, esegui questa operazione per assicurarti che tutti i file dispongano delle autorizzazioni appropriate:

chmod -R 777 /shared/dir

L'unica situazione in cui è accettabile la scrittura pubblica è con /tmp.
Warner,

1
Sì, probabilmente è meglio usare 774 o anche 770, a seconda della situazione. Ma ha chiesto come renderli tutti "777", quindi l'ho usato nel mio esempio.
Mistiry

3
Sì, ma come posso garantire che tutti i file futuri copiati in quella directory sulla rete ricevano le stesse autorizzazioni indipendentemente dalle loro autorizzazioni iniziali? Non ho problemi quando lo faccio manualmente, lo voglio semplicemente automatizzato.
humble_coder

2
Questo non funziona. Il flag setgid per le cartelle imposta il gruppo di nuovi file e cartelle, non permessi, ed eseguire chmod tutto il tempo non è accettabile. Ho bisogno di una soluzione non correlata a samba, per Steam su Linux, in modo da poter condividere la libreria tra utenti.
Sam Watkins,

2

Mi rendo conto che questa è una vecchia domanda ma di recente ho avuto un problema simile ed ecco come l'ho risolto:

[Condividere]
maschera di sicurezza = 0770
crea maschera = 0770
forza la modalità di creazione = 0660
comment = Samba share per IT
path = / raid / share
visualizzabile = SÌ
ospite ok = no
write list = root, @ "DOMAIN + it_nfs"
force group = DOMAIN + it_nfs

Ciò garantisce che gli utenti debbano essere nel gruppo di sicurezza "it_nfs" in AD, che tutti i file verranno scritti con il gruppo "it_nfs" e che tutti i file verranno scritti con almeno 0660 e al massimo 0770 permanenti. Forzare l'ID del gruppo garantisce che chiunque in quel gruppo possa leggere / scrivere i file sulla condivisione. Altrimenti si finisce con situazioni in cui un file scritto come bob: bob non può essere scritto da charlie: charlie, anche se entrambi sono in "it_nfs".


0

Dai commenti della risposta accettata, in realtà non ha risolto il problema di OP, né le altre risposte, se OP ha avuto lo stesso problema che ho avuto:

Avere la condivisione su una partizione NTFS / FAT.

Ricordalo quando colleghi il disco del tuo desktop a un NAS per condividere i tuoi album di famiglia: fs montano i parametri per utente, gruppo, modalità di creazione ecc. Sovrascrivi tutto ciò che è configurato per Samba! ;)

(Ad esempio nel mio caso, indipendentemente da smb.conftutto ciò che è stato creato da root, con 777- come da fstab defaultsper il montaggio dei fusibili NTFS ...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.