Mengapa tidak ada opsi untuk masuk sebagai root?

39

Mengapa Ubuntu tidak mengizinkan pengguna GUI untuk login sebagai root pada saat sistem dinyalakan seperti administrator di Windows?

Mengapa mereka membatasi kami untuk masuk hanya melalui terminal?

Renjith G
sumber
4
Harap perhatikan juga 'gksu' yang memungkinkan Anda menjalankan aplikasi grafis sebagai root. Yaitu "gksu nautlius"
Jeremy
1
Beberapa distro memungkinkan Anda untuk login ke X sebagai root. CentOS6.2 adalah salah satunya.
Djangofan

Jawaban:

42

Karena itu tidak disarankan untuk melakukannya kecuali Anda tahu persis apa yang Anda lakukan. Root adalah superuser, artinya dapat melakukan apa saja dan segalanya - itu hanya dimaksudkan untuk tugas administratif. Tugas harian dapat menanggung risiko keamanan yang AKAN dieksploitasi jika SEMUA ORANG (atau sebagian besar pengguna) menggunakan root. Pikirkan Windows - 99% masalah malware dan virus berasal dari orang yang menggunakan akun admin untuk tugas sehari-hari.

Mari kita lihat sebuah contoh.

Bagaimana jika seseorang membobol sistem Anda dan menyuruhnya menghapus disk Anda? Jika Anda menjalankan sebagai pengguna biasa, satu-satunya file yang Anda (harus) dapat hapus adalah milik Anda, dan bukan orang lain. Jika, katakanlah, Anda memiliki orang lain yang menggunakan komputer, file mereka tidak akan disentuh sama sekali, tidak peduli seberapa keras Anda mencoba. Itu berarti Anda tidak akan dapat mengubah file sistem apa pun , dan karena itu sistem Anda akan tetap kokoh dan tidak terpengaruh / tidak terinfeksi.

Namun, jika Anda menjalankannya sebagai root, Anda dapat menghapus seluruh hard drive, mungkin merusak perangkat keras itu sendiri, dan secara umum membuat sistem tidak dapat digunakan. Koreksi: siapa pun yang dapat menjalankan satu perintah sebagai root di komputer Anda (beberapa situs web berbahaya atau lampiran email) dapat melakukannya.

Lihatlah http://everyjoe.com/technology/explain-why-not-log-on-as-root/ , adalah artikel yang bagus yang mungkin menjelaskannya lebih baik daripada saya.

EDIT: ini satu lagi http://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html

EDIT2: Anda selalu dapat menggunakan sudo commandatau gksu commandmenjalankan commandsebagai superuser, keduanya berfungsi dengan utilitas grafis dan perintah-baris. sudobiasanya digunakan untuk CLI, dan gksumerupakan kata sandi grafis yang melakukan hal yang sama.

Sampai batas tertentu, mereka membiarkan Anda menjadi rootsementara - jauh, jauh lebih baik daripada berjalan terus-menerus sebagai root dan mempertaruhkan ketidakstabilan.

Evgeny
sumber
1
Tapi mengapa Fedora mengizinkan opsi ini saat start up?
Renjith G
5
Ubuntu dirancang untuk menjadi user-friendly, dan saya akan curiga bahwa dengan melarang root, mereka menghilangkan godaan dari pengguna normal (baca: Linux pemula) yang berjalan sebagai root.
evgeny
Saya tidak mengerti Anda.
Renjith G
2
Komentar saya sedikit salah. Katakanlah ini sebagai gantinya: dengan melarang login root grafis, itu mencegah orang untuk menjalankan sebagai root. KECUALI MEREKA TAHU APA YANG MEREKA LAKUKAN. Artinya, menurut saya, itu hanya boleh diizinkan untuk pengguna berpengalaman yang mengetahui dan memahami semua risiko.
evgeny
1
Ini dimaksudkan untuk menjadi sedikit agresif, hanya untuk menyentak para pembaca kembali ke kenyataan dan benar - benar menunjukkan maksudnya.
evgeny
11

Di Ubuntu standar, rootlogin tidak diperbolehkan, baik dari manajer login GDM (grafis), maupun dari konsol teks (yaitu, yang Anda dapatkan jika menekan Ctrl+ Alt+ F1).

Untuk melakukan rootoperasi (yaitu, administrator), Anda harus menggunakan sudoperintah di terminal, atau GUI yang sepadan dengannya: ini akan meminta kata sandi Anda dan kemudian melakukan operasi istimewa yang diminta (dan hanya yang itu).

Alasan untuk perilaku ini adalah, seperti yang telah ditunjukkan oleh orang lain, bahwa melakukan rootoperasi secara inheren berisiko dan jumlah operasi yang benar-benar memerlukan roothak istimewa relatif kecil: dengan menggunakan sudopendekatan ini Anda menjalankan sebagian besar waktu dengan akun yang tidak terjangkau (yaitu, tidak berbahaya ke sistem dan pengguna lain) dan dapatkan rootkekuatan saat itu benar-benar dibutuhkan.

Contoh dapat membantu memperjelas. Asumsikan Anda ingin menginstal layanan baru (daemon) pada mesin Anda; ini relatif baru dan Anda perlu membacanya dan cara mengkonfigurasinya untuk kebutuhan Anda. Anda akan sering menjelajahi web untuk menemukan informasi, contoh konfigurasi, dll., Mungkin minta IRC chat untuk meminta info lebih lanjut - semua ini tidak memerlukan rootkekuatan! Pada akhirnya, Anda hanya perlu akses istimewa untuk dua operasi:

  1. instal program baru (yaitu, sudo apt-get install ...), dan
  2. edit konfigurasi default

Prinsip yang diterima secara umum dalam keamanan komputer selalu menggunakan tingkat hak istimewa yang paling tidak mungkin untuk melakukan operasi. - ini mengurangi risiko sesuatu yang buruk terjadi karena bug pada perangkat lunak atau kesalahan dari operator.

Pengaturan default Ubuntu berjalan ke arah ini; jika Anda menggunakan rootlogin, sebagai gantinya, Anda akan berakhir menjelajah internet, melakukan IRC (dan mungkin semua hal lain yang dilakukan secara bersamaan) dari rootakun, sehingga tidak perlu mengekspos sistem terhadap ancaman.

Pembaruan: Sebagai contoh kompiler Anda, saya akan melanjutkan dengan cara ini:

  1. Login ke node melalui SSH sebagai pengguna reguler Anda , dan dari node Ubuntu atau GNU / Linux lain di mana Anda memiliki tampilan X11 grafis yang sedang berjalan. Pastikan untuk mengaktifkan penerusan X11 melalui SSH:

    ssh -X [email protected]
    
  2. Pada prompt shell / SSH, jalankan perintah:

    sudo /path/to/the/compiler/install/program
    

    Ini akan menjalankan penginstal kompiler dengan roothak istimewa, dan mengakses (melalui penerusan SSH) tampilan grafis di depan Anda.

Riccardo Murri
sumber
Baik. Misalkan, saya menggunakan satu mesin linux (memiliki 10 pengguna terhubung melalui dempul). Saya ingin menginstal satu perangkat lunak (misalnya: satu kompiler, juga perlu mengatur variabel lingkungan untuk yang sama) sebagai root yang tersedia untuk semua pengguna. Tetapi installer hanya bekerja dengan mode GUI dan tidak ada installer baris perintah dan itu akan berjalan hanya dengan login root. Bagaimana saya bisa mengatur instalasi? Saya telah bertemu situasi ini ketika menginstal arm-linux-gcc di ubuntu saya tetapi saya telah berhasil menginstal yang sama di mesin fedora saya (versi RedHat shrike)
Renjith G
@Renjit G: yah, ini pertanyaan yang bagus, kenapa kamu tidak bertanya saja?
Riccardo Murri
1
@Renjit G: Saya bermaksud menyarankan Anda untuk mengajukan pertanyaan baru. Mengajukan banyak pertanyaan spesifik lebih baik daripada mengajukan satu pertanyaan dengan banyak sisi, karena memungkinkan jawaban yang terperinci dan langsung. Dengan mengedit pertanyaan saat ini, balasan yang Anda miliki sepertinya mereka hanya menjawab setengah dari pertanyaan Anda ...
Riccardo Murri
Terima kasih Murri. Saya pasti akan mengikuti seperti itu hanya dari posting saya berikutnya dan seterusnya.
Renjith G
1
Diberikan kompiler seperti itu, saya pikir kebanyakan dari kita akan penasaran kompiler yang mana. Untuk perangkat lunak apa pun yang didistribusikan melalui sumber APT atau file .deb yang berdiri sendiri, instalasi melalui baris perintah menggunakan "sudo" sudah cukup (ya, bahkan untuk semua pengguna). Mungkin juga untuk menginstal file seperti itu dari GUI untuk semua pengguna, tanpa menjadi root. Prompt kata sandi GUI yang Anda dapatkan setara dengan "sudo".
merugikan
8

Alasan di balik penggunaan sudo di Ubuntu dapat ditemukan di sini . Jika Anda memerlukan cara cepat untuk "melakukan root", saya menggunakan sudo -satau sudo -i.

Jorge Castro
sumber
9
Dan untuk memperjelas, saya percaya bahwa sudo -s menciptakan sesi root sebagai pengguna, sedangkan sudo -i membuat sesi root sebagai pengguna root. Cara mudah untuk membedakannya adalah dengan mengeluarkan perintah, lalu lakukan "echo $ HOME" untuk melihat lingkungan apa yang sedang digunakan. Atau "cd ~" lalu "pwd" juga berfungsi.
Scaine
6

Selain dari pegunungan peringatan dengan menggunakan root, Anda dapat mengaktifkan login root dengan masuk dan melakukan hal berikut dari terminal:

sudo passwd

Ini pertama kali akan meminta Anda untuk kata sandi Anda kemudian akan meminta Anda untuk mengubah kata sandi UNIX. Kata sandi yang Anda masukkan adalah untuk rootakun.

The Ubuntu Wiki memiliki banyak artikel pada kedalaman akar dan sudo dalam Ubuntu - peringatan dan perangkap.

Marco Ceppi
sumber
5

Ada dua pertanyaan di sini. Pertama, mengapa login root dinonaktifkan secara default di Ubuntu? Itu telah ditanggapi oleh beberapa posting di sini.

Pertanyaan kedua adalah, mengapa login root grafis sangat diremehkan?

Semua kerugian dari login root nongraphical berlaku untuk login root grafis juga. Tetapi ketika Anda login secara grafis, Anda menjalankan lebih banyak program, beroperasi dengan cara yang jauh lebih kompleks, daripada ketika Anda masuk secara nongrafis. Seluruh antarmuka pengguna grafis dan semua program grafis yang diperlukan untuk menggunakan GUI secara efektif, akan berjalan sebagai root. Kerentanan keamanan kecil di salah satu dari mereka akan memungkinkan seseorang untuk mengambil kendali penuh atas sistem Anda.

Masuk sebagai root sama sekali tidak dianjurkan di Ubuntu, tetapi tidak ada konsensus dalam komunitas keamanan bahwa itu secara universal merupakan praktik buruk. Login root grafis, bagaimanapun, hanyalah praktik yang buruk, dan hampir semua sistem operasi telah menghapusnya atau sangat merekomendasikannya.

Pada tingkat yang lebih rendah, memiliki pengguna non-root (terutama yang memiliki kemampuan untuk melakukan operasi sebagai root dengan sudo atau PolicyKit) dalam login grafis menimbulkan risiko. Tetapi mereka jauh lebih terkontrol daripada ketika segala sesuatu di lingkungan grafis harus benar-benar berjalan sebagai root dengan kemampuan tidak terbatas. Namun, untuk situasi di mana keamanan adalah yang terpenting, biasanya disarankan untuk menghapus semua antarmuka grafis, itulah sebabnya Ubuntu Server tidak menyertakan GUI secara default dan secara resmi merekomendasikan untuk tidak menginstalnya (meskipun didukung untuk melakukannya) .

Di dunia Windows, Anda sekarang dapat menginstal Windows Server dengan cara yang pada dasarnya menghilangkan antarmuka pengguna grafis (secara teknis, beberapa elemen tetap ada, tetapi sangat terurai dan Anda tidak dapat menjalankan program grafis sewenang-wenang). Ini didasarkan pada alasan yang sama.

Bahkan jika Anda memutuskan untuk mengaktifkan login root, tolong jangan login secara grafis sebagai root. Mengaktifkan login root dapat menempatkan Anda pada risiko keamanan yang sedikit lebih tinggi; menjalankan seluruh lingkungan grafis sebagai root menempatkan Anda pada risiko yang sangat tinggi.

Selain itu, dengan pengecualian alat administrasi grafis yang dirancang untuk dijalankan sebagai root dengan gksu / gksudo / kdesudo, sebagian besar program grafis tidak dimaksudkan untuk dijalankan sebagai root. Karena mereka tidak diuji secara ekstensif dalam mode ini, mereka mungkin gagal atau berperilaku tidak menentu (yang akan sangat buruk, karena mereka berjalan sebagai root ).

Akhirnya, bahkan beberapa alat administrasi grafis, sepertiusers-admin , akan gagal jika dijalankan sebagai root, karena mereka diharapkan dijalankan oleh pengguna normal dan untuk melakukan tindakan sebagai root (tanpa pernah benar-benar berjalan sebagai root) menggunakan PolicyKit.

Eliah Kagan
sumber
4

Buka Terminal ( Ctrl+ Alt+ Tatau Beranda beranda> Aplikasi Lainnya> Terpasang (Buka)> Terminal).

UNTUK MENGAKTIFKAN AKUN ROOT

Dalam tipe terminal atau tempel sudo passwd root. Masukkan kata sandi masuk normal Anda (jika diminta), maka Anda akan diminta memasukkan rootkata sandi baru dan mengonfirmasi.

UNTUK MENAMBAH PROMOSI LOGIN BARU YANG MEMUNGKINKAN ANDA UNTUK MEMASUKI ROOT DAN SANDI

Dalam tipe terminal atau tempel. gksudo gedit /etc/lightdm/lightdm.conf. Ini membuka jendela editor teks grafis di mana Anda dapat mengedit file konfigurasi untuk layar login.

Tambahkan baris greeter-show-manual-login=trueke bagian bawah file.

File sekarang harus dibaca sebagai berikut:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true

Simpan lightdm.conffile dan keluar dari gedit.

Reboot Ubuntu 12.04 dan Anda akan melihat jendela "Login" baru (menggantikan jendela "Lainnya" sebelumnya) yang memungkinkan input nama pengguna dan kata sandi. Masukkan rootnama pengguna dan masukkan kata sandi yang Anda tetapkan untuk akun root.

Saya harap ini membantu orang lain yang membutuhkan / menginginkan rootakses.

Pete
sumber
2

untuk ubuntu 12.04 LTS Anda dapat melakukan ini menggunakan hak akses root:

echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf

Kemudian Anda diminta untuk mengetik nama pengguna dan kata sandi untuk login secara grafis. Saya berasumsi Anda telah menetapkan kata sandi untuk root :)

Saya tahu ada banyak alasan mengapa Anda tidak harus login secara langsung sebagai root, namun, ada beberapa kasus langka yang keluar (misalnya dalam kotak tes yang berjalan di vmware) ketika Anda benar-benar menghargai kenyamanan menjadi root.

Allan Ruin
sumber
1

Karena pengguna root dan Administrator (di Windows) adalah setara dengan Dewa ke komputer. Pengguna itu dapat menyesuaikan apa saja dari izin file hingga menghapus seluruh sistem file. Sangat umum bagi pengguna rumahan rata-rata untuk menjalankan sebagai Administrator (baik dengan nama itu atau nama lain yang diatur saat boot pertama). Karena program apa pun yang dijalankan karena pengguna itu luas sistem, itu menjadi berbahaya.

Kurangnya kontrol atas hak administratif memungkinkan untuk virus / malware atau bahkan masalah yang merusak diri sendiri. Karena inilah banyak distro, termasuk Ubuntu, membatasi transisi ke daya tinggi dengan langkah ekstra (langkah yang agak kognitif yang membantu menegaskan bahwa "setiap perubahan yang saya buat di sini adalah perubahan yang lebih luas dalam cakupan").

Casey Keller
sumber
heh heh. ... "setiap perubahan yang saya buat di sini lebih besar dalam cakupan".
ggl
1

Meskipun Anda tidak dapat masuk secara langsung sebagai root (karena alasan yang sudah dijelaskan orang lain dengan baik), Anda dapat menjalankan aplikasi GUI sebagai root. Sebagai contoh, System → Administration → Synaptic Package Manager adalah aplikasi grafis yang berjalan sebagai root.

Untuk menjalankan aplikasi sebagai root (baik aplikasi teks atau aplikasi GUI), cukup gunakan salah satu dari perintah ini:

sudo name-of-the-application
gksu name-of-the-application

Mereka hampir identik. Perbedaan utama adalah bahwa yang pertama meminta kata sandi Anda di terminal, yang kedua menggunakan jendela dialog grafis.

Andrea Corbellini
sumber
1
Perbedaan antara sudodan gksulebih penting daripada tempat Anda memasukkan kata sandi. gksulebih disukai untuk aplikasi GUI dan sudountuk baris perintah lihat di sini dan di sini
Warren Hill
1

Root benar-benar tidak disarankan untuk penggunaan normal, tetapi kadang-kadang Anda memiliki daftar panjang perintah terminal yang membutuhkan hak akses root dan lebih mudah untuk login sebagai root. Saya menggunakan sudo xtermatau gksu xtermuntuk membuka terminal root, saya pikir ini sedikit lebih mudah untuk membedakan mana istilah jendela memiliki hak root ketika Anda memiliki "root @" term prompt

Barry K
sumber
0

Catatan tambahan: Ubuntu tidak mengizinkan pengguna GUI untuk login sebagai root karena Ubuntu mencegah Anda untuk secara tidak sengaja menghapus atau menghapus file penting dengan aplikasi GUI (seperti nautilus).

Dengan hanya antarmuka pengguna CLI, dapat mengurangi risiko kesalahan kami. Tetapi sebelumnya kita tidak dapat login dengan root bahkan dalam mode CLI karena Ubuntu membuat kata sandi acak untuk root. Tugas administrasi root hanya dapat dilakukan dengan menggunakan kata sandi pengguna dengan perintah sudo atau gksu.

Ini berdasarkan aturan Debian.

squallbayu
sumber
apa perintah gksu artinya?
Renjith G
1
man gksu: gksu - GTK + frontend untuk su and sudo
squallbayu
1
Maaf. Lagi pula, tidak cukup jelas bagi saya
Renjith G
Maksud saya 'gksu' berarti frontend GTK + untuk su dan sudo.
squallbayu
1
ya kau benar. coba 'gksu nautilus' di terminal. Nautilus dengan hak akses root akan muncul.
squallbayu
0

Mengingat bahwa tidak ada alasan yang baik untuk login sebagai root , saya kira perbedaan antara RH (izinkan root login) dan ubuntu (melakukan semuanya menggunakan sudo / gksu) adalah masalah preferensi.

Sedangkan untuk bagian lain dari pertanyaan Anda, Anda harus dapat menjalankan instalasi grafis Anda dengan masuk sebagai pengguna biasa, menekan ALT-F2dan memasukkan gksu. Dalam dialog yang dihasilkan cukup masukkan perintah yang meluncurkan installer Anda.

agnul
sumber
0

Root tidak disarankan untuk tugas sehari-hari. Karena ia memberikan Anda superuser, itu dapat disalahgunakan. Oleh karena itu tidak ada opsi untuk root saat login.

Ashu
sumber
0

Anda harus selalu masuk sebagai diri sendiri dan kemudian sudo untuk melakukan tindakan sebagai root. Ubuntu diatur untuk memungkinkan Anda mengakses semua yang dibutuhkan secara default. Perubahan kecil akan mengurus sisanya (seperti menambahkan Anda yang digunakan ke grup lain). Ini dianggap praktik buruk untuk masuk sebagai root. Praktik terbaik industri adalah pengaturan default di sini.

Seseorang yang bisa masuk sebagai root bisa menjadi hal yang sangat buruk dari sudut pandang keamanan.

Hai, Gary
sumber