Saya memiliki rekan kerja yang mengatakan Anda harus berhati-hati mengekstraksi tarbal karena mereka dapat membuat perubahan yang tidak Anda ketahui. Saya selalu berpikir tarball hanyalah hierarki file terkompresi, jadi jika Anda mengekstraknya ke / tmp / example / itu tidak mungkin menyelinap file ke / etc / atau yang seperti itu.
27
-P
opsi yang memengaruhi perilakunya dalam hal ini./etc/passwd
jika dijalankan sebagai root. Sejak beberapa saat, saya percaya itugtar
memberikan keamanan yang sama seperti yang Anda dapatkanstar
.Jawaban:
Utilitas tar yang berbeda berperilaku berbeda dalam hal ini, jadi ada baiknya berhati-hati. Untuk file tar yang tidak Anda buat, selalu daftarkan daftar isi sebelum mengekstraknya.
Solaris tar :
Dalam kasus file tar dengan nama path lengkap (absolut), seperti:
... jika Anda mengekstrak file seperti itu, Anda akan berakhir dengan kedua file tersebut.
GNU tar :
... jika Anda mengekstrak file tar sepenuhnya-pathed menggunakan GNU tar tanpa menggunakan
-P
opsi, itu akan memberi tahu Anda:dan akan mengekstrak file ke dalam subdirektori dari direktori Anda saat ini.
Tar AIX :
mengatakan apa-apa tentang itu, dan berperilaku sebagai tar Solaris - itu akan membuat dan mengekstrak file tar dengan nama path lengkap / absolut.
Tar HP-UX : (referensi online yang lebih baik disambut)
Tar OpenBSD :
Ada
-P
opsi yang diterapkan untuktar
pada macOS, FreeBSD dan NetBSD juga, dengan semantik yang sama, dengan tambahan bahwatar
pada FreeBSD dan macOS akan "menolak untuk mengekstraksi entri arsip yang berisi nama pathnya..
atau yang direktori targetnya akan diubah oleh symlink" tanpa-P
.bintang schilytools :
sumber
..
adalah risiko keamanan, jadi gunakanstar
atau baru sajagtar
. Lihat jugastar
contoh arsip tar yang menyertakantar
header kerajinan tangan yang menyebabkan sebagian besartar
implementasi menghapus file tanpa peringatan.tar
pada Solaris, AIX dan HP-UX juga? Jika demikian, mengapa hanya menunjukkan GNU tar, terutama jika (sekali lagi sesuai dengan kutipan di atas), mereka telah berubah menjadi tidak menerima..
? Masalah dengan masukan yang salah tentu saja adalah bug, dan saya kira Anda telah melaporkannya demikian.star
(implementasi gratis tertua) harus dilihat tidak lengkap.Salah satu hal lucu yang terjadi dengan bom tar adalah bahwa mereka mengubah izin direktori saat ini menjadi yang termasuk dalam tarball.
Misalnya, jika tarball menyertakan '.' direktori, dan Anda membukanya di / tmp sebagai root, itu akan merusak sistem Anda dengan membuat / tmp tidak dapat ditulis oleh siapa pun selain root.
sumber
/
, itu akan mengubah izin direktori root, yang akan memiliki konsekuensi yang tidak terduga (saya ingat mendapatkan "tidak dapat menjalankan / bin / bash" ketika masuk pada konsol, karena/
mode 770).