Mengapa hanya chown
perintah root? Mengapa pengguna non-root menggunakan chown untuk memberikan file yang mereka miliki?
permissions
not-root-user
chown
dahak
sumber
sumber
chown
untuk memberikan file yang mereka miliki. (Saya telah melihat sistem di mana, tergantung pada konfigurasi sistem file, Anda bisa.)Jawaban:
Sebagian besar sistem unix mencegah pengguna dari "memberikan" file, yaitu, pengguna hanya dapat berjalan
chown
jika mereka memiliki hak pengguna dan kelompok sasaran. Karena menggunakanchown
mengharuskan memiliki file atau menjadi root (pengguna tidak pernah dapat menyesuaikan file pengguna lain), hanya root yang dapat berjalanchown
untuk mengubah pemilik file menjadi pengguna lain.Alasan pembatasan ini adalah bahwa memberikan file ke pengguna lain dapat memungkinkan hal-hal buruk terjadi secara tidak umum, tetapi masih dalam situasi yang penting. Sebagai contoh:
chown
untuk membuat file itu dimiliki oleh pengguna lain Bill. File kemudian akan dihitung di bawah kuota disk Bill meskipun hanya Alice yang dapat menggunakan file tersebut.sumber
/bin/bash
, mengaturnya, dan kemudianchown
ke siapa pun yang mereka inginkan. Sekarang mereka memiliki akses shell sebagai orang itu.chown
selalu membersihkan bit setuid dan setgid.drwxr-xr-x ring0 ring0 .
) di mana root memiliki file biasa (-rw-r--r-- root root file
), mengapa saya tidak bisa melakukannyachown ring0 file
karena memang diperbolehkan untuk melakukan, sepertiring0
,cp file x ; rm file ; mv x file
(dan beberapa opsionaltouch sometime file
...)?Di Linux, Anda perlu kapabilitas CAP_CHOWN untuk dikunyah. root diberikan seperti itu. Rujuk ke: http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html untuk penjelasan. Jika Anda bermaksud memberikan kapabilitas CAP_CHOWN, buat kode Anda dengan libcap-ng atau libcap seperti yang ditunjukkan oleh: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html di mana Anda harus mengganti CAP_AUDIT_WRITE sederhana dengan CAP_CHOWN.
sumber
Anda dapat meluncurkan perintah tetapi itu tidak akan berhasil jika Anda tidak root. Sangat mudah: bayangkan seorang pengguna yang dapat mengubah perangkat lunak menjadi pengguna root. Itu dapat menambahkan bit setuid dan, voa, pria itu root! Jadi, penggunaannya dapat menambahkan bit dengan chmod, tetapi tidak ada kesempatan untuk mengubah pemilik file.
sumber