Saya memiliki skrip unggah cadangan yang menyimpan file scp ke server lain menggunakan pengguna upload
. Script lain di server target kemudian chown ini untuk pengguna lain dan mengatur mode file ke 755
.
Jika saya kemudian SSH ke server target menggunakan upload
pengguna, saya dapat menghapus file yang di-chedd. Bukankah seharusnya mereka dibaca saja?
Berikut adalah tampilan file di server target, dan pengguna upload
dapat menghapusnya.
-rwxr-xr-x 1 maciekish maciekish 650M Nov 1 01:07 2014-11-01-data.tar.bz2
Pengguna upload
baru saja ditambahkan menggunakan useradd
dan bukan bagian dari maciekish
grup.
Ketika mencoba untuk menghapus file upload
melalui ssh saya mendapatkan pertanyaan apakah saya ingin menghapus "tulis file biasa yang dilindungi" dan saya bisa mengatakan Y
dan menghapusnya.
linux
security
file-permissions
Maciej Swic
sumber
sumber
rm
menghapus file read-only?Jawaban:
File - file ini hanya bisa dibaca; namun, menghapus file tidak memodifikasinya tetapi hanya direktori induk (pada dasarnya menghapus file dari daftar direktori) - dan sepertinya Anda memiliki izin menulis penuh ke direktori.
Anda dapat mengatur
sticky
bit — alias "penghapusan terbatas" - yang akan mencegah siapa pun kecuali pemiliknya mengubah nama atau menghapus file dalam direktori tersebut (seperti dalam/tmp
). Untuk melakukan ini, jalankanchmod o+t *directory*
sebagai pemilik direktori.sumber
Dalam sistem file Unix yang khas, file apa pun dapat diidentifikasi dengan jumlah entri direktori yang sewenang-wenang, yang masing-masing berisi "tautan keras".
Dari sudut pandang implementasi ada perbedaan antara menghapus entri direktori terakhir (hard link) untuk file dan hanya menghapus satu referensi dari banyak. Namun, dari sudut pandang semantik tidak ada perbedaan.
Jika ada banyak tautan keras ke suatu file, menulis ke file menggunakan salah satu di antaranya mengubah file yang dilihat oleh mereka semua.
rm
Namun, menggunakan tautan hanya menyebabkan file tidak dapat diakses melalui tautan itu. Tautan lain ke file terus melihat file yang sama persis.sumber
st_nlink
("jumlah tautan keras") distruct stat
. Sederhananya, direktori menyimpan tautan keras ke file.