Tar conserva le autorizzazioni se cambiano gli ID utente?


20

Devo eseguire il backup di alcuni dati con l'opzione "p" sul comando tar. Il problema è che il luogo in cui ripristinerò questi dati avrà tutti gli stessi utenti, ma quegli utenti potrebbero avere ID diversi. Questo fa differenza per tar o ripristinerà correttamente le autorizzazioni in base al nome utente?

Risposte:


9

tarregistra le autorizzazioni in base all'UID e al GID, non sulla stringa ad essi associata. Quindi, se l'UID su un server era 3300 e quello era collegato a 'bob', sul nuovo server il file sarà di proprietà dell'utente che ha l'UID 3300.

Tutto virtuale (voglio dire tutto, ma non si può mai essere sicuri al 100%) su UNIX utilizza i valori UID: GID, perché è ciò che è effettivamente archiviato a livello di filesystem. Il nome è solo una semplice ricerca nel file passwd, i controlli sottostanti vengono eseguiti utilizzando i valori numerici.


Ah, non va bene ... credo che nella maggior parte delle situazioni sia adatto. Sfortunatamente, non per me ... Grazie, EightBitTony.
Marius,

3
Molto probabilmente intendi GID (identificatore di gruppo), non GUID (Globally Unique Identifier).
un CVn

6
Tar GNU salva anche i dati del nome utente / gruppo, perché posso vederlo se elenco un archivio su una macchina che non ha quegli utenti. Ci deve essere un modo per farlo usare durante l'estrazione.
Rob H,

3
Questa risposta è semplicemente errata. tar fa i nomi dei proprietari dei record.
Steffen Heil,

55

Riassumendo le risposte precedenti e aggiungendo alcune informazioni importanti:

  • Durante la creazione di archivi, tarsarà sempre conservare i file degli utenti e ID gruppo, a meno che detto altrimenti con --owner=NAME, --group=NAME. Tuttavia, ci sarà sempre un utente e un gruppo associati a ciascun file.

  • Tar GNU, e forse altre versioni di tar, memorizzano anche i nomi degli utenti e dei gruppi , a meno che non vengano --numeric-ownerutilizzati. bsdtar memorizza anche i nomi di utenti e gruppi per impostazione predefinita, ma il supporto per l' --numeric-owneropzione durante la creazione non è apparso fino a bsdtar 3.0 (si noti che bsdtar supporta l'opzione durante l' estrazione per molto più tempo).

  • Durante l'estrazione come utente normale , tutti i file saranno sempre di proprietà dell'utente. E non può essere diverso, poiché l'estrazione di un file sta creando un nuovo file sul filesystem e un utente normale non può creare un file e dare la proprietà a qualcun altro.

  • Durante l'estrazione come root , tarripristinerà automaticamente la proprietà dei file estratti, a meno che non --no-same-owner venga utilizzato, il che darà la proprietà al root stesso.

  • In GNU tar, bsdtar, e forse altre versioni di tar, la proprietà restaurata è fatta dall'utente (e di gruppo) nome , se tali informazioni sono in archivio e v'è un utente corrispondente nel sistema di destinazione. Altrimenti, ripristina per ID. Se --numeric-ownerviene fornita l'opzione, i nomi utente e gruppo vengono ignorati.

  • Autorizzazioni e timestamp vengono inoltre salvati nell'archivio e ripristinati per impostazione predefinita, a meno che non vengano utilizzate opzioni --no-same-permissionse / o --touch. Se estratto dall'utente, l'utente umaskviene sottratto dalle autorizzazioni a meno che non --same-permissionsvenga utilizzato.

  • --preserve-permissionse --same-permissionssono alias e hanno le stesse funzionalità di-p

Spero che questo aiuti a chiarire il problema! :)


3
Risposta eccellente; Risponde a questa domanda, nonché a ogni altra domanda che potrebbe sorgere sull'argomento.
user1107893

Va notato che solo le versioni recenti di GNU tarconsentono di specificare nomi arbitrari --ownero --group, in passato, hanno tareffettuato una ricerca gratuita nella macchina corrente /etc/passwde si sono rifiutati di eseguire in caso di mancata corrispondenza.
Matteo Italia,

Cosa succede se si crea un archivio con il nome specificato con --ownerma anche aggiunto nella --numeric-ownerbandiera? In che modo Tar gestisce questi requisiti concorrenti?
CMCDragonkai,

@CMCDragonkai: --ownere --numeric-ownernon si escludono a vicenda, e hanno scopi molto distinti: --owner=USERNAMEsovrascriveranno i file e i proprietari dei dir durante l'archiviazione dei file, mentre --numeric-ownersemplicemente non memorizzeranno il nome utente, ma solo il suo ID numerico.
MestreLion,

4

Utilizzare l'opzione --same-owner su GNU tar. Vedi http://www.gnu.org/software/tar/manual/html_section/Attributes.html


Questo è documentato come predefinito per i super utenti e sembra rispondere alla domanda dell'OP in modo diverso rispetto alla risposta accettata. (Il link dice che quando GNU tar ripristina usando --same-owner, cerca prima i nomi in / etc / passwd.) L'unico problema in sospeso è se la versione OP di tar implementa --same-owner.
Mike Sherrill "Cat Recall",

L'OP sta usando una distro Linux così meglio della possibilità di usare tar GNU, methink. E guardando la documentazione è possibile mentre la risposta accettata indica che non è ...
Colin 't Hart

@Catcall - scusa, ho accettato la risposta senza nemmeno avere la possibilità di provarla. A volte mi fido ciecamente delle persone. Tuttavia, la persona che ha risposto aveva ragione, dato che non stavo ripristinando con "--same-owner" e quindi hai aggiunto la risposta. Peccato che non posso accettare entrambi. Sto usando debian squeeze che in effetti supporta "--same-owner". Grazie per il consiglio.
Marius,

@Marius: sono abbastanza sicuro che puoi cambiare la risposta accettata quando vuoi. (Ti faccio solo notare che non ho fornito alcuna risposta a questa domanda, solo commenti. Non ho nessun rappresentante in gioco.)
Mike Sherrill 'Cat Recall'

4

Se si sta tentando di trasferire file tra due sistemi, per impostazione predefinita rsync imposterà le autorizzazioni tramite nome utente anziché uid, osservando i nomi utente su entrambe le estremità. Solo se l'utente non esiste su uno dei sistemi, lo copierà con l'UID, a meno che tu non lo dica diversamente.


Ciò non risponde direttamente alla domanda del PO, ma anche chiunque faccia la domanda del PO dovrebbe imparare questo.
Mike Sherrill "Cat Recall",
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.