Anda seorang administrator, tetapi tidak root. The rootpengguna dapat melakukan apa-apa. Administrator dapat melakukan tindakan sepertiroot , tetapi biasanya yang dilakukan oleh administrator tidak dilakukan oleh root. Dengan begitu, Anda memiliki kontrol penuh atas sistem Anda sendiri, tetapi hanya ketika Anda memilih untuk menggunakannya.
Ubuntu meminta kata sandi Anda ketika Anda mencoba melakukan sesuatu root, untuk memastikan itu benar-benar Anda.
Akun Pengguna: Manusia, dan Lainnya
Pengguna manusia nyata memiliki akun pengguna untuk mewakili mereka. Anda membuat satu akun seperti itu ketika Anda menginstal Ubuntu. Tetapi tidak semua akun pengguna mewakili pengguna manusia nyata .
Pengguna manusia nyata diberikan kemampuan (dan ditolak) melalui akun pengguna mereka. Mereka harus menggunakan akun penggunanya untuk menggunakan sistem; karena itu, kemampuan dan batasan akun pengguna mereka berlaku untuk mereka.
Akun pengguna juga digunakan untuk menyusun serangkaian kemampuan dan batasan. Beberapa akun pengguna - sebagian besar, sebenarnya, kecuali jika Anda memiliki banyak pengguna alat berat - ada sehingga program atau perintah tertentu dapat dijalankan dengan identitas mereka, identitas dengan kemampuan dan keterbatasan yang tepat untuk pekerjaan itu.
Misalnya, www-datapengguna ada sehingga jika Anda menjalankan server web, ia memiliki data yang dapat diakses oleh server. Tidak ada pengguna manusia sejati yang diberdayakan untuk membuat perubahan yang tidak dicentang pada data tersebut, dan server web tidak harus diberdayakan untuk melakukan tindakan apa pun yang tidak perlu untuk melayani web. Akibatnya, data web dan sistem lainnya lebih aman terhadap kerusakan yang tidak disengaja atau disengaja, daripada jika server web dijalankan oleh beberapa pengguna manusia yang akan memiliki semua kekuatan server web (dan yang kekuatan server web akan memiliki).
Akun Pengguna Non-Manusia Paling Penting
The superuser , yang username adalah root, adalah user account non-manusia dengan kombinasi yang sangat spesifik kemampuan dan keterbatasan: semua kemampuan, dan tidak ada batasan .
root's diizinkan untuk melakukan apa pun. Masih ada hal root- hal yang tidak dapat dilakukan karena sistem itu sendiri tidak dapat melakukan atau memahaminya. Jadi roottidak bisa membunuh proses yang di tidur yang tidak pernah terputus , atau membuat batu terlalu berat untuk bergerak, kemudian memindahkannya .
Banyak proses sistem penting, seperti init, dijalankan sebagai root, dan rootdigunakan untuk melakukan tugas administratif.
Bisakah saya masuk sebagai root?
Anda dapat mengonfigurasi rootakun sehingga dapat masuk dengan kata sandi, tetapi ini tidak diaktifkan secara default di Ubuntu. Sebaliknya, Anda bisa memikirkan rootsebagai seperti www-data, lp, nobody, dan rekening non-manusia lainnya. (Jalankan cat /etc/passwdatau getent passwduntuk melihat semuanya.)
Pengguna manusia masuk dengan akun pengguna mereka sendiri, dan kemudian jika beberapa tugas dilakukan dengan akun pengguna lain, mereka menyebabkan tugas itu dilakukan dengan identitas itu , tanpa benar-benar masuk sebagai pengguna itu.
Mungkin untuk mengkonfigurasi pengguna non-manusia lainnya www-data, jadi, seseorang dapat masuk sebagai mereka juga. Itu cukup langka, padahal di beberapa OS lain yang mirip Unix, biasanya masuk seperti root di terminal . Risiko menjalankan seluruh antarmuka grafis seperti root, dikombinasikan dengan berapa banyak program grafis yang tidak dirancang untuk berjalan rootdan mungkin tidak berfungsi dengan baik, berarti Anda tidak boleh mencoba untuk mendapatkan sesi desktop yangroot dimiliki .
Harap dicatat bahwa sementara penebangan sebagai rootdinonaktifkan secara default di Ubuntu, ada cara untuk mendapatkan rootshell tanpa otentikasi sebagai root, yang menghasilkan efek yang sama: yang paling umum adalah sudo -satau-i , recovery mode dan teknik yang mirip . (Jangan khawatir jika Anda tidak tahu apa itu.) Ini sebenarnya tidak masuk: dalam mode pemulihan, Anda menjadi rootsebelum login apa pun akan terjadi; dengan sudometode berbasis, Anda hanya menjalankan shell sebagai root.
Administrator
Di Ubuntu, administrator adalah pengguna yang dapat melakukan apa pun yang mereka inginkan root, ketika mereka memilih untuk melakukannya .

Pengaturan Sistem> Akun Pengguna. "Eliah Kagan" adalah seorang administrator, jadi dia bisa melakukan apa saja root, tetapi dia tidakroot .
Saya seorang administrator di sistem Ubuntu saya. Ketika saya menjalankan program, biasanya dijalankan sebagai ek("Eliah Kagan" adalah nama lengkap yang sesuai dengan eknama pengguna.)
Ketika saya menjalankan AbiWord atau LibreOffice, itu berjalan sebagai ek. Ketika saya menjalankan Firefox, Chromium, Empathy, atau Pidgin, ia berjalan sebagai ek. Program-program yang dijalankan untuk menyediakan antarmuka desktop dijalankan sebagai ek.
Namun, saya seorang administrator, jadi jika saya perlu melakukan tugas administratif, saya dapat melakukannya.
sudo
Di baris perintah, saya biasanya menggunakan sudountuk menjalankan perintah sebagai root:
sudo command...
Ini akan meminta saya untuk kata sandi saya . (Bukan rootkata sandi; roottidak punya.)
- Karena saya seorang administrator, saya dapat melakukan tindakan sebagai
root. Dalam konfigurasi default, saya harus memasukkan kata sandi saya untuk melakukan ini.
- Pengguna yang bukan administrator tidak dapat melakukan tindakan apa
rootpun, bahkan dengan memasukkan kata sandi mereka. sudoperintah akan gagal jika pengguna yang menjalankannya bukan administrator.
Karena administrator adalah pengguna biasa kecuali untuk kemampuan melakukan tindakan sebagai root, menjalankan perintah yang memerlukan roothak istimewa akan tetap gagal, kecuali ketika perintah dijalankan sebagairoot .

Cuplikan layar menggambarkan perlunya digunakan sudountuk melakukan tugas administratif. (Berdasarkan "Sandwich" oleh Randall Munroe .)
sudo, Secara Grafis
Program grafis dapat dijalankan rootmelalui antarmuka grafis untuksudo , seperti gksu/gksudo dan kdesudo. Misalnya, untuk menjalankan GParted yang rootsaya bisa jalankan gksudo gparted. Maka saya akan diminta secara grafis untuk kata sandi saya.

Karena saya diminta secara grafis, tidak harus ada terminal. Ini adalah salah satu cara alat administratif dijalankan root.
Polkit
Polkit (dulu dikenal sebagai PolicyKit) adalah cara lain bagi administrator untuk melakukan berbagai hal root. Program mengakses layanan yang melakukan tindakan. Terkadang, tindakan menjalankan seluruh program; terkadang aksinya lebih terbatas.
Saat ini, banyak utilitas administrasi sistem grafis diatur untuk menggunakan polkit secara default, bukan untuk digunakan sudo.
Salah satu contoh utilitas semacam itu adalah Pusat Perangkat Lunak. Ini sepenuhnya memanfaatkan polkit, yang mengharuskan pengguna untuk memasukkan kata sandi mereka hanya ketika mereka ingin melakukan sesuatu yang memerlukan roothak istimewa. (Ini dimungkinkan dengan sudootentikasi berbasis juga, tetapi lebih sulit dan lebih buruk untuk dicapai.)
Di Pusat Perangkat Lunak, saya dapat menemukan dan membaca tentang suatu aplikasi; maka saya diminta kata sandi ketika ingin menginstalnya.

Bagaimana Polkit Berbeda
Program grafis apa pun dapat dijalankan seperti halnya rootdengan gksudoantarmuka grafis lainnya sudo. (Program mungkin tidak bekerja dengan baik, tergantung pada apakah itu dirancang untuk digunakan atau tidak root. Tetapi perintah untuk memulai program akan dieksekusi sebagai root.)
Sementara polkit sekarang lebih umum daripada sudoantarmuka GUI sebagai cara aplikasi di Ubuntu melakukan tindakan seperti di rootbelakang layar, polki hanya akan menjalankan aplikasi grafis seolah- root olah ada file konfigurasi yang memungkinkan dan menunjukkan tindakan apa yang mungkin dilakukan .
Polkit, Non-Grafis
pkexec adalah perintah yang digunakan untuk menjalankan program dengan polkit.
Seperti sudo, pkexecdapat menjalankan perintah non-grafis. (Dan itu tidak memerlukan file konfigurasi yang mendefinisikan kapabilitas perintah - hanya menjalankan perintah sebagai root.)
pkexec command...
pkexecmeminta kata sandi secara grafis, bahkan jika dijalankan dari Terminal (ini adalah salah satu cara perilakunya lebih mirip gksudodaripada berjalan lurus sudo).
(Jika tidak ada GUI - misalnya, jika Anda masuk dari konsol virtual atau sesi SSH hanya teks , atau GUI tidak berfungsi dengan benar - maka pkexecakan menurunkan dengan anggun dan meminta kata sandi Anda pada baris perintah .)

Setelah otentikasi berhasil dilakukan, perintah berjalan di terminal.

Menjalankan Perintah sebagai Pengguna Lain Selain Itu root
rootistimewa karena bisa melakukan apa saja yang bisa dilakukan. Tapi itu sebuah akun seperti akun apapun, dan cara-cara menjalankan perintah sebagai rootdengan sudo(secara langsung atau dengan antarmuka grafis) atau polkit dapat dimodifikasi sedikit untuk menjalankan perintah sebagai pengguna lain:
sudo -u username command...
gksudo -u username command...
pkexec --user username command...
Apa? Anda cukup mengetik sudodulu? Bagaimana keamanannya ?!
Menjalankan perintah dengan sudosemacam seperti memohon infalliblity kepausan .
Ketika Anda menjalankan perintah dengansudo [memanggil infalibilitas kepausan] , Ubuntu [orang-orang Katolik] berusaha keras untuk memastikan Anda benar - benar Anda [benar-benar Paus].
Ya, saya tahu infalibilitas kepausan (bahkan ketika normatif) bersifat deklaratif; paralelnya tidak sempurna.
Mencoba melakukan sesuatu seperti rootdengan sudo(atau polkit) adalah masalah besar - Ubuntu tidak hanya akan membiarkan slide itu seperti semua waktu lain Anda menjalankan program.
Anda dimintai kata sandi. (Kemudian, yang telah Anda lakukan diingat untuk waktu yang singkat, sehingga Anda tidak harus terus-menerus memasukkan kata sandi saat Anda mengelola sistem Anda.)
Selain mengingatkan Anda untuk berhati-hati , perlindungan ini terhadap dua skenario:
- Seseorang menggunakan komputer Anda (atau perangkat seluler), mungkin dengan kedok memeriksa email mereka atau tujuan berbahaya serupa. Di sini, masih mungkin bagi mereka untuk melakukan kerusakan - misalnya, mereka dapat memodifikasi atau menghapus dokumen Anda. Namun, mereka tidak dapat mengelola sistem, karena mereka tidak dapat memasukkan kata sandi Anda.
- Program yang tidak seharusnya mengelola sistem tidak dapat melakukannya, kecuali jika Anda memasukkan kata sandi Anda. Misalnya, jika peramban web Anda dikompromikan oleh bug keamanan dan menjalankan kode jahat, ia masih tidak dapat melakukan tugas administratif. Itu tidak dapat membuat dan menghapus pengguna, memodifikasi program yang diinstal sebagai
root(yang mencakup apa pun yang diinstal oleh manajer paket, seperti LibreOffice), atau mengubah sistem pada level yang dalam.
Saya pernah mendengar tentang su. Apa itu? Bisakah saya menggunakannya?
sumengotentikasi sebagai pengguna lain, dan menjalankan perintah (atau memulai shell interaktif). Dimungkinkan untuk membatasi siapa yang diizinkan untuk menggunakan su, tetapi sumengotentikasi dengan kata sandi akun target , bukan kata sandi pengguna yang berjalan.
Misalnya, berjalan sebagai nama pengguna , sama seperti .su username -c 'command...'command...sudo -u username command...
Tetapi ketika Anda menjalankan perintah seperti usernamedengan sudo, Anda memasukkan kata sandi Anda . Ketika Anda menjalankan perintah seperti usernamedengan su, Anda memasukkan usernamekata sandi .
Karena sumelakukan otentikasi untuk pengguna target , suAnda hanya dapat menjalankan perintah sebagai pengguna yang akunnya diaktifkan .
The rootakun (seperti www-datadan nobody) dinonaktifkan secara default. Tidak ada kata sandi yang akan berfungsi untuk masuk sebagai root. Jadi, Anda tidak dapat menggunakan suuntuk menjalankan perintah sebagai root.
Anda dapat menggunakan suuntuk menjalankan perintah sebagai pengguna lain yang dapat masuk (yang biasanya mencakup semua akun pengguna pada sistem Anda yang mewakili manusia).
Saat masuk sebagai tamu, Anda tidak dapat menggunakan susama sekali.
Menggabungkan sudansudo
Seseorang yang bukan administrator bahkan dapat menggunakan suuntuk menjalankan sudosebagai administrator. (Ini tidak masalah, karena mereka memerlukan kata sandi administrator untuk menjalankan perintah sebagai administrator.) Artinya, pengguna terbatas dapat menggunakan suuntuk menjalankan sudountuk menjalankan perintah root. Ini bisa terlihat seperti:
su username -c 'sudo command...'
(Menjalankan program grafis dengan cara ini membutuhkan perhatian khusus .)
Bukankah sucara yang lebih aman untuk menjalankan perintah root?
Mungkin tidak.
Bagaimana jika pengguna seharusnya tidak diizinkan bertindak sebagai root?
Jadikan mereka pengguna terbatas, bukan administrator.
Bagaimana jika program berjalan sebagai mencoba administrator untuk sudoke root?
Kecuali Anda telah mengkonfigurasi ulang sudoagar berhasil tanpa kata sandi, itu akan gagal.
Tidak bisakah program yang seharusnya tidak dijalankan sebagai rootdukungan pada sudoperintah baru-baru ini , jadi tidak diperlukan kata sandi?
Ini sangat tidak mungkin berhasil. Saat ini, sebagian besar sistem operasi (termasuk Ubuntu) telah sudodikonfigurasi secara default sehingga stempel waktu hanya berlaku dalam konteks tertentu.
Misalnya, jika saya menjalankan sudo ...di satu tab Terminal dan berhasil mengotentikasi, sudodi tab lain (atau dijalankan oleh program GUI yang tidak terkait, atau yang saya jalankan dari konsol virtual atau sesi SSH) masih akan meminta kata sandi. Bahkan jika itu berjalan segera setelahnya.
Bukankah program yang berjalan sebagai pengguna X memiliki akses ke kata sandi pengguna X?
Tidak.
Jika program jahat dapat berjalan sebagai administrator, tidak bisakah "mendengarkan" apa yang sedang diketikkan ketika administrator mengautentikasi dengan sudoatau polkit?
Berpotensi, ya. Tapi kemudian itu bisa "mendengarkan" kata sandi yang diketikkan su.
Jika saya memberi tahu seseorang kata sandi saya—
Jangan beri tahu orang lain kata sandi Anda.
Bagaimana jika seseorang harus mengetahui kata sandi saya untuk melakukan sesuatu atas nama saya, tetapi saya tidak ingin mereka mengelola sistem?
Idealnya, mereka harus memiliki akun pengguna terpisah yang memungkinkan mereka melakukan apa yang perlu mereka lakukan. Misalnya, dapat berbagi file antar akun, yang memungkinkan banyak pengguna menulis kepada mereka, sambil tetap menolak akses ke pengguna lain.
Namun, dalam situasi di mana orang yang kurang dipercaya dapat diizinkan untuk berbagi akun Anda, itu harus menjadi akun pengguna terbatas. Anda dapat membuat akun terpisah untuk tujuan ini (yang masuk akal - jika akun untuk Anda dan orang lain yang ingin memiliki kemampuan berbeda, itu harus merupakan akun yang berbeda).
Jadi, apakah hal yang paling aman adalah melarang keduanya sudodan sudan membuat orang masuk sebagai root, secara manual?
Tidak, karena ada kerugian serius terkait membiarkan orang masuk rootsama sekali. Bilamana mungkin, jumlah tindakan sekecil mungkin harus dilakukan root. Bahkan sebagian besar tindakan yang berkaitan langsung dengan mengelola sistem (misalnya, melihat apa yang dikonfigurasikan pengguna, dan membaca log) biasanya tidak memerlukan roothak istimewa.
Juga, hanya sebagai berpotensi program berbahaya bisa menonton apa jenis seseorang ketika mereka menjalankan sudoatau su, atau membuat palsu sudo/ susandi yang cepat, berpotensi program jahat bisa membuat layar palsu login, juga.
Apa yang menjadikan pengguna administrator?
Keanggotaan grup.
Di Ubuntu 12.04 dan yang lebih baru , administrator adalah anggota grup yang dipanggil sudo.
Di Ubuntu 11.10 dan sebelumnya , administrator adalah anggota dari grup yang dipanggil admin.
Ketika sistem Ubuntu sebelum 12,04 ditingkatkan menjadi 12,04 atau lebih baru, admingrup disimpan untuk kompatibilitas mundur (dan terus memberikan kekuatan administratif kepada pengguna di dalamnya), tetapi sudogrup tersebut juga digunakan.
Akun Pengguna Terbatas
Bisakah saya menggunakan akun pengguna terbatas, bukan akun administrator?
Jika Anda suka, tentu saja. Buat akun pengguna terbatas di Pengaturan Sistem > Akun Pengguna , dan masuk sebagai pengguna itu.
Bisakah saya menjadikan akun administrator saya sebagai akun pengguna terbatas?
Ya, hapus saja dari sudodan admingrup (lihat di atas).
Tetapi Anda harus memastikan setidaknya ada satu akun administrator lain, sehingga Anda dapat mengelola sistem Anda. Jika tidak, maka Anda harus boot ke mode pemulihan atau CD langsung dan menjadikan beberapa pengguna administrator lagi . (Ini mirip dengan mengatur ulang kata sandi administrator yang hilang .)
Alat grafis untuk mengatur pengguna dan grup biasanya akan membuat Anda tidak membuat sistem tanpa administrator, atau setidaknya memperingatkan Anda. Alat baris perintah biasanya tidak akan (percaya bahwa Anda tahu apa yang Anda lakukan).