Autorizzazioni per nuovi file nella directory condivisa


31

Abbiamo appena ottenuto un nuovo iMac che utilizza la /Users/Shareddirectory per archiviare risorse multimediali (immagini, audio, video) che vogliamo essere accessibili a tutti gli utenti della macchina. Dopo aver copiato inizialmente tutti i file, abbiamo impostato le autorizzazioni desiderate e quindi abbiamo applicato le stesse autorizzazioni a tutti i contenuti della directory in modo ricorsivo. Funziona bene, tranne quando ogni volta che qualcuno crea un nuovo file o directory, non ha le stesse autorizzazioni e dobbiamo ripetere l'intero processo delle autorizzazioni prima che tutti possano accedervi.

Esiste un modo in cui possiamo impostare le autorizzazioni per tutti i nuovi file / directory creati all'interno di quella directory?


Gli Attributi estesi ti permetteranno di impostare alcune autorizzazioni di accesso molto liberali e di dire loro di propagarsi all'interno della directory e continuare a farlo su nuove creazioni, ma per la vita di me non riesco a trovare le istruzioni. Posso farlo solo su server OSX usando Server Admin Tools, che presumo non sia un'opzione praticabile qui?
Jason Salaz,

No. Abbiamo accesso solo ai dischi del sistema operativo forniti con iMac.
Daniel Standage,

1
Se sei felice di lavorare nel Terminal, questa potrebbe essere la risposta che stai cercando.
Boehj,

Risposte:


32

Non puoi farlo con le autorizzazioni tradizionali in stile POSIX, ma puoi farlo con le voci di controllo dell'accesso ereditabili. Per consentire l'accesso in lettura + scrittura per l'intero gruppo "staff" a tutto in / Users / Shared / realmente condiviso, dovresti usare:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

La file_inherit,directory_inheritparte indica che questa voce di controllo dell'accesso verrà automaticamente aggiunta ai nuovi file e cartelle creati all'interno di questa cartella, ma non si applica automaticamente agli elementi già presenti (ecco perché ho aggiunto il -Rflag a chmod- che si applica a tutto ciò che è attualmente all'interno la cartella) e non verrà applicato agli elementi creati da qualche altra parte e quindi spostati in questa cartella (non so come fare, scusami).


Mi piacerebbe davvero trovare un modo per avere questo lavoro anche per i file che vengono spostati in una directory condivisa. È frustrante avere file in una directory condivisa che alla fine non viene condivisa completamente.
Radven,

Ciò non consente comunque di scrivere una cartella se le autorizzazioni posix non lo consentono. Vale a dire che creo questa cartella nel Finder: il segno drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder+ alla fine indica che è stato applicato l'ACL esteso usando il comando sopra, ma Windows dice ancora l'autorizzazione negata se provo a scrivere un file in questa cartella. Solo chmod g+w untitled\ foldermi permette di scrivere. Potrebbe essere perché ho installato Samba per aggirare l'orribile nuova implementazione SMB di OSX.
Chris Dragon,

@ChrisDragon: sembra che la samba non rispetti correttamente l'ACL. Ho trovato un suggerimento qui da aggiungere nt acl support = noalla [Global]sezione di /etc/smb.conf, ma non sono sicuro che sia ancora rilevante nelle versioni attuali di samba.
Gordon Davisson,

4

Un altro approccio consiste nell'utilizzare Terminal (aka shell o prompt dei comandi) per creare / modificare (deve essere eseguito come superutente, vedere sudo) il file:
/etc/launchd-user.conf
aggiunta della riga:
umask 000
salvataggio e riavvio. Nuovi file / cartelle (compresi i file modificati da Salva con nome) consentiranno a tutti di leggere / scrivere.

Funziona modificando le autorizzazioni predefinite per la creazione di file per i programmi, mentre l'approccio ACL funziona in termini di regole di accesso associate a determinati file e cartelle.

Senza questa modifica, i file vengono creati consentendo all'utente: lettura-scrittura, gruppo e altro: sola lettura.

Se condividi tra più computer, devi farlo per tutti i computer che utilizzeranno la condivisione.

Se hai file e cartelle esistenti nell'area condivisa, devi renderli tutti leggibili / scrivibili da chiunque utilizzi:
sudo chmod -R og+w <shared-folder-name>

Il comando legge in inglese come modalità di modifica, ricorsivo in tutte le sottocartelle e file, altre autorizzazioni di gruppo aggiungono accesso in scrittura, a partire dalla cartella con.

Questo approccio è menzionato nei forum per funzionare con almeno il 10.6 e funziona ancora con il 10.7.

Altri fattori influenzano ancora l'accesso ai contenuti. Ad esempio, le autorizzazioni impostate nel pannello di controllo Condivisione, le autorizzazioni / ACL della cartella home e quando si utilizza Terminale qualsiasi umask attivo per la shell.

Cerca i permessi dei file umask e Posixper dettagli su questi concetti Unix. Nelle scritture, la parola directory è Unix parlance sinonimo di cartella. Incontrerai anche i termini UID e GID: ID utente e gruppo, che definiscono la proprietà Posix dei programmi in esecuzione (processi). Si noti che UID e GID sono numeri che possono essere uguali o diversi per un determinato nome utente su computer diversi. Questi numeri vengono assegnati ai nomi nell'ordine in cui gli account vengono creati su un determinato computer, in genere a partire dall'ID 501. Le reti domestiche non dispongono di un meccanismo per armonizzare questi compiti tra computer. Pertanto, nelle condivisioni di rete un file può sembrare appartenere a utenti diversi poiché l'ID utente per l'associazione del nome utente è determinato dal punto di vista del computer che accede al file. Quindi le condivisioni permettono sempre a tutti di accedere ai file a vari livelli di tutti. In altre parole, l'autorizzazione "altro" di Posix è un limite indefinito di accesso che va dal consentire un grado di accesso abbastanza prevedibile ma apparentemente incerto a seconda degli ID utente assegnati su computer diversi. Ciò porta a variazioni apparentemente assurde nelle esperienze, in cui su alcune reti, ad esempio un'installazione con un solo account utente mai creato su ciascun Mac, sarà in grado di condividere senza alcuna modifica delle autorizzazioni perché tutti gli account avranno lo stesso UID (501, no indipendentemente dal nome degli account) mentre un'altra rete che utilizza più account utente per Mac vedrà subito i problemi. Quindi alcuni gruppi non avranno mai problemi con questo, mentre altri potrebbero vedere problemi che si sviluppano nel tempo o problemi che appaiono / scompaiono spontaneamente,

È un mistero il motivo per cui Apple ha lasciato un difetto di usabilità così estenuante nella configurazione di una funzionalità di condivisione file così facile da abilitare.

Sui dischi esterni, questo problema viene risolto con l'opzione "Ignora autorizzazioni su questo volume". Potrebbe esserci una funzione simile per la condivisione di file Apple, ma dov'è.

Se esegui il rollup della tua configurazione del servizio Samba ci sono altri meccanismi per gestire questi problemi, ma Samba non è affatto facile da usare.


/etc/launchd-user.conf è deprecato per l'utilizzo launchctl. Vedi support.apple.com/en-us/HT201684
Jess Bowers l'
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.