Jika saya memiliki folder root dengan izin terbatas, katakan saja 600, dan jika folder / file anak memiliki izin 777, apakah semua orang akan dapat membaca / menulis / mengeksekusi file anak meskipun folder root memiliki 600?
permissions
directory
Ken Li
sumber
sumber
Jawaban:
Aturan tepatnya adalah: Anda dapat melintasi direktori jika dan hanya jika Anda memiliki izin untuk menjalankannya.
Jadi misalnya untuk mengakses
dir/subdir/file
, Anda perlu menjalankan izindir
dandir/subdir
, ditambah izinfile
untuk jenis akses yang Anda inginkan. Masuk ke kasus sudut, saya tidak yakin apakah itu universal bahwa Anda perlu menjalankan izin pada direktori saat ini untuk mengakses file melalui jalur relatif (yang Anda lakukan di Linux).Cara Anda mengakses file penting. Misalnya, jika Anda telah menjalankan izin pada
/foo/bar
tetapi tidak aktif/foo
, tetapi direktori Anda saat ini/foo/bar
, Anda dapat mengakses file/foo/bar
melalui jalur relatif tetapi tidak melalui jalur absolut. Anda tidak dapat mengubah/foo/bar
dalam skenario ini; proses yang lebih istimewa mungkin telah dilakukancd /foo/bar
sebelum tidak memiliki hak . Jika file memiliki banyak tautan keras, jalur yang Anda gunakan untuk mengaksesnya menentukan kendala akses Anda.Tautan simbolik tidak mengubah apa pun. Kernel menggunakan hak akses dari proses panggilan untuk melewatinya. Misalnya, jika
sym
tautan simbolis ke direktoridir
, Anda perlu menjalankan izindir
untuk mengaksessym/foo
. Izin pada symlink itu sendiri mungkin atau tidak masalah tergantung pada OS dan sistem file (beberapa menghormati mereka, beberapa mengabaikannya).Menghapus izin eksekusi dari direktori root secara efektif membatasi pengguna ke bagian dari pohon direktori (dimana proses yang lebih istimewa harus berubah menjadi). Ini membutuhkan daftar kontrol akses untuk digunakan. Misalnya, jika
/
dan/home
berada di luar batas kejoe
(setfacl -m user:joe:0 / /home
) dan/home/joe
merupakanjoe
direktori home, makajoe
tidak akan dapat mengakses seluruh sistem (termasuk menjalankan skrip shell dengan/bin/sh
atau binari terkait secara dinamis yang perlu diakses/lib
, jadi Anda harus d perlu masuk lebih dalam untuk penggunaan praktis, misalnyasetfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib
).Izin baca pada direktori memberikan hak untuk menghitung entri. Memberi izin eksekusi tanpa memberikan izin baca terkadang bermanfaat: nama entri berfungsi sebagai kata sandi untuk mengaksesnya. Saya tidak bisa memikirkan kegunaan apa pun dalam memberikan izin baca atau tulis ke direktori tanpa menjalankan izin.
sumber
Tidak. Izin folder root membatasi izin file anak. Kamu bisa mencobanya.
Saya mendapatkan ini:
sumber
Anda dapat membuat direktori anak dapat ditulisi walaupun direktori induknya tidak. Saya melakukan ini untuk grup.
Sebagai contoh: direktori induk dimiliki oleh grup coder
direktori anak
Anda (anggota grup coder) masih dapat menulis ke direktori turunan tetapi tidak ke direktori induk.
sumber
Anda dapat membuat tautan keras untuk mengakses file bahkan jika Anda tidak memiliki hak istimewa eksekusi di direktori induk. Tapi yang penting di sini adalah Anda harus membuat tautan keras sebelum Anda kehilangan hak istimewa eksekusi di direktori induk
sumber