Pertanyaan Mengapa saya memerlukan izin x untuk melakukan cd ke direktori? [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

ls -la mencetak berikut ini:

drwxrwxrw- 2 www-data www-data 4096 Aug 12 11:04 files

Nama pengguna saya bukan milik www-data. Ketika mencoba cd ke file Saya mendapatkan "permission denied" meskipun "read"izin untuk orang lain diatur.

Mengapa saya membutuhkan "menjalankan"izin?


18
2017-08-12 09:10


asal




Jawaban:


Arti dari mengeksekusi izin untuk direktori adalah kemampuan untuk mencari nama file di dalam direktori itu.

Tanpa menjalankan izin pada direktori, Anda tidak bisa stat, buka, rename, hapus, atau turun ke subdirektori di dalam direktori itu.

Satu-satunya hal yang dapat Anda lakukan adalah melihat daftar nama file yang ada, dan kemudian hanya jika Anda telah membaca izin (dan membaca tetapi tidak mengeksekusi adalah seperangkat izin yang aneh untuk memiliki direktori).

Jika Anda bukan pemilik direktori yang diberikan, menjadi pemilik dengan menggunakan,

sudo chown username /path/to/directory

Atau cara yang lebih baik adalah menambahkan pengguna ke grup,

sudo usermod -a -G groupName userName

untuk mendapatkan izin penggunaan,

sudo chmod a+x /path/to/dir

24
2017-08-12 09:18



... atau tambahkan pengguna Anda ke grup. - Jos
Mengubah pemilik file atau folder milik "www-data" mungkin bukan ide yang bagus. Server web Anda tidak akan dapat membaca file lagi. - Twinkles
Harus disebutkan bahwa hanya menambahkan pengguna ke grup tidak akan mengubah izin dari proses yang sedang berjalan. Anda harus masuk sebagai diri sendiri lagi di terminal (mis. su $(whoami)) untuk memiliki hak-hak ini untuk sesi terminal ini, atau keluar dari seluruh sistem dan masuk kembali agar ini berlaku untuk semua aplikasi Anda. - Ruslan
Sebenarnya arti dari izin eksekusi adalah kemampuan untuk melintasi direktori. Misalnya, bahkan jika Anda telah mengeksekusi (dan membaca) izin pada direktori Anda masih tidak diizinkan untuk mencari nama file di dalamnya jika lebih tinggi direktori tidak memberi Anda izin eksekusi. - Pepijn Schmitz
"Arti dari mengeksekusi izin untuk direktori adalah kemampuan untuk mencari nama file di dalam direktori itu.", tidak, itulah yang izin baca untuk. Izin eksekusi pada direktori adalah kemampuan untuk masuk ke dalamnya (atau menggunakan apa pun di dalamnya). - Bruno