Apakah "sudo su -" dianggap sebagai praktik yang buruk?

13

Latar Belakang

Saya tahu perbedaan antara su -, sudo su -dan sudo <command>:

  • su - - Mengalihkan pengguna ke root, membutuhkan kata sandi root
  • sudo su - - Mengalihkan pengguna ke root, hanya membutuhkan kata sandi pengguna saat ini
  • sudo <command>- memberikan akses root hanya untuk perintah tertentu; hanya membutuhkan kata sandi pengguna saat ini

Pertanyaan saya adalah apakah menggunakan atau tidak sudo su -adalah praktik yang aman di lingkungan produksi.

Beberapa pemikiran:

  1. Sepertinya memungkinkan sudo su -menimbulkan risiko keamanan dengan membuat akses ke akun root bergantung pada kata sandi pengguna individu. Tentu saja, ini dapat dikurangi dengan menerapkan kebijakan kata sandi yang ketat. Saya tidak berpikir su -ini lebih baik karena itu akan memerlukan administrator untuk membagikan kata sandi root yang sebenarnya.

  2. Mengizinkan pengguna untuk sepenuhnya beralih ke akun root membuatnya lebih sulit untuk melacak siapa yang membuat perubahan pada sistem. Saya telah melihat kasus di pekerjaan harian saya di mana banyak pengguna diberi sudo su -akses. Hal pertama yang dilakukan pengguna saat masuk ke sistem dijalankan sudo su -, sebelum mulai bekerja. Kemudian, suatu hari ada sesuatu yang rusak, dan tidak ada keterlacakan untuk siapa yang berlari rm -rf *di direktori yang salah.

Pertanyaan

Mengingat masalah di atas, apakah pernah merupakan ide yang baik untuk memungkinkan pengguna untuk menggunakan sudo su -atau bahkan su -sama sekali?

Apakah ada alasan administrator akan mengkonfigurasi akun pengguna untuk sudo su -atau su -bukannya sudo <command>(selain dari kemalasan)?

Catatan: Saya mengabaikan kasus di mana pengguna menjalankan sudo su -atau su -Administrator perlu membuat perubahan sistem, ketika akses ssh langsung telah dinonaktifkan untuk pengguna root.

Kingand
sumber
4
sudo su -agak konyol karena sudo -ipada dasarnya melakukan hal yang sama, dengan sedikit penekanan tombol.
Michael Hampton
Saya setuju dengan @MichaelHampton. Namun, saya biasanya menjalankan sudo bashhanya untuk menghindari beberapa overhead login. Namun, setelah refleksi, itu mungkin tidak menghindari sebanyak yang saya bayangkan.
ericx
2
@ ericx Pertimbangkan juga sudo -s.
Michael Hampton

Jawaban:

11

Mari kita lihat kasus Anda:

 su -

akan menjalankan / bin / sh sebagai pengguna root menggunakan lingkungan root. Kata sandi root diperlukan dan penebangan DAPAT dicatat, tergantung pada pengaturan syslog (biasanya secara default ke /var/log/auth.log).

 sudo /bin/sh

akan menjalankan shell sebagai pengguna root menggunakan set variabel lingkungan saat ini (dengan beberapa pengecualian seperti yang akan didefinisikan dalam file sudoers). Kata sandi adalah kata sandi pengguna sumber dan BUKAN kata sandi pengguna root. sudo biasanya dicatat.

 sudo su -

akan menjalankan shell (biasanya / bin / sh) sebagai pengguna root yang mengatur lingkungan sebagai pengguna root. Ini akan memerlukan kata sandi dari pengguna sumber dan ini umumnya akan dicatat.

Terkadang perlu untuk memiliki lingkungan root di atas lingkungan Anda sendiri, sehingga su - adalah metode yang tepat. Ingat sudo masih akan mencatat penggunaan perintah shell dalam kedua kasus.

mdpc
sumber
Saya benar-benar merindukan perbedaan lingkungan antara sudo dan su. Terima kasih!
Kingand
0

* Dengan memperhatikan masalah di atas, apakah ini ide yang bagus untuk memungkinkan pengguna menggunakan sudo su *

Tidak, tidak menurut saya. Ini tidak memiliki keuntungan praktis daripada memungkinkan mereka untuk melakukan su kecuali mereka tidak memerlukan kata sandi root untuk melakukannya.

atau su - sama sekali?

Karena saya selalu menonaktifkan root logon, su diperlukan dan seimbang, membuat server lebih aman.

Ron Lawhorn
sumber
2
Tidak mengharuskan setiap orang untuk secara aktif membagikan kata sandi root memiliki keunggulan budaya keamanan penting yang tidak boleh diabaikan.
Falcon Momot
0

OP tampaknya menyediakan banyak alasan bagus untuk tidak mengizinkan / mendorong penggunaan umum untuk dijalankan sudo bashatau sudo su -karena itu mengalihkannya ke mode serba guna yang internal yang umumnya tidak dicatat. Dan mereka mungkin lupa mereka dalam mode itu dan melakukan sesuatu ... disesalkan.

Ergo, tampaknya lebih aman untuk memiliki sebagian besar pengguna dibatasi untuk menjalankan sudo on/a/particular/command/atau daftar perintah. Dengan begitu setiap perintah sudo dicatat.

Apakah Anda akan menemukan pengecualian dalam praktik? Tentu. Apakah reaksi terhadap pengecualian tersebut untuk kembali ke praktik malas tidak terbatas - sudo sumungkin tidak.

MarkHu
sumber