harus menggunakan sudo atau hanya su root di manajemen server?

8

Pendekatan mana yang lebih baik?

Untuk penggunaan desktop, tampaknya sudo lebih baik karena:

  • Saya dapat memiliki riwayat yang lebih konsisten sebagai pengguna normal
  • Tidak perlu mengingat dua kata sandi, yang terutama benar ketika saya tidak melakukan hal-hal administratif secara teratur.
  • Tidak perlu membuat akun root tambahan saat instalasi.

Tetapi tentang manajemen server?

Di server biasanya Anda sudah memiliki akun root yang dibuat dan Anda cenderung sering melakukan hal administratif. Jadi kelebihan sudo sepertinya tidak lagi berlaku.

Terlebih lagi, mudah untuk mengkonfigurasi su pada command line di sebagian besar distribusi, cukup tambahkan pengguna ke grup wheel. (Anda bahkan dapat mengoper -G wheelketika useradding.) Dengan demikian, mengonfigurasi su dapat dengan mudah diotomatisasi ke skrip shell.

Tapi untuk sudo? Anda harus terlebih dahulu menambahkan pengguna, daripada menjalankan secara visudointeraktif. Ini buruk karena Anda tidak dapat mengotomatiskannya ke skrip shell.

(Ya, Anda bisa. Misalnya,

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

Tapi setidaknya itu tidak mudah.)

Jadi, apa pendapat Anda? Untuk lingkungan server, mana yang Anda pilih, sudo atau su root?

lemah
sumber
Ini harus berupa wiki, kalau tidak kemungkinan akan ditutup karena terlalu subjektif.
John Gardeniers
Saya tidak berpikir itu terlalu subjektif. Seperti yang ditunjukkan oleh jawaban Raphink yang sangat baik, di lingkungan banyak pengguna, sudo lebih disukai.
lemah
Saya tidak berpikir itu pertanyaan subjektif sama sekali. Ini bukan tentang apakah Anda suka sudo atau tidak, tetapi apakah itu disesuaikan dengan satu penggunaan atau yang lain.
ℝaphink
Ngomong-ngomong, saya juga sedikit terkejut dengan visudo -cperintah Anda , karena saya yakin Anda perlu visudo -c -fmemeriksa file tertentu.
ℝaphink
@ Rafink ya, Anda benar sekali. Saya telah mengedit pertanyaan saya.
lemah

Jawaban:

16

Akun root memang diperlukan di server, tapi saya lebih suka memberikan hak sudo, terutama ketika ada beberapa pengguna di mesin, dan ini karena beberapa alasan:

  • Saya tidak menggunakan sudo hanya untuk memberikan SEMUA hak untuk SEMUA perintah, tetapi juga untuk memberikan hak khusus sebagai pengguna khusus untuk perintah tertentu.
  • Dengan menetapkan pengguna ke grup fungsional, saya dapat mengelola hak mereka dengan grup ini dalam sudoers alih-alih mengelola pengguna secara individual.
  • akses sudo login secara auth.log secara default, termasuk pengguna mana yang menggunakan sudo pada jam berapa.
  • sudo memungkinkan untuk mengelola konfigurasi untuk beberapa mesin dengan satu file.
  • setiap pengguna menyimpan kata sandi mereka sendiri, sehingga tidak perlu mengubah kata sandi root saat pengguna pergi.

Sedangkan untuk mengelolanya dengan skrip, versi baru sudo mendukung inklusi, tapi saya lebih suka menggunakan wayang dan mengatur kelas yang menggabungkan konten sudoers.

Wayang juga dapat dikaitkan dengan Augeas untuk mengelola file sudoers Anda.

ℝaphink
sumber
3
Sebenarnya saya belum mempertimbangkan kasus banyak pengguna. Anda benar, sudo tampaknya adalah pemenang ketika ada banyak pengguna. Tetapi untuk pengguna tunggal, saya masih berpikir su sudah cukup. PS Terima kasih telah menyebutkan boneka. Hanya belum menyadari alat lucu seperti itu sebelumnya.
lemah
Ngomong-ngomong, jika Anda ingin memvalidasi file sudoers Anda sebelum menggunakan dengan boneka, saya punya fungsi validasi yang melakukan itu.
ℝaphink
1
Saat menggunakan sudo, root bahkan tidak perlu memiliki kata sandi yang valid karena Anda hanya perlu mengandalkan kata sandi pengguna. Seiring dengan tidak perlu mengubah kata sandi root ketika seseorang pergi, Anda juga memiliki satu kata sandi lebih sedikit yang bisa ditebak / rusak / diretas.
Shannon Nelson
@ShannonNelson Saya yakin mereka menyebutkan pengguna root dan kata sandi karena server sewaan biasanya disediakan dengan ini.
AJP
1

Anda tampaknya membuat segalanya sulit pada diri Anda sendiri (ketika datang ke mengelola / etc / sudoers). Sederhana

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

sudah cukup. Semua visudo tidak mengunci file terhadap pengeditan bersamaan dan memastikan bahwa file masih diurai dengan benar.

rodjek
sumber
Saya menggunakan visudo -c untuk memeriksa apakah ada masalah. (Meskipun seharusnya tidak. Tapi mungkin ketika saya mengedit sript saya rindu mengetik beberapa karakter, atau lebih buruk, termasuk beberapa karakter khusus yang tidak terlihat.) Tapi saya setuju, solusi satu baris Anda sudah cukup.
lemah