Saya perlu membuat cadangan beberapa data dengan opsi "p" pada perintah tar. Masalahnya adalah tempat saya akan mengembalikan data ini akan memiliki semua pengguna yang sama, tetapi para pengguna tersebut mungkin memiliki ID yang berbeda. Apakah ada bedanya dengan tar atau akankah mengembalikan izin dengan benar berdasarkan nama pengguna?
20
tar
tidak mencatat nama pemilik.Ringkas jawaban sebelumnya dan tambahkan beberapa informasi penting:
Ketika membuat arsip,
tar
akan selalu menjaga pengguna dan kelompok ID file, kecuali mengatakan sebaliknya dengan--owner=NAME
,--group=NAME
. Namun tetap akan selalu ada pengguna dan grup yang terkait dengan setiap file.GNU tar, dan versi mungkin lain
tar
, juga menyimpan pengguna dan kelompok nama , kecuali--numeric-owner
digunakan. bsdtar juga menyimpan nama pengguna dan grup secara default, tetapi dukungan untuk--numeric-owner
opsi saat membuat tidak muncul sampai bsdtar 3.0 (perhatikan bahwa bsdtar mendukung opsi ketika mengekstraksi lebih lama).Saat mengekstraksi sebagai pengguna biasa , semua file akan selalu dimiliki oleh pengguna. Dan itu tidak bisa berbeda, karena mengekstraksi file membuat file baru pada sistem file, dan pengguna biasa tidak dapat membuat file dan memberikan kepemilikan kepada orang lain.
Ketika mengekstraksi sebagai root ,
tar
secara default akan mengembalikan kepemilikan file yang diekstraksi, kecuali--no-same-owner
digunakan, yang akan memberikan kepemilikan untuk melakukan root sendiri.Dalam GNU tar, bsdtar, dan versi mungkin lain
tar
, kepemilikan dipulihkan dilakukan oleh pengguna (dan kelompok) nama , jika informasi yang ada di arsip dan ada pengguna yang cocok dalam sistem tujuan. Kalau tidak, itu mengembalikan dengan ID. Jika--numeric-owner
opsi diberikan, nama pengguna dan grup diabaikan.Izin dan stempel waktu juga disimpan ke arsip, dan dikembalikan secara default, kecuali opsi
--no-same-permissions
dan / atau--touch
digunakan. Ketika diekstraksi oleh pengguna, penggunaumask
yang dikurangkan dari perizinan kecuali--same-permissions
digunakan.--preserve-permissions
dan--same-permissions
alias, dan memiliki fungsi yang sama dengan-p
Semoga ini bisa membantu memperjelas masalah ini! :)
sumber
tar
memungkinkan untuk menentukan nama arbitrer di--owner
atau--group
, di masa lalutar
melakukan pencarian serampangan di mesin saat ini/etc/passwd
dan menolak untuk berjalan jika tidak ada kecocokan.--owner
tetapi juga ditambahkan di--numeric-owner
bendera? Bagaimana tar menangani persyaratan yang bersaing ini?--owner
dan--numeric-owner
tidak saling eksklusif, dan melayani tujuan yang sangat berbeda:--owner=USERNAME
akan menimpa file dan dirs pemilik (s) saat pengarsipan file, sementara--numeric-owner
hanya tidak akan menyimpan nama pengguna, hanya ID numeriknya.Gunakan opsi --sama-pemilik untuk GNU tar. Lihat http://www.gnu.org/software/tar/manual/html_section/Attributes.html
sumber
Jika Anda mencoba mentransfer file antara dua sistem, rsync secara default akan mengatur izin berdasarkan nama pengguna alih-alih uid, dengan melihat nama pengguna di kedua ujungnya. Hanya jika pengguna tidak ada di salah satu sistem yang akan menyalinnya dengan uid, kecuali jika Anda memberi tahu sebaliknya.
sumber