Hanya pemilik file, atau pengguna root, yang dapat mengubah izin file. Izin saat ini pada file atau pada direktori induknya tidak relevan¹. Ini ditentukan dalam POSIX :
Aplikasi harus memastikan bahwa ID pengguna yang efektif dari proses cocok dengan pemilik file atau proses memiliki hak yang sesuai untuk melakukan ini.
Pada sebagian besar unices, "hak yang sesuai" berarti berjalan sebagai root. Jika kondisi ini tidak terpenuhi, chmod
biasanya gagal dengan EPERM
, meskipun perilaku lain seperti membatalkan program karena pelanggaran keamanan diizinkan.
Selain itu, beberapa varian unix memiliki cara otorisasi atau melarang sistem khusus chmod
. Misalnya, Linux memiliki kemampuan ( CAP_FOWNER
) yang memungkinkan proses untuk mengubah izin file dan metadata lainnya terlepas dari pemiliknya.
Ada alasan lain yang chmod
mungkin gagal meskipun file itu ada, dapat diakses dan memiliki pemilik yang sesuai. Yang umum termasuk sistem file read-only atau sistem file yang tidak mendukung izin seperti FAT. Yang kurang umum termasuk pembatasan spesifik sistem seperti atribut yang tidak dapat diubah pada sistem file Linux dan penerusnya.
¹ Kecuali sejauh proses yang sedang berjalan chmod
harus dapat mengakses file, sehingga harus memiliki izin eksekusi pada direktori yang berisi file dan direktori lain yang dilaluinya untuk melakukannya.