The /etc/sudoers
berkas daftar mana pengguna dapat melakukan apa dengan sudo
perintah
Pengguna root membuat dan memodifikasi /etc/sudoers
file.
Konsep ini sulit bagi saya untuk mengerti.
Jika semua pengguna yang memiliki hak sudo milik sudoers
grup, maka semuanya dapat menjadi root dengan memberikan sudo su
perintah.
Lalu siapa pengguna root yang sebenarnya dan bagaimana ia mengontrol kekuatan pengguna dalam kelompok sudoers?
Tolong jelaskan kepada saya.
permissions
sudo
users
root
access-control
rancho
sumber
sumber
root
akses dansudo
hak menjadi tidak relevan JIKA Anda mengizinkansudo su
dijalankan. Namun, Anda tidak harus mengizinkannya. Anda dapat mengizinkan serangkaian perintah tertentu saja, misalnya memberikansudo
akses sysadmin junior Anda hanya untuk perintah cadangan spesifik.Jawaban:
Ringkasan eksekutif: "root" adalah nama sebenarnya dari akun administrator. "sudo" adalah perintah yang memungkinkan pengguna biasa melakukan tugas administratif. "Sudo" bukan pengguna.
Jawaban panjang:
"root" (alias "pengguna super") 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 penemuan 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 sebagian kekuasaan administratif. Jadi perintah "sudo" (kependekan dari "user pengganti lakukan") diciptakan.
Perintah "sudo" memungkinkan Anda menjalankan perintah dengan hak superuser selama id pengguna Anda ada di file sudoers, memberi Anda otorisasi yang diperlukan.
Jadi, mis.
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 telah login sebagai root atau menjalankansu
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 inilah yang memberi Anda banyak administrator administ. Secara efektif, administrator Anda adalah root, ditambah semua orang yang tercantum dalam file sudoers. Tanpa file sudoers, satu-satunya administrator adalah root.
Faktanya, di organisasi di mana 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 sekali orang yang mengetahui kata sandi root. Sebagai gantinya, ada database yang diizinkan bekerja di server mana. Proses otomatis akan menambahkan Anda ke file sudoers dari server yang diizinkan untuk Anda akses, dan menghapus Anda ketika otorisasi Anda kedaluwarsa.
¹ Satu hal lagi: versi Unix modern sekarang dapat membatasi apa yang dapat dilakukan oleh pengguna root.
Di bawah SELinux (Security Enhanced Linux), ada secara efektif daftar kontrol akses yang menentukan program mana yang dapat melakukan apa, dan bahkan root tidak dapat melewati batasan itu.
Di bawah sistem Apple System Integrity Protection (SIP) (alias "rootless"), file dan direktori tertentu dikunci sehingga hanya aplikasi pada 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 terhadap perangkat yang disematkan.) Untuk alasan yang jelas, sangat sulit untuk melewati pembatasan ini, bahkan dengan akses root.
² Prompt "login:" adalah bagian kuno lain dari sejarah Unix, yang berasal dari saat kita semua menggunakan terminal ascii pada baris serial, alih-alih sistem jendela. Anda masih bisa mendapatkan prompt "login:" hanya dengan mengetikkan
login
jendela terminal apa pun, atau dengan membuka koneksi ssh (atau telnet atau rsh) ke komputer Anda dari tempat lain. Anda bisa masuk sebagai pengguna lain dari sana jika mau. (Dan jika komputer Anda memiliki port serial, Anda masih dapat mengonfigurasinya untuk mengizinkannya masuk.)³ 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 tertentu. Sebagai contoh, 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 bahas sebelumnya. Saya telah menggunakan "administrator" dan "root" secara bergantian, tetapi ada jenis administrator lainnya. Ini sering disebut "akun peran", yang berarti bahwa akun ini bukan milik manusia yang sebenarnya, tetapi ada untuk melakukan beberapa peran khusus pada sistem. Jika Anda melihat
/etc/passwd
file di sistem Anda, Anda akan menemukan lusinan akun tersebut.Misalnya, jika mysql diinstal pada sistem Anda, akan ada pengguna "mysql", dan semua file database, file konfigurasi, dan sebagainya semua akan dimiliki oleh pengguna itu. Hanya pengguna yang akan 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 administrasi basis data, Anda akan menjadi "mysql" dengan
su mysql
perintah, atau menggunakansudo
tempat file sudoers memberi Anda hak istimewa mysql untuk perintah khusus tersebut.sumber
The "sudo" command lets you execute commands with superuser privileges as long as your user id is in the sudoers file [..]
. Di komputer saya (Solus OS 3), ini salah. Nama pengguna saya tidak ada dalam file sudoers. dan aku masih bisa melakukannyasudo
.su
merupakan singkatan dari "pengguna pengganti";sudo
Oleh karena itu "lakukan pengguna pengganti". Anda dapat menggunakannyasu
untuk masuk sebagai pengguna lain, bukan hanyaroot
. Dan Anda bisa menggunakansudo
untuk menjalankan perintah sebagai pengguna lain.