Apa yang menentukan perintah Linux mana yang memerlukan akses root? Saya mengerti alasan mengapa diinginkan bahwa, katakanlah, apt-get
harus memerlukan root
hak istimewa; tetapi apa yang membedakan perintah ini dari yang lain? Apakah ini hanya masalah kepemilikan dan mengeksekusi izin yang dapat dieksekusi?
linux
root
privileges
Brian Dobby
sumber
sumber
open
dan mendapatkan "izin ditolak". Beberapa aplikasi memeriksagetuid
dan berhenti bekerja jika tidak dipanggil oleh root. Beberapa secara fisik dimiliki oleh root dan hanya pemilik yang dapat mengeksekusinya (lihatchmod
). Jika Anda bertanya apakah ada tanda "perlu root" di header aplikasi - jawabannya adalah tidak. Tidak ada yang namanya afaikJawaban:
Di linux, hak-hak istimewa dari akar berada pada satu titik dibagi menjadi "kemampuan", sehingga Anda bisa mendapatkan daftar lengkap dari hak-hak istimewa root dengan melihat ke dalam dokumentasi yang:
man 7 capabilities
.Untuk menjawab pertanyaan Anda, sebuah perintah akan membutuhkan menjalankan sebagai root ketika membutuhkan salah satu dari hak istimewa ini, dan non-skrip yang dapat dieksekusi tidak memiliki kapabilitas yang relevan yang diatur dalam metadata file-nya (mis. Jika skrip python membutuhkan kapabilitas, maka kapabilitas perlu berada di interpreter python ditentukan dalam baris shebang).
Perhatikan bahwa beberapa perintah yang memerlukan akses root tidak memerlukan sesuatu seperti
sudo
karena mereka memiliki bit SUID yang diatur dalam executable-nya. Bit ini menyebabkan executable dijalankan sebagai pemilik (biasanya root) ketika dieksekusi oleh siapa saja yang memiliki akses eksekusi. Contohnyasudo
sendiri karena mengubah pengguna adalah tindakan istimewa yang perlu dilakukan.EDIT: Saya perhatikan dari pertanyaan Anda bahwa Anda mungkin memiliki gagasan bahwa Anda dapat menentukan apakah suatu perintah akan membutuhkan akses root sebelum menjalankannya. Bukan itu masalahnya. Suatu program kadang-kadang mungkin memerlukan hak akses root dan kali lain tidak, dan ini bisa menjadi keputusan yang dibuat oleh program karena data itu diberikan selama runtime. Ambil contoh, memanggil
vim
, begitu saja tanpa argumen, dan kemudian melalui serangkaian penekanan tombol dan menempel, menyuruhnya untuk menulis sesuatu ke file yang tidak memiliki izin untuk menulis, atau mungkin menjalankan perintah lain yang dengan sendirinya akan memerlukan hak akses root. Apa-apa tentang perintah sebelum dieksekusi dapat menunjukkan bahwa pada akhirnya akan memerlukan akses root. Itu adalah sesuatu yang hanya dapat ditentukan pada titik ia mencoba melakukan sesuatu yang mengharuskannya.Bagaimanapun, berikut adalah beberapa contoh dari halaman referensi yang dirujuk tentang hak istimewa root:
sumber
Ini terutama soal apa alat atau program tidak . Perlu diingat bahwa non-pengguna super hanya dapat menyentuh file yang dimiliki atau memiliki akses ke, alat apa pun yang perlu untuk bisa masuk ke dalam segalanya akan memerlukan akses pengguna super untuk melakukan hal yang dilakukannya. Contoh cepat Hal-hal yang mungkin memerlukan akses pengguna super termasuk, tetapi tidak terbatas pada:
/etc
)/lib
dan/usr/lib
) atau binari (/bin
,/usr/bin
)renice
)sumber
Saya pikir sesuai dengan identitas pengguna untuk memverifikasi izin, tidak sesuai dengan urutan untuk membagi izin. File dan pengguna memiliki hak istimewa dan perintah tidak boleh dibagi.
sumber