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.