GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Antara Pengguna Sudo Dan Pengguna Root?

Tutup . Pertanyaan ini membutuhkan detail atau kejelasan. Saat ini tidak menerima jawaban.

Ingin memperbaiki pertanyaan ini? Tambahkan detail dan klarifikasi masalahnya dengan mengedit postingan ini.

Ditutup 4 tahun yang lalu.


Perbaiki pertanyaan ini

/etc/sudoers daftar file yang dapat dilakukan pengguna dengan sudo perintah

Pengguna root membuat dan memodifikasi /etc/sudoers berkas.

Konsep ini sulit saya pahami.

Jika semua pengguna yang memiliki hak istimewa sudo milik sudoers grup, maka semuanya bisa menjadi root dengan memberikan sudo su perintah.

Lalu siapa pengguna root sebenarnya dan bagaimana dia mengontrol kekuatan pengguna di grup sudoers?

Tolong jelaskan padaku.

Jawaban yang Diterima:

Ringkasan eksekutif:"root" adalah nama sebenarnya dari akun administrator. "sudo" adalah perintah yang memungkinkan pengguna biasa untuk melakukan tugas administratif. “Sudo” bukan pengguna.

Jawaban panjang:

"root" (alias "superuser") adalah nama akun administrator sistem. Asal usul nama itu agak kuno, tapi itu tidak masalah.

Pengguna root memiliki id pengguna 0 dan secara nominal memiliki hak tak terbatas. Root dapat mengakses file apa pun, menjalankan program apa pun, menjalankan panggilan sistem apa pun, dan mengubah pengaturan apa pun. (Tapi lihat di bawah¹).

Sebelum ditemukannya perintah “sudo”, jika Anda ingin melakukan tugas administratif, Anda harus login sebagai root, entah dengan cara mendapatkan prompt login², atau dengan su perintah (“su” adalah kependekan dari pengguna pengganti.)³

Itu sedikit merepotkan, dan juga tidak membiarkan Anda memberi pengguna kekuatan administratif parsial. Jadi perintah "sudo" (kependekan dari "pengguna pengganti do") ditemukan.

Perintah "sudo" memungkinkan Anda menjalankan perintah dengan hak pengguna super selama id pengguna Anda ada di file sudoers, memberi Anda otorisasi yang diperlukan.

Jadi, misalnya sudo vi /etc/hosts akan memungkinkan Anda untuk mengedit file host seolah-olah Anda menjalankan sebagai root. Anda bahkan tidak memerlukan kata sandi root, cukup kata sandi login Anda sendiri.

Dan tentu saja, sudo su akan memungkinkan Anda untuk menjadi root. Hasilnya sama seperti jika Anda login sebagai root atau menjalankan su perintah, kecuali bahwa Anda tidak perlu mengetahui kata sandi root tetapi Anda harus berada di file sudoers.

File sudoers menentukan siapa yang dapat menggunakan perintah sudo dan apa yang dapat mereka lakukan dengannya.

File sudoers adalah yang memberi Anda banyak administrator⁴. Secara efektif, administrator Anda adalah root, ditambah semua orang yang terdaftar di file sudoers. Tanpa file sudoers, satu-satunya administrator adalah root.

Faktanya, di organisasi tempat orang lain mengelola komputer Anda untuk Anda, cukup umum untuk tidak mengetahui kata sandi root komputer Anda sendiri — selama Anda berada di file sudoers, itu tidak masalah.

Di satu perusahaan tempat saya bekerja, dengan server farm yang sangat besar, hanya sedikit orang yang mengetahui kata sandi root. Sebagai gantinya, ada database tentang siapa yang diizinkan bekerja di server mana. Proses otomatis akan menambahkan Anda ke file sudoers dari server yang diizinkan untuk Anda akses, dan menghapus Anda saat otorisasi Anda kedaluwarsa.

Terkait:Keluar dari karakter yang tidak dikenal dari string untuk -exec?

Satu hal lagi:versi Unix modern sekarang dapat membatasi bahkan apa yang dapat dilakukan oleh pengguna root.

Di bawah SELinux (Security Enhanced Linux), secara efektif ada daftar kontrol akses yang menentukan program mana yang dapat melakukan apa, dan bahkan root tidak dapat melewati batasan tersebut.

Di bawah sistem Perlindungan Integritas Sistem (SIP) Apple (alias "tanpa root"), file dan direktori tertentu dikunci sehingga hanya aplikasi dalam daftar putih yang sesuai yang dapat mengaksesnya.

Sistem ini ada untuk melindungi sistem dari kasus di mana pengguna jahat berhasil mendapatkan akses root. (Atau dalam beberapa kasus, untuk mencegah pengguna melakukan jailbreak pada perangkat tertanam mereka.) Untuk alasan yang jelas, sangat sulit untuk melewati batasan ini, bahkan dengan akses root.

² Prompt “login:” adalah bagian kuno lain dari sejarah Unix, yang berasal dari saat kita semua menggunakan terminal ascii pada jalur serial, alih-alih sistem jendela. Anda masih bisa mendapatkan prompt “login:” hanya dengan mengetik login di jendela terminal mana pun, atau dengan membuka koneksi ssh (atau telnet atau rsh) ke komputer Anda dari tempat lain. Anda dapat masuk sebagai pengguna lain dari sana jika Anda mau. (Dan jika komputer Anda kebetulan memiliki port serial, Anda masih dapat mengonfigurasinya untuk mengizinkan login.)

Program individual juga dapat diberikan akses root. Program-program ini dapat melakukan apa saja yang dapat dilakukan oleh pengguna dengan akses root, bahkan ketika dijalankan oleh pengguna biasa. Ini biasanya terbatas pada tugas-tugas tertentu. Misalnya, program crontab memiliki hak akses root sehingga dapat mengedit tabel cron. Jelas, "sudo" memiliki hak akses root sehingga dapat melakukan apa yang dilakukannya.

Saya akan membahas satu hal lagi yang saya abaikan sebelumnya. Saya telah menggunakan "administrator" dan "root" secara bergantian, tetapi ada jenis administrator lain. Ini sering disebut "akun peran", yang mengatakan bahwa akun ini bukan milik manusia yang sebenarnya, tetapi ada untuk melakukan beberapa peran tertentu pada sistem. Jika Anda melihat /etc/passwd file di sistem Anda, Anda akan menemukan lusinan akun semacam itu.

Misalnya, jika mysql diinstal pada sistem Anda, akan ada pengguna "mysql", dan semua file database, file konfigurasi, dan sebagainya semuanya akan dimiliki oleh pengguna tersebut. Hanya pengguna itu (dan root, tentu saja) yang memiliki izin yang diperlukan untuk mengakses file dan menjalankan server mysql. Dalam arti tertentu, pengguna itu akan menjadi akun administrator, tetapi hanya untuk mysql.

Jika Anda perlu melakukan tugas administratif database, Anda akan menjadi “mysql” dengan su mysql perintah, atau gunakan sudo di mana file sudoers akan memberi Anda hak istimewa mysql untuk perintah khusus tersebut.


Linux
  1. Perbedaan Antara Perintah "su" dan "su -" di Linux

  2. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  3. Perbedaan Antara Eot dan Eof?

  1. Perbedaan Antara [0-9], [[:digit:]] Dan D?

  2. Apa Perbedaan Antara Pengguna Biasa dan Pengguna Sistem?

  3. Perbedaan Antara Pemilik/root Dan Ruid/euid?

  1. Perbedaan Antara Snat dan Masquerade?

  2. perbedaan antara cgroup dan namespace

  3. Apa perbedaan antara root dan sudo?