Misalkan pemilik / pengguna tidak memiliki izin tulis pada direktori tetapi ia memilikinya pada file di bawahnya. Bisakah file di sini diedit atau tidak? Jika ya, apakah ada situasi di mana file tidak dapat diedit?
Misalkan pemilik / pengguna tidak memiliki izin tulis pada direktori tetapi ia memilikinya pada file di bawahnya. Bisakah file di sini diedit atau tidak? Jika ya, apakah ada situasi di mana file tidak dapat diedit?
Jawaban:
Ya, file dapat diedit.
Sejauh menyangkut direktori, file tidak dapat diedit jika Anda menghapus izin eksekusi pada direktori untuk target (pemilik / grup / orang lain).
EDIT: Jika Anda ingin pemilik tidak dapat mengedit file dengan mengubah izin direktori (dengan asumsi pengguna yang sama memiliki direktori dan file), maka Anda dapat menghapus izin eksekusi pada direktori untuk pemilik. Misalnya Anda dapat membuat izin untuk pemilik sebagai rw-
yaitu 6
.
Seperti jawaban lain telah menyatakan: Ya, file dapat diedit / dimodifikasi. Dan, dengan risiko rambut rontok, izinkan saya menunjukkan bahwa pertanyaannya mengatakan
... dia memiliki [menulis izin] pada file di bawah [direktori].
dan untuk membuat komentar semi-jelas bahwa, untuk mengedit file dalam arti tradisional kata tersebut, pengguna juga harus memiliki izin baca untuk file tersebut, untuk mendapatkan konten saat ini. Tanpa izin baca, pengguna dapat menimpa data yang ada, dan / atau menambahkan (menambahkan) data di akhir, tetapi dia tidak dapat melakukan pengeditan yang bermanfaat seperti memperbaiki kesalahan ketik atau memasukkan teks.
Dan saya katakan "dimodifikasi" untuk menekankan bahwa kita sedang berbicara tentang berbagai skenario, termasuk yang saya sebutkan di atas (menimpa atau menambahkan) serta
vi
, (atau bahkan hex editor , jika ada),dan vi
, khususnya, tidak memiliki masalah dengan pengeditan file dalam situasi ini. Saya belum menguji banyak editor lain. Saya berharap bahwa sebagian besar dari mereka (misalnya, emacs
, pico
, ...) akan baik-baik saja, juga.
sed -i sed_command (s) nama file
tidak akan bekerja, karena sed -i
bekerja oleh
sed_command(s)
di dalamnya dalam proses,chmod
ing agar sesuai dengan mode asli dari file asli).dan operasi ini gagal ketika direktori dilindungi dari penulisan. (Saya percaya / curiga bahwa beberapa editor lain mungkin berperilaku dengan cara yang sama, tetapi saya tidak dapat menyebutkan contoh.)
Jadi, sed -i
memerlukan akses tulis ke direktori. Dan, tentu saja, itu juga memerlukan izin baca ke file. Tetapi, ending kejutan double-twist adalah:
ia tidak memerlukan akses tulis ke file . Lagi pula, Anda tidak perlu akses tulis ke file untuk menghapusnya; cukup tulis akses ke direktori.
Anda tidak perlu memiliki izin menulis ke direktori, tetapi x
bit yang dapat dieksekusi harus ditetapkan.
Jadi, pertimbangkan direktori foo
dengan file bar
. Jika izin diatur sebagai
drwx--x--x foo
-rw-rw-rw- foo/bar
misalnya, akses tulis tersedia untuk siapa saja selama x
bit diberikan. Bahkan r
tidak diperlukan akses baca ke direktori.