Anda seorang administrator, tetapi tidak root
. The root
pengguna 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-data
pengguna 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 root
tidak 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 root
digunakan untuk melakukan tugas administratif.
Bisakah saya masuk sebagai root
?
Anda dapat mengonfigurasi root
akun sehingga dapat masuk dengan kata sandi, tetapi ini tidak diaktifkan secara default di Ubuntu. Sebaliknya, Anda bisa memikirkan root
sebagai seperti www-data
, lp
, nobody
, dan rekening non-manusia lainnya. (Jalankan cat /etc/passwd
atau getent passwd
untuk 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 root
dan mungkin tidak berfungsi dengan baik, berarti Anda tidak boleh mencoba untuk mendapatkan sesi desktop yangroot
dimiliki .
Harap dicatat bahwa sementara penebangan sebagai root
dinonaktifkan secara default di Ubuntu, ada cara untuk mendapatkan root
shell tanpa otentikasi sebagai root
, yang menghasilkan efek yang sama: yang paling umum adalah sudo -s
atau-i
, recovery mode dan teknik yang mirip . (Jangan khawatir jika Anda tidak tahu apa itu.) Ini sebenarnya tidak masuk: dalam mode pemulihan, Anda menjadi root
sebelum login apa pun akan terjadi; dengan sudo
metode 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 ek
nama 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 sudo
untuk menjalankan perintah sebagai root
:
sudo command...
Ini akan meminta saya untuk kata sandi saya . (Bukan root
kata sandi; root
tidak 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
root
pun, bahkan dengan memasukkan kata sandi mereka. sudo
perintah akan gagal jika pengguna yang menjalankannya bukan administrator.
Karena administrator adalah pengguna biasa kecuali untuk kemampuan melakukan tindakan sebagai root
, menjalankan perintah yang memerlukan root
hak istimewa akan tetap gagal, kecuali ketika perintah dijalankan sebagairoot
.
Cuplikan layar menggambarkan perlunya digunakan sudo
untuk melakukan tugas administratif. (Berdasarkan "Sandwich" oleh Randall Munroe .)
sudo, Secara Grafis
Program grafis dapat dijalankan root
melalui antarmuka grafis untuksudo
, seperti gksu
/gksudo
dan kdesudo
. Misalnya, untuk menjalankan GParted yang root
saya 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 root
hak istimewa. (Ini dimungkinkan dengan sudo
otentikasi 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 root
dengan gksudo
antarmuka 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 sudo
antarmuka GUI sebagai cara aplikasi di Ubuntu melakukan tindakan seperti di root
belakang 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
, pkexec
dapat menjalankan perintah non-grafis. (Dan itu tidak memerlukan file konfigurasi yang mendefinisikan kapabilitas perintah - hanya menjalankan perintah sebagai root
.)
pkexec command...
pkexec
meminta kata sandi secara grafis, bahkan jika dijalankan dari Terminal (ini adalah salah satu cara perilakunya lebih mirip gksudo
daripada 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 pkexec
akan 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
root
istimewa karena bisa melakukan apa saja yang bisa dilakukan. Tapi itu sebuah akun seperti akun apapun, dan cara-cara menjalankan perintah sebagai root
dengan 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 sudo
dulu? Bagaimana keamanannya ?!
Menjalankan perintah dengan sudo
semacam 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 root
dengan 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?
su
mengotentikasi sebagai pengguna lain, dan menjalankan perintah (atau memulai shell interaktif). Dimungkinkan untuk membatasi siapa yang diizinkan untuk menggunakan su
, tetapi su
mengotentikasi 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 username
dengan sudo
, Anda memasukkan kata sandi Anda . Ketika Anda menjalankan perintah seperti username
dengan su
, Anda memasukkan username
kata sandi .
Karena su
melakukan otentikasi untuk pengguna target , su
Anda hanya dapat menjalankan perintah sebagai pengguna yang akunnya diaktifkan .
The root
akun (seperti www-data
dan nobody
) dinonaktifkan secara default. Tidak ada kata sandi yang akan berfungsi untuk masuk sebagai root
. Jadi, Anda tidak dapat menggunakan su
untuk menjalankan perintah sebagai root
.
Anda dapat menggunakan su
untuk 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 su
sama sekali.
Menggabungkan su
dansudo
Seseorang yang bukan administrator bahkan dapat menggunakan su
untuk menjalankan sudo
sebagai administrator. (Ini tidak masalah, karena mereka memerlukan kata sandi administrator untuk menjalankan perintah sebagai administrator.) Artinya, pengguna terbatas dapat menggunakan su
untuk menjalankan sudo
untuk menjalankan perintah root
. Ini bisa terlihat seperti:
su username -c 'sudo command...'
(Menjalankan program grafis dengan cara ini membutuhkan perhatian khusus .)
Bukankah su
cara 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 sudo
ke root
?
Kecuali Anda telah mengkonfigurasi ulang sudo
agar berhasil tanpa kata sandi, itu akan gagal.
Tidak bisakah program yang seharusnya tidak dijalankan sebagai root
dukungan pada sudo
perintah baru-baru ini , jadi tidak diperlukan kata sandi?
Ini sangat tidak mungkin berhasil. Saat ini, sebagian besar sistem operasi (termasuk Ubuntu) telah sudo
dikonfigurasi secara default sehingga stempel waktu hanya berlaku dalam konteks tertentu.
Misalnya, jika saya menjalankan sudo ...
di satu tab Terminal dan berhasil mengotentikasi, sudo
di 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 sudo
atau 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 sudo
dan su
dan membuat orang masuk sebagai root
, secara manual?
Tidak, karena ada kerugian serius terkait membiarkan orang masuk root
sama 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 root
hak istimewa.
Juga, hanya sebagai berpotensi program berbahaya bisa menonton apa jenis seseorang ketika mereka menjalankan sudo
atau su
, atau membuat palsu sudo
/ su
sandi 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, admin
grup disimpan untuk kompatibilitas mundur (dan terus memberikan kekuatan administratif kepada pengguna di dalamnya), tetapi sudo
grup 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 sudo
dan admin
grup (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).