Questo è il problema con i sistemi multiutente, soprattutto se ne hai più di uno. ;) Non c'è davvero un bel modo di fare quello che vuoi. Gli approcci che verranno in mente sarebbero
- avere lo stesso UID per il tuo account su ogni macchina che stai utilizzando il tuo disco esterno (in realtà non è fattibile, poiché molto probabilmente non tutte le macchine sono sotto il tuo controllo)
- usando un file system ignaro del concetto di proprietario / gruppo (mi viene in mente FAT o NTFS, ma ... aaah, no)
L'approccio più efficace sarebbe tornare alle pratiche comuni. Sulla maggior parte (almeno) dei sistemi Linux, esistono alcuni gruppi che hanno solitamente GID comuni. Ad esempio sarebbe users
, che ha GID 100
sulla maggior parte delle distro Linux. Se riuscissi ad avere il tuo rispettivo account utente in questo gruppo, potresti
- rendere tutti i file e le directory sul disco di proprietà di questo gruppo
- in qualche modo riesce ad avere le autorizzazioni di gruppo appropriate su quei file e directory
- in qualche modo riescono a creare nuovi file con rispettiva proprietà del gruppo. permessi.
Il primo e il secondo punto sono facili da realizzare ( chown
, chmod
). Il terzo punto diventa un po 'più complicato.
La parte "proprietà del gruppo" è relativamente semplice: è possibile impostare il bit SGID su tutte le directory sul disco. Il bit SGID applicato alle directory dice al kernel di comportarsi in modo BSDish: BSD rende ogni file / directory creato in uno specifico gruppo di directory di proprietà del gruppo primario del processo creando il file / directory (come fa Linux), ma dal proprietario della directory principale.
Il bit di autorizzazione è un po 'difficile. Le autorizzazioni per i file / le directory appena creati sono (tra gli altri) influenzate da umask
una maschera di bit che indica quali bit non impostare se non esplicitamente indicati. Un umask
valore comune , ad esempio 022
, è che significa che i bit di scrittura per »gruppo« e »altri« di solito non dovrebbero essere impostati. Puoi cambiarlo umask
in 002
, dicendo che non vuoi che le autorizzazioni di scrittura vengano cancellate per il gruppo, ma il rovescio della medaglia è che non puoi impostare questo valore in base alla directory e di solito non vuoi avere le autorizzazioni di scrittura per il tuo gruppo principale impostato per ogni file che crei.
Questo potrebbe essere risolto utilizzando le ACL: In un'ACL è possibile impostare una mask
e un default
set di autorizzazioni, che si applica a tutti i file e le directory creati all'interno di una directory con questo set ACL. Quindi una possibile soluzione del tuo problema sarebbe
- assicurandoti di essere un membro di un gruppo comune su tutti i sistemi su cui desideri utilizzare l'unità esterna
- rendere tutti i file e le directory sul disco di proprietà di questo gruppo e impostare il bit SGID su tutte le directory
- cambia l'ACL di tutte le directory per includere una maschera e le autorizzazioni predefinite che indicano al kernel di creare ogni nuovo file / directory con le autorizzazioni di scrittura impostate per il gruppo.
Vedi setfacl(1)
, e acl(5)
per maggiori dettagli.