chmod: menukar kebenaran '***': Operasi tidak dibenarkan

Chmod Changing Permissions



Pindah dari: https://www.cnblogs.com/cpl9412290130/p/11592803.html

1. Penerangan masalah

Seperti yang kita semua ketahui, dalam sistem Linux, autoriti terbesar adalah root, tetapi semua operasi yang melibatkan pengubahsuaian autoriti utama dari sistem itu sendiri memerlukan root authority untuk beroperasi. Tetapi kadang-kadang ada perkara yang tidak dapat dilakukan oleh root.



seperti:



chmod: changing permissions of 'authorized_keys': Operation not permitted

Kedua, latar belakang masalah

Kadang-kadang anda perlu mengubah kebenaran fail, tetapi walaupun anda menggunakan perintah chmod di bawah root, ia mungkin tidak berjaya diubah, dan kadang-kadang anda akan menghadapi masalah Operasi yang tidak dibenarkan.



Secara amnya, kebenaran pengguna root di Linux adalah yang terbesar (semakin rendah nilai UID di Linux, semakin besar kebenarannya, anda dapat melihat bahawa nilai minimum adalah 0, yang merupakan pengguna root)

Namun, apabila menggunakan chmod untuk mengubah kebenaran fail, bahkan di bawah pengguna root, anda akan menghadapi masalah operasi yang tidak dibenarkan.

Sebenarnya, pelaksanaan asas chmod adalah chattr Perintah, fungsi menggunakan perintah ini lebih kuat, dan bahkan dapat mengunci fail, bahkan pengguna root tidak dapat mengoperasikan file ini.



Ketiga, penyelesaiannya

lsattr Boleh digunakan untuk melihat atribut fail:

lsattr filename

Sekiranya terdapat atribut i atau file, atau salah satunya

boleh digunakan chattr Alih keluar atribut ini:

chattr -ia filename

Pada masa ini, gunakan perintah chmod sekali lagi untuk menukar kebenaran fail.

Metode ini juga berlaku untuk direktori file, tetapi direktori file tidak merespons ketika menggunakan perintah lsattr untuk melihat atribut, tetapi setelah menghapus atribut ia menggunakan perintah chattr, Anda dapat berhasil menggunakan chmod untuk mengubah izin.

Sekiranya anda ingin memulihkan atribut ia, gunakan:

chattr +ia filename

Hanya ~