Pertanyaan Apa saja yang diizinkan oleh bendera tar's -p (preserve permissions)?


Apa yang dimaksud dengan -p flag sebenarnya pertahankan saat membuat dan mengekstrak tarball? Apakah itu rwx izin yang diawetkan?

Saat saya membuat htdocs/ tarball yang dimiliki oleh root, mengekstraksi ke mesin lokal saya mengubah kepemilikan dari root ke pengguna saya.


19
2018-05-09 11:20


asal


Mungkin Anda harus mencoba mengekstrak arsip sebagai root. Tidak mungkin mengatur izin untuk pengguna lain sebagai pengguna biasa, jadi saya rasa tar tidak akan bisa melakukannya juga. Tolong beritahu saya jika ini berhasil. - Louis Matthijssen
"mesin lokal"? Tolong jelaskan apa OS yang dimiliki mesin ini;) - Rinzwind
Juga beri tahu kami filesystem apa yang Anda gunakan. Baik sumber maupun target. - terdon♦
Sumber: Red Hat Enterprise Linux Server release 6.5 (Santiago)   Target: Ubuntu 13.10   Keduanya digunakan GPT - nicoX


Jawaban:


Kepemilikan dan perizinan adalah dua hal yang berbeda. Itu -p bendera diawetkan perizinan. Pada sistem * nix, pengguna biasa tidak dapat mengubah kepemilikan file ke pengguna yang bukan dirinya.

Seperti yang dijelaskan sini :

Hanya proses dengan ID pengguna yang efektif yang sama dengan ID pengguna file atau dengan hak istimewa yang sesuai dapat mengubah kepemilikan file. Jika _POSIX_CHOWN_RESTRICTED berlaku untuk jalur:

  • Mengubah ID pengguna dibatasi menjadi proses dengan hak istimewa yang sesuai.

  • Mengubah ID grup diizinkan ke proses dengan ID pengguna yang efektif sama dengan ID pengguna file, tetapi tanpa hak istimewa yang sesuai, jika dan hanya jika pemilik sama dengan ID pengguna file atau (uid_t) -1 dan grup sama baik ke proses panggilan 'ID grup efektif atau ke salah satu ID grup pelengkapnya.

Alasan dibalik ini telah dijelaskan dengan baik oleh @Gilles di ini Jawaban Unix & Linux:

Alasan untuk pembatasan ini adalah memberikan file ke yang lain   pengguna dapat membiarkan hal-hal buruk terjadi di luar biasa, tetapi tetap penting   situasi. Sebagai contoh:

  • Jika sistem memiliki kuota disk diaktifkan, Alice dapat membuat file yang dapat ditulisi oleh dunia di bawah direktori yang hanya dapat diakses olehnya (jadi tidak   orang lain dapat mengakses direktori yang dapat ditulis oleh dunia), dan kemudian jalankan   chown untuk membuat file yang dimiliki oleh Bill pengguna lain. File itu akan   kemudian menghitung di bawah kuota disk Bill meskipun hanya Alice yang bisa menggunakan   mengajukan.
  • Jika Alice memberikan file ke Bill, tidak ada jejak bahwa Bill tidak membuat file itu. Ini bisa menjadi masalah jika file tersebut berisi   data ilegal atau yang mengorbankan data lain.
  • Beberapa program mengharuskan file input milik pengguna tertentu untuk mengotentikasi permintaan (misalnya,   file berisi beberapa instruksi yang akan dijalankan oleh program   nama pengguna itu). Ini biasanya bukan desain yang aman, karena   bahkan jika Bill membuat file yang mengandung sintaksis yang benar   instruksi, dia mungkin tidak berniat untuk mengeksekusinya dalam hal ini   waktu tertentu. Meskipun demikian, memungkinkan Alice untuk membuat file dengan   konten sewenang-wenang dan memilikinya diambil sebagai masukan dari Bill hanya bisa membuat   hal-hal buruk.

Jadi, bahkan jika Anda menggunakan tar --same-owner Anda masih perlu mengekstrak file sebagai root untuk mempertahankan kepemilikan. Bendera itu aktif secara default untuk root, jadi yang Anda inginkan adalah:

sudo tar xpf foo.tgz

17
2018-05-09 11:58





Ada 2 opsi lagi untuk tar yang menarik:

--same-owner
       try extracting files with the same ownership as exists in the ar‐
       chive (default for superuser)

--no-same-owner
       extract files as yourself (**default for ordinary users**)

Yang kedua adalah default sehingga Anda dapat menambahkan --same-owner untuk menyelamatkan pengguna Anda. Anda mungkin harus melakukan ini dengan sudo.

Selain itu: ini hanya akan bekerja pada sistem yang mendukung POSIX. Dan sistem operasi selain Ubuntu mungkin tidak memiliki 2 opsi ini (mereka tidak standar).


7
2018-05-09 11:41



Itu --same-owner tidak akan berfungsi untuk pengguna non-root, mereka tidak akan memiliki hak untuk mengatur kepemilikan kepada siapa pun kecuali diri mereka sendiri. Itu didefinisikan oleh POSIX. - terdon♦


Untuk mempertahankan pemilik menjalankan sebagai root atau menggunakan - - pemilik-pemilik bendera bersama -p bendera saat mengekstraksi.


3
2018-05-09 11:40



Ini harus dijalankan sebagai root dalam hal apapun. Pengguna non-root tidak dapat mengubah kepemilikan file ke pengguna lain. - terdon♦