Bisakah saya mengizinkan pengguna untuk chmod file yang tidak dimiliki oleh mereka?

17

Saya ingin mengizinkan pengguna untuk chmod file yang dimiliki oleh root atau beberapa pengguna yang bukan diri mereka sendiri. Saya telah chmod'ed file ke 777 dan saya mendapatkan "operasi tidak diizinkan". Saya telah menambahkan pengguna ke grup file dan mendapatkan yang sama. Mengapa pengguna tidak dapat chmod file mereka memiliki akses tulis?

ashleysmithgpu
sumber
1
Dengan logika ini, mengapa tidak menjalankan semuanya sebagai root? Jika ada pengguna yang dapat mengubah mode apa pun, pada dasarnya Anda menghancurkan seluruh model izin Unix ...
Chris Down
1
Apa yang ingin kamu lakukan? mungkin Anda harus melihat ke sudo: linux.die.net/man/8/sudo & linux.die.net/man/5/sudoers
xx4h
File ini memiliki izin 777, pengguna dapat pergi "mv file file.old; cat file.old> file" dan mereka sekarang akan memiliki file dan dapat chmod. Mengapa mereka tidak bisa "chmod 777 file"?
ashleysmithgpu
5
Tidak, mereka hanya dapat melakukan itu jika mereka memiliki izin menulis ke direktori. Jika pengguna memiliki hak untuk mengubah izin file yang bukan miliknya, dengan mengatur mode 04777, dan menyalin / usr / bin / env ke dalamnya, ia dapat menjalankan perintah apa pun sebagai pengguna itu.
Stéphane Chazelas
@StephaneChazelas Itu adalah argumen yang aneh karena kernel dapat dengan mudah memutuskan (dan memang!) Untuk memungkinkan non-pemilik perubahan seperti itu tanpa terikat oleh keputusan itu untuk memungkinkan mereka semua jenis perubahan. Setelah semua SUID bahkan diatur ulang ketika bukan pemilik menulis file.
Hauke ​​Laging

Jawaban:

8

Mengapa pengguna tidak dapat chmod file mereka memiliki akses tulis?

Untuk hak akses normal, ini adalah keputusan desain. Anda membutuhkan richacl : WRITE_ACLdan mungkin WRITE_OWNER.

Hauke ​​Laging
sumber
1
Dan Anda harus memperingatkan bahwa richacl umumnya tidak tersedia.
sendmoreinfo
@sendmoreinfo Artikel Wikipedia mengatakan itu dan itu jelas harus dibaca karena jawaban saya tidak menjelaskan apa itu richacl dan bagaimana mereka digunakan. Sangat konyol untuk mempertimbangkan jawaban yang benar "tidak berguna" karena ini. Terutama karena tidak ada alternatif yang setara. Lain kali lakukan pengeditan jika Anda merasa informasi tersebut diperlukan.
Hauke ​​Laging
Saya mengerti, ini adalah keputusan desain, terima kasih
ashleysmithgpu
2
Anda jelas menggunakan fitur itu, jadi jelaskan sendiri, dengan kata-kata Anda sendiri.
sendmoreinfo
10

Izin Unix dirancang agar sederhana. Anda memerlukan izin baca untuk membaca dari file, izin menulis untuk menulis ke file, dan izin eksekusi untuk mengeksekusi file. Anda perlu memiliki file untuk memodifikasi metadata¹ nya.

Mengizinkan pengguna yang dapat membaca file untuk memberi orang lain izin baca, atau mengizinkan pengguna yang bisa menulis file untuk memberi orang lain izin menulis, tidak akan banyak mengubah model keamanan. Itu karena izin unix bersifat diskresioner: pengguna yang dapat membaca file dapat mengekspos kontennya ke pengguna lain, bahkan jika pengguna lain ini tidak akan dapat membaca file (dan juga untuk menulis, pengguna dapat bertindak sebagai proxy dan tulis atas nama orang lain).

Di sisi lain, mengizinkan pengguna untuk memberikan izin yang tidak dimilikinya akan sepenuhnya menghancurkan sistem izin: pengguna dapat memberikan semua izin untuk dirinya sendiri.

Sangat jarang perlu mengubah izin file yang bukan milik Anda. Biasanya Anda harus mengatur agar file memiliki izin yang tepat segera setelah dibuat. Jika Anda benar-benar membutuhkannya, Anda dapat memberikan sudo chmodhak kepada pengguna untuk mode tertentu dan file tertentu (misjoe: ALL = (ALL) chmod g+r /path/to/file ).

¹ Kecuali waktu akses dan modifikasi, yang khusus karena membaca atau menulis ke file juga mengaturnya.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Dalam kasus penggunaan saya ada proses web (oleh www-data) dan proses cli (sendiri) yang ingin mengatur izin pada file. Saya menambahkan diri saya ke grup data-www, tetapi ini tidak cukup.
donquixote
Bahkan mengubah pemilik / grup ke saya sendiri: www-data tidak membantu. (Saya belum mendesain mekanisme yang mencoba mengatur izin, saya tidak punya kendali atas itu)
donquixote