Di Linux, apakah izin "tulis" setara dengan "mengeksekusi" untuk direktori?

16

Izin eksekusi masuk akal untuk file (yang termasuk skrip dll.), Tetapi ketika datang ke direktori, write (w)izin bekerja dengan cara yang sama seperti execute (x), kan?

Yang berarti, jika kita memberikan izin menulis ke direktori, kita juga biasanya memeriksa "x" (untuk mengeksekusi) untuk direktori itu juga, kan?

ini aku
sumber
2
Pertanyaan Anda sekarang tidak bisa dimengerti. Tidak jelas di mana Anda berbicara tentang izin pada file dan di mana Anda berbicara tentang izin pada direktori yang berisi itu.
Gilles 'SANGAT berhenti menjadi jahat'
1
Jika Anda memiliki pertanyaan baru, bisakah Anda mempostingnya secara terpisah ?
Michael Mrozek
1
Apa yang Anda maksud dengan "izin baca adalah yang kami butuhkan untuk sebuah file?" Yang kamu butuhkan untuk apa? Untuk membaca file? Iya. Untuk memodifikasi file ... tidak, kecuali Anda adalah pemilik file itu.
gabe.
Selain meninggalkan operasi "dapat membaca, dapat mengubah nama / menghapus file dalam direktori", "000: Anda tidak dapat menghapusnya" sebenarnya tidak benar. Jika direktori tersebut sudah kosong, Anda dapat menghapusnya jika Anda dapat menulis ke direktori induknya. Jika tidak kosong, Anda tidak dapat menghapusnya sampai kosong (menjadikannya kosong adalah operasi rekursif yang memerlukan ketiga izin di atasnya dan semua subdirektori tidak kosong)
Random832
Suntingan Anda untuk pertanyaan ini membuatnya sangat membingungkan untuk mencari tahu apa yang ditanyakan dan tampaknya tidak menambah nilai bagi pengunjung masa depan. Saya kembali ke bentuk pertanyaan sederhana asli yang dijawab @Gilles. Jika Anda memiliki masalah baru, Anda dapat mengajukan pertanyaan lain . Cobalah untuk membuat setiap pertanyaan terfokus pada satu masalah.
Caleb

Jawaban:

49

Izin eksekusi pada direktori memungkinkan mengakses file di dalam direktori. Izin baca memungkinkan enumerasi entri direktori. Izin menulis memungkinkan membuat dan menghapus entri di dalamnya.

Membaca atau menulis izin pada direktori tanpa izin tidak berguna. Menjalankan tetapi tidak membaca izin kadang-kadang bermanfaat: memungkinkan mengakses file hanya jika Anda tahu nama persisnya, semacam perlindungan kata sandi primitif.

Jadi dalam praktiknya izin yang berguna pada direktori adalah:

  • ---: tidak ada akses
  • --x: dapat mengakses file yang namanya diketahui (kadang berguna)
  • r-x: akses read-only normal
  • rwx: akses baca dan tulis normal

Lihat juga Direktori dengan izin + x, orang tua tanpa itu. Kapan ini berguna? dan Apakah izin direktori induk penting saat mengakses subdirektori?

Gilles 'SO- berhenti menjadi jahat'
sumber
@Gilles benar! Melakukan beberapa penelitian tentang hal ini untuk Linux mengungkapkan: 1) Ketika sebuah direktori tidak memiliki izin 'x' untuk pengguna, itu panggilan sistem stat atau lstat yang gagal. Ini menghasilkan tidak ada metadata dari entri direktori, meskipun mendapatkan entri direktori (nama, inode) dimungkinkan ketika pengguna memiliki 'r' izin pada direktori. 2) Lihat man 7 path_resolution di Linux untuk beberapa informasi tambahan.
Kedar Mhaswade
2
w-xbisa juga memiliki kegunaannya. Sebagai contoh, ini dulunya merupakan praktik yang cukup umum bagi situs FTP publik untuk memiliki uploadatau incomingfolder yang dapat ditulis secara publik tetapi hanya dapat dibaca oleh administrator server.
jmbpiano
Apa rw-yang r--tidak bisa dilakukan untuk direktori? Jawaban ini menyebutkan kemampuan untuk mengubah waktu modifikasi, tetapi pada sistem Linux ZFS saya itu tidak benar, saya dapat mengubah waktu modifikasi bahkan ketika direktori saya hanya r--.
CMCDragonkai
@CMCDragonkai Anda benar, mengubah metadata didasarkan pada kepemilikan, itu tidak terkait dengan izin. Saya tidak berpikir Anda dapat melakukan apa pun dengan rw-direktori selain daftar entri (dan pindahkan / hapus jika Anda memiliki orang tuanya, yang tidak memerlukan izin pada direktori).
Gilles 'SO- stop being evil'
@Gilles: Benar. dengan rw-pada dir, saya tidak dapat membuat file baru di dalamnya atau mengubah yang sudah ada, bahkan jika saya memiliki rw-pada file saya coba ubah. touchFile saya juga tidak. Saya di Arch Linux 4.14.13.
Matthias Braun