Apa manfaat sebenarnya dari menetapkan hak sudo ke pengguna daripada menggunakan root?

25

Saya cukup baru dalam administrasi server, dan saya telah melihat banyak situs yang merekomendasikan untuk memberikan hak sudo kepada pengguna yang dibuat oleh pengguna root dan memberikan kata sandi yang sangat panjang kepada pengguna root untuk peningkatan keamanan.

Jika pengguna yang baru dibuat dapat melakukan fungsi yang sama dengan pengguna root, apa manfaat sebenarnya dari melakukan ini sama sekali?

JM4
sumber
7
Sudoer tidak dapat melakukan semua root, hanya root apa yang memungkinkan sudoers untuk sudo, dan sudoer masih harus sudo perintah. Terakhir, sudoers hal sudoers sebagai akun pengguna mereka sendiri, pertama berarti mereka tidak harus login sebagai root, dan kedua memungkinkan Anda untuk melihat siapa yang sudid sesuatu.
KeithS

Jawaban:

48

Ada beberapa manfaat menggunakan sudoterlalu banyak membagikan kata sandi root. Tanpa urutan tertentu:

  • Anda tidak memberikan kata sandi root Anda.
    Sebagai aturan umum, jika seseorang meninggalkan perusahaan Anda dan mereka tahu kata sandi root, Anda sekarang harus mengganti kata sandi itu di mana-mana. Dengan manajemen konfigurasi yang tepat, ini adalah gangguan kecil. Tanpanya itu adalah tugas besar.

  • Anda tidak memberikan kunci kerajaan
    sudo memungkinkan Anda menentukan daftar perintah terbatas yang dapat dijalankan pengguna, jadi jika Anda memutuskan bahwa Alice hanya membutuhkan kemampuan untuk berhenti dan memulai Apache, tetapi Bob membutuhkan hak root penuh, Anda dapat mengatur mereka sesuai.

  • Anda dapat mengelola otorisasi secara terpusat sudo mendukung konfigurasi LDAP, yang berarti setiap sistem di perusahaan Anda dapat melihat server LDAP pusat untuk menentukan siapa yang diizinkan melakukan apa.
    Perlu mengotorisasi (atau membatalkan otorisasi) seseorang? Ubah konfigurasi sudoers di LDAP dan semua sistem Anda diperbarui sekaligus.

  • Ada jejak audit
    Dengan pengecualian dari pengguna yang diizinkan untuk melakukan sudo su -, sudo shatau sesuatu yang setara, sudoakan menghasilkan jejak audit yang pengguna ran perintah apa.
    (Ini juga akan menghasilkan daftar orang-orang yang memberi diri mereka sendiri root shell yang tidak di-log, sehingga Anda dapat mengarahkan jari Anda pada mereka dan mendesis dengan ketidaksetujuan.)

  • sudobaik untuk lebih dari sekadar root. Semua orang berkonsentrasi sudosebagai cara untuk melakukan hal - hal sebagai su peruser, tapi itu tidak semua bagus untuk itu.
    Katakanlah Alice bertanggung jawab atas pembuatan perangkat lunak tertentu, tetapi Bob harus dapat menjalankan skrip pembuatan juga. Anda bisa memberi Bob entri dalam sudoers yang memungkinkannya menjalankan skrip build sebagai pengguna Alice. (Ya, tentu, ada banyak cara yang lebih baik untuk menangani kasus khusus ini, tetapi prinsip Let user A run a program as user Bdapat bermanfaat ...).
    Anda juga mendapatkan semua manfaat jejak audit yang sama yang saya sebutkan di atas saat melakukan ini ...

voretaq7
sumber
1
Jawaban yang sangat membantu - jika saya tahu (dan maksud saya dengan kepastian 100%) bahwa saya akan menjadi satu-satunya yang mengelola server tunggal, apakah Anda melihat banyak manfaat untuk menetapkan hak istimewa sudo ke pengguna lain (yang akan menjadi milik saya sendiri) di luar mencegah diri dari mengacaukan sesuatu?
JM4
3
@ Konsistensi JM4, dan praktik yang baik untuk satu hari di masa mendatang ketika Anda bekerja di lingkungan yang lebih besar. Dari sudut pandang praktis, Anda tidak boleh langsung masuk sebagai root kecuali Anda berada di konsol fisik memperbaiki sesuatu yang disiram secara meriah, jadi sudolawan suadalah perbedaan akademik - Anda harus melompat melalui satu lingkaran atau yang lain. Menggunakan sudomenawarkan Anda kesempatan untuk menerapkan prinsip privilege paling tidak (poin terakhir saya) di mana praktis, dan itu selalu sesuatu untuk dipertimbangkan secara serius.
voretaq7
2
Juga, gunakan visudo untuk mengedit file sudoers Anda.
Justin Dearing
3
Perhatikan bahwa banyak perintah interaktif akan memungkinkan pengguna melewati jejak audit. Misalnya, setiap pengguna yang sudo vibisa :! bashsekali di dalam vi.
Dietrich Epp
4
@DietrichEpp NOEXECTag membantu dalam kasus itu.
Shane Madden
17

Perbedaan utama adalah bahwa pengguna mengotentikasi untuk sudomenggunakan kata sandi mereka sendiri , sedangkan dengan suatau login root langsung kata sandi root digunakan.

Ini berarti bahwa Anda tidak harus membagikan kata sandi root dengan semua orang , dan bahwa jika Anda perlu menonaktifkan akses root untuk satu atau dua pengguna di masa mendatang, Anda dapat menonaktifkannya untuk mereka, daripada harus mengubah kata sandi root.

sudojuga mampu membatasi perintah mana yang dapat dijalankan oleh setiap pengguna sebagai root, sehingga pengguna tertentu dapat diberikan akses hanya ke tugas yang perlu mereka lakukan, jika mereka tidak memerlukan akses root penuh.

Michael Hampton
sumber
1
Terima kasih untuk bantuannya. Saya melihat manfaat dari poin Anda, tetapi saya juga benar-benar melihat pengguna dasar untuk membasmi pengguna sebagai titik otentikasi ganda mengingat saya telah menonaktifkan login pengguna root dari ssh di server saya.
JM4
4

Selain jawaban yang diberikan, yang valid, jangan lupa bahwa pengguna yang login sebagai root berpotensi merusak sistem di setiap perintah. Jika Anda memaksa mereka mengetikkan sudo sebelum melakukan sesuatu yang berpotensi berbahaya, setidaknya Anda membuat mereka sadar bahwa mereka perlu memeriksa ulang sebelum melakukan perintah tertentu.

gyin
sumber
2

Ya memang - dari perspektif kontrol dan logging, sudo jauh lebih baik.

Misalnya - jika Anda su satu-satunya peristiwa yang ditangkap dalam log adalah Anda menuntut. Apa pun setelah itu berjalan sebagai root. Dan jika Anda pernah melihat log di Unix / Linux Anda tahu root melakukan banyak hal.

Sudo di sisi lain mencatat hampir semua SEBAGAI pengguna yang berasal.

kd1s
sumber
0

Menggunakan sudo mempersulit pengguna jahat untuk mendapatkan akses ke sistem. Ketika ada akun root yang tidak dikunci, pengguna jahat tahu nama pengguna akun yang ingin ia crack sebelum mulai. Ketika akun root dikunci, pengguna harus menentukan nama pengguna dan kata sandi untuk membobol sistem.

Prof McAnthony
sumber