Apakah boleh menggunakan pengguna root sebagai pengguna normal?

94

Saya telah mengaktifkan pengguna root di Mac saya sehingga saya bisa masuk ke dalamnya dan menjalankan Finder dll. Menjadi orang yang malas saya, baru saja mentransfer semuanya dari direktori home saya ke /var/root. Saya tidak terlalu yakin melakukan ini, jadi saya dapat mengembalikan semuanya. Apakah secara teknis 'OK' untuk menggunakan ini seperti pengguna normal? (Saya satu-satunya yang dapat mengakses komputer saya.)

智障 的 人
sumber
6
Pertanyaan bagus dengan 'el Capitan' yang tidak di-root.
CousinCocaine
4
Apa yang dimaksud secara khusus (akses komputer saya). Anda kemungkinan terhubung ke Internet. Anda tidak menentukan perangkat lunak apa yang Anda berikan akses ke komputer. Seperti apa bentuk 'OK' bagi Anda? Pujian untuk mendapatkan jawaban umum yang bagus. Mungkin lebih baik mengajukan pertanyaan yang lebih rinci (jika ada) sebagai pertanyaan lanjutan.
bmike
6
Anda dapat menggunakan akun root sebagai pengguna normal asalkan Anda tahu jawaban untuk pertanyaan "Apakah 'OK' untuk menggunakan pengguna root sebagai pengguna normal?". Begitu Anda tahu jawabannya, Anda tidak akan tahu. ;-)
Dakshinamurthy Karra
Anda mungkin ingin menambahkan perbedaan antara root, admin, dan pengguna normal. Saya percaya admin adalah default.
Steve Moser
6
"Saya satu-satunya yang dapat mengakses komputer saya" <- Lol
Tim

Jawaban:

352

Menggunakan komputer Anda yang login sebagai root sepanjang waktu seperti selalu membawa semua kunci Anda, paspor Anda, uang tunai $ 5.000, selembar kertas dengan semua kata sandi yang tertulis di dalamnya dan satu-satunya foto yang Anda miliki tentang Flopsy, kelinci yang menggemaskan yang memiliki kematian menghancurkan hatimu yang berumur tujuh tahun. Oh, dan gergaji mesin.

Artinya, itu sangat mudah dari waktu ke waktu, karena itu berarti Anda dapat melakukan apa pun yang Anda inginkan, kapan pun Anda inginkan, tanpa perlu kembali ke rumah untuk mendapatkan barang-barang atau berbicara dengan manajer bank Anda. Tetapi itu juga menempatkan Anda pada risiko besar kehilangan barang, setelah dicuri (jangan berpikir bahwa gergaji mesin akan membantu Anda: Anda akan berada jauh sebelum Anda melihat dompet Anda hilang), melakukan hal-hal yang benar-benar Anda sesali kemudian (membeli secara impulsif) tiket pesawat ke Vegas sambil mabuk), mengambil jalan pintas yang berbahaya (gergaji melalui pagar kandang singa karena itu cara tercepat menuju panda) dan bereaksi berlebihan (gergaji mobil tetangga Anda karena anjingnya menggonggong terlalu banyak). Dan, ketika Anda memikirkannya, sebagian besar, Anda hanya pergi ke kantor, berbelanja bahan makanan, bergaul dengan teman-teman Anda. Kamu tidak Aku tidak butuh semua itu bersamamu setiap saat hanya untuk kenyamanan, apa? Sebulan sekali? Sekali seminggu?

Jadi, tidak, tidak apa-apa menggunakan akun root sepanjang waktu. Ini memberi Anda sejumlah kecil kenyamanan tetapi menempatkan Anda dalam banyak bahaya. Ada bahaya kesalahan bodoh memiliki hasil bencana ("Hei, mengapa rm -rf *butuh waktu lama untuk berjalan? **** Aku masuk /!"). Ada bahaya menyesuaikan diri dengan gagasan bahwa semua file sama dan Anda bisa mengacaukan apa pun yang Anda inginkan, di mana saja di pohon direktori. Ada bahaya bahwa setiap peretasan ke akun Anda segera peretasan ke seluruh sistem, jadi sekarang setiap bagian dari perangkat lunak di komputer Anda kritis terhadap keamanan. Dan bahkan jika Anda berpikir Anda tidak peduli tentang mesin Anda diretas (setelah semua, foto Flopsy adalah kertas nyata yang mengkilap, bukan JPEG sesaat), saya Peduli dengan mesin Anda yang diretas karena itu ada di botnet yang memasang serangan DDOS terhadap layanan internet apa pun yang tidak dapat saya akses hari ini.

Root adalah kostum spiderman Anda. Ini memberi Anda kekuatan besar tetapi membutuhkan tanggung jawab besar. Itu ada di lemari kapan pun Anda membutuhkannya, jadi Anda tidak harus memakainya setiap saat.

David Richerby
sumber
54
Tidak hanya ini karya yang menghibur dan ditulis dengan baik, itu juga berdering dari kebenaran dan layak menerima jawaban yang diterima
wrossmck
17
Saya terus kembali ke ini. Ini adalah saran asli dengan jumlah humor terbesar yang dapat Anda masukkan ke dalam sesuatu dan tetap serius.
智障 的 人
19
@ 9000 Itu tidak terjadi sejak setidaknya XP.
David Richerby
28
Apakah kematian Flopsy dan gergaji mesin terkait?
Sirex
29
"Root adalah kostum spiderman Anda". Aku sekarat disini.
GeminiDomino
23

Anda bisa, tetapi itu adalah risiko keamanan dan stabilitas utama. Melakukannya memungkinkan aplikasi apa pun akses penuh ke komputer Anda. Anda tidak bisa tahu apa yang mereka lakukan dengan akses itu. Itu tidak perlu, dan benar-benar tidak aman.

Untuk informasi latar belakang lebih banyak tentang ini, lihat

William T Froggard
sumber
Saya telah menghapus komentar karena mereka tidak benar-benar menambahkan jawaban, bisakah Anda melanjutkan diskusi dalam obrolan?
nohillside
Terima kasih atas hasil editnya. Semoga ini memperbaiki beberapa kebingungan mengenai posting saya.
William T Froggard
17

Jujur, saya setuju bahwa ada banyak risiko yang terkait dengan penggunaan rootpengguna sebagai default. Tetapi saya akan membahasnya sedikit dan mengkritik beberapa argumen

  • Membela aplikasi : Praktis sistem izin * nix tidak cukup kuat (sejauh ini) untuk memungkinkan menjalankan program sewenang-wenang. Program jahat di * nix dapat melakukan cukup banyak hal jahat (seperti mencuri kredensial bank Anda) tanpa izin root. Akan lebih sulit untuk non- rootaplikasi daripada rootaplikasi (misal daripada langsung menginstal sertifikat root dan menyadap koneksi ke bank Anda harus bermain-main dengan browser sebagai gantinya, tapi hei, itu sebenarnya cukup bisa dilakukan dan Anda kemungkinan harus melakukan itu untuk memastikan pengguna tidak melihat apa-apa)
  • Membela kesalahan pengguna (seperti menjalankan perintah yang salah dan menghapus semua file sistem) : Benar sekali, tetapi meskipun bukan rootpengguna akan menyimpan sistem, semua file penting biasanya sudah hilang (karena file yang dimiliki pengguna jauh lebih banyak cenderung unik).
  • Membela terhadap bug yang dapat dieksploitasi dalam aplikasi yang Anda jalankan: Sekarang ini lebih seperti itu. Misalnya ketika Anda menjalankan server web di mana banyak aplikasi terbuka ke luar dan karenanya bug yang dapat dieksploitasi akan mudah dijangkau. Hal yang sama masih berlaku tentu saja bahkan jika Anda duduk di belakang router dan firewall, meskipun tingkat bahayanya jauh kurang signifikan. Namun sekali lagi pertanyaannya menjadi seberapa besar sistem perizinan akan bertahan secara realistis pada sistem pribadi. Tanpa rootizin, semua file pribadi masih dapat diakses dan menyadap data jaringan juga dimungkinkan ... dua hal paling penting yang Anda inginkan sebagai penyerang sistem pribadi.
    • (Sekarang, di atas sistem perizinan file * nix standar Apple juga telah memperkenalkan sistem aplikasi sandboxing. Sejauh yang saya tahu bahwa seseorang masih berfungsi penuh bahkan ketika login sebagai root. Jika bagaimanapun tidak maka itu akan menjadi total deal breaker.)

Either way, semua menganggap saya tidak berpikir itu ide yang mengerikan seperti beberapa orang lain klaim. Pikiran Anda, saya tidak mengatakan itu ide yang baik juga, tapi saya pikir orang terlalu melebih-lebihkan kegunaan model izin sistem file * nix dalam melindungi Anda. Ya, ini sangat berguna untuk hal-hal tertentu (misalnya sistem multi-pengguna, server multi-aplikasi yang kompleks, menjaga sistem tetap berjalan apa pun yang terjadi (berjalan, tetapi tidak dapat digunakan), mengunci file-file penting (meskipun Anda lebih baik mengenkripsi file-file tersebut) ...), dll.), tetapi bukan perlindungan magis yang mencegah hal-hal buruk terjadi.

Dalam komentar saya muncul dengan analogi yang tampaknya cukup memadai dalam menggambarkan situasi. Dalam bahasa Belanda kami memiliki kata untuk lemari kecil di mana Anda dapat menemukan semua meter dan beralih untuk pasokan air utama, dll. Berjalan sebagai rootakun pengguna seperti mengambil kunci dari lemari kecil itu. Fakta Ironis: Kebanyakan orang tidak memiliki kunci di tempat pertama. Sekarang, sama seperti denganrootpengguna yang tidak mengatakan bahwa itu tidak berguna untuk menguncinya dalam kasus-kasus tertentu, misalnya di kantor atau gedung semi-publik lainnya sering dikunci, tetapi di rumah biasa jauh lebih penting untuk memiliki kunci yang kuat di pintu depan ( tidak menginstal hal-hal acak, firewall, dll.) dan meletakkan semua barang penting Anda di brankas (membuat cadangan, mengenkripsi barang, dll.). Akankah kunci ekstra di lemari itu sakit? Tidak, jadi mungkin ide yang bagus untuk membuatnya berjaga-jaga, tetapi kemungkinan besar itu akan sia-sia.

Berjalan sebagai rootpengguna tidak seperti membawa semua kunci rumah Anda dan membawa semua barang di dalam brankas bersama Anda sepanjang waktu seperti yang diklaim oleh David Richerby. Paspor (identitas) Anda sama sekali tidak dilindungi oleh sistem file * nix, uang Anda (rekening bank) sama sekali tidak dilindungi oleh sistem file * nix, kata sandi penting Anda kemungkinan tidak dilindungi oleh sistem file * nix (jika Anda menggunakan Safari namun mereka mungkin benar-benar dilindungi sebagian oleh model izin sistem file * nix, tetapi tanparoot Anda masih dapat menambahkan ekstensi yang tidak terlihat ke Safari dan selanjutnya hanya mencegat kata sandi saat Anda menggunakannya), foto Anda pasti tidak dilindungi oleh sistem file * nix dan jika Anda menggunakan terminal Anda sudah membawa gergaji mesin main dengan Anda (per poin 2 di atas).

David Mulder
sumber
2
Jika Anda tidak memilih jawaban, harap tunjukkan apa yang salah dalam analisis saya. Saya sangat menyadari bahwa jawaban saya agak tidak lazim, tetapi saya berharap TIK cukup progresif sehingga jawaban akan dinilai berdasarkan konten mereka, dan tidak seberapa baik mereka cocok dengan dogma tradisional.
David Mulder
3
Ini layak mendapat lebih banyak suara. Satu- satunya hal yang benar-benar saya pedulikan di komputer saya adalah file yang dimiliki oleh pengguna (non root) saya. Mereka mewakili foto saya, musik saya, video putri saya .. sisanya dapat diinstal ulang dengan mudah!
Isak Savo
6
Logika ini pada dasarnya sama dengan mengatakan karena pembuka pintu garasi terpencil adalah saus yang cukup lemah itu benar-benar tidak akan menjadi masalah besar jika tidak ada yang menutup pintu garasi mereka. Premis itu benar tetapi nasehatnya palsu. Keamanan yang efektif terdiri dari banyak bagian kecil yang bekerja bersama. Seperti semua orang di lingkungan menjaga garasi tertutup. Itu membuat lingkungan lebih aman untuk semua orang.
Caleb
2
@ Caleb Ada perbedaan besar antara memiliki rumah di lingkungan dan mengundang siapa pun. Dan saat seseorang memasuki rumah Anda, hanya sedikit yang menghentikannya pada sistem * standar nix. Itulah yang saya jelaskan dalam jawaban ini: Setelah seseorang masuk ke sistem Anda, izin sistem file * nix tidak akan membantu, karena mereka tidak melindungi hal-hal yang Anda anggap penting pada sistem pribadi. Satu-satunya hal itu (lanjutan)
David Mulder
3
Tidak memiliki root tidak mencegahnya, tentu saja. Tapi itu pernyataan yang agak berbeda; semacam seperti bagaimana saya mengatakan "menyerang," bukan "kompromi." Anda dapat melakukan lebih banyak hal di jaringan dengan root. Jika mesin zombie Anda berpartisipasi dalam banjir ICMP sederhana, misalnya, Anda memerlukan akses soket mentah untuk menghasilkan lalu lintas ICMP tersebut (itulah sebabnya ping adalah suid root). Hal yang sama berlaku untuk beberapa modifikasi paket berbahaya lainnya yang bermanfaat.
dannysauer
14

Kembali sekitar tahun 1990 saya sedang mengerjakan sebuah proyek dengan seorang pria bernama Tom. Kami menggunakan server SUN yang menjalankan SunOS (turunan Unix, pendahulu untuk Solaris). Ini kembali pada hari-hari sebelum drive CD dan flash drive, jadi jika Anda mengacaukan OS pada hard drive Anda, tidak ada cara untuk memulihkan.

Tom biasa login sebagai root. Saya mengatakan kepadanya bahwa itu adalah ide yang buruk, tetapi dia tidak mendengarkan. Suatu hari saya mendengar dia berkata "Uh-oh". Dia bermaksud mengetik comething seperti ini:

mv something* .

Sayangnya dia meninggalkan titik terakhir, jadi shell memperluas semua nama file dan direktori yang cocok dengan pola ini. Kemudian perintah mv menggunakan apa pun yang berakhir sebagai nama akhir dalam daftar sebagai direktori tujuan, dan memindahkan semua yang lain ke dalamnya. Sayangnya, dia saat ini berada di direktori root, jadi pada dasarnya seluruh sistem file dipindahkan ke salah satu subdirektori.

Saya menggunakan panah atas untuk mengembalikan perintah sebelumnya dan melihat apa yang terjadi. Hal pertama yang saya katakan adalah, "Jangan keluar! Atau Anda tidak akan pernah bisa masuk lagi."

Tidak ada masalah, kan? Kita bisa mengembalikan semuanya. Kita bisa, kecuali bahwa perintah mv bukan salah satu dari perintah built-in dari shell. Sebaliknya, itu adalah program yang dapat dieksekusi, disimpan dalam salah satu file yang telah dipindahkan. Untungnya, ls adalah perintah bawaan, jadi setelah menggunakan ls untuk mengkonfirmasi di mana perintah telah pindah, saya dapat menemukan perintah mv, memohonnya dengan nama path lengkapnya, dan meletakkan barang-barang kembali ke tempat yang seharusnya. .

Dan kemudian saya mengatakan kepadanya, "Tom, ini sebabnya itu ide yang buruk untuk secara rutin login sebagai root."

Mike Ciaraldi
sumber
10

Secara umum Anda ingin menjaga kepemilikan file pribadi Anda terpisah dari pengguna root. Inilah mengapa Anda membuat akun untuk diri sendiri sebagai administrator. Cara yang diterima, di bawah OS X, untuk mendapatkan akses level root adalah dengan menggunakan sudoperintah dari aplikasi Terminal. Misalnya, jika Anda ingin melihat partisi drive internal Anda perintahnya adalah

gpt -r show /dev/disk0

yang jika dimasukkan akan menghasilkan pesan kesalahan berikut.

gpt show: unable to open device '/dev/disk0': Permission denied

Untuk menggunakan perintah, Anda harus menggunakan sudoseperti yang ditunjukkan di bawah ini.

sudo gpt -r show /dev/disk0

Jika Anda ingin menjadi pengguna root untuk menghindari masuk sudo, Anda bisa masuk sudo sh. The exitperintah dapat digunakan untuk keluar dari menjadi user root.

Jika Anda ingin menjalankan aplikasi sebagai pengguna root, Anda dapat menggunakan aplikasi Terminal. Misalnya, jika Anda ingin meluncurkan Finder sebagai pengguna root, masukkan perintah berikut.

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

Untuk menghindari kebingungan membuka dua aplikasi Finder pada saat bersamaan, biasanya yang terbaik adalah keluar dari aplikasi Finder Anda terlebih dahulu. Ini dapat dilakukan dengan menggunakan perintah terminal berikut.

osascript -e 'tell application "Finder" to quit'

Satu kata peringatan: mendahului perintah dengan sudotidak sama dengan menjadi pengguna root. Misalnya, perintahnya

sudo echo $USER
sudo echo $SUDO_USER

menghasilkan output yang sama dengan perintah di bawah ini.

echo $USER
echo $SUDO_USER

Jika Anda menjadi pengguna root (pengguna super), maka perintah yang sama menghasilkan output yang berbeda. Ini dapat diverifikasi dengan memasukkan perintah di bawah ini.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit
David Anderson
sumber
4

Jika alasan lain tidak cukup baik ... Jangan lupa bahwa Anda tidak dapat menggunakan Homebrew sebagai root (yang sebenarnya sangat menyebalkan). Program lain juga tidak membiarkan Anda menggunakannya sebagai root atau mengalami masalah izin ketika Anda melakukannya, sering kali tanpa alasan yang jelas, karena programmer mereka menganggap bahwa mereka tidak akan dijalankan sebagai root. Saya pikir Steam adalah salah satunya.

Sangat menyenangkan memiliki semua sistem dan hal-hal pengguna terpisah karena berbagai alasan.

Saya tidak tahu apakah itu masalah keamanan yang buruk. Saya pribadi akan lebih khawatir tentang masalah dengan organisasi dan izin daripada yang lainnya.

sudo
sumber
4

Hanya beberapa contoh mengapa tidak ok untuk selalu dijalankan sebagai root:

  • Pengguna root dapat dengan mudah menempatkan file di lokasi yang jauh lebih sulit untuk dilacak.
  • Pengguna root memiliki akses mentah ke antarmuka sehingga dapat menempatkan antarmuka ke mode promiscuous atau monitor dan mencatat SEMUA lalu lintas jaringan.
  • Root user memiliki akses mentah ke node perangkat dan dapat meremukkan disk yang membuatnya jauh lebih sulit untuk memulihkan file daripada 'rm' sederhana di tingkat pengguna. Pengguna root juga berpotensi memodifikasi sektor boot drive, membuat malware tetap ada bahkan setelah menginstal ulang sistem operasi.

Saya bisa melanjutkan. Intinya adalah ADA alasan bagus untuk tidak menjalankannya sebagai root. Saya tidak setuju bahwa bagi kebanyakan orang data pribadi mereka yang paling banyak ada di direktori home mereka, tetapi berjalan sebagai root tetap menempatkan data itu, dan seluruh sistem, pada risiko yang lebih besar. Saran untuk tidak berjalan sebagai root tidak salah tempat. Jika seseorang tidak memahami implikasi berjalan sebagai root, mereka pasti tidak boleh melakukannya. Menyarankan hal lain tidak bertanggung jawab.

secara jasmani
sumber
1

Kecuali jika Anda menggunakan backtrack / kali untuk tugas tertentu: TIDAK. Perlakukan pengguna super seperti yang Anda lakukan pada pistol yang dimuat: jika Anda memiliki kebutuhan dan niat untuk menggunakannya segera: OK. Namun, jika Anda dapat menyelesaikan masalah Anda dengan cara lain (mis. "Sudo"), lakukan itu.

SamWN
sumber
0

TIDAK! Ini akan membuat sistem Anda rusak dalam waktu yang sangat singkat. Sebagai gantinya, suatau sudoke root sesuai kebutuhan. Jika Anda benar-benar, secara positif, harus menjalankan sebagai root, setidaknya keluar kapan saja ketika Anda tidak menggunakan komputer. Jika sistem Anda mampu menjalankan multiuser, tetapi tidak ada pengguna yang dikonfigurasi, saya sarankan Anda membuat pengguna istimewa (yaitu: yang dapat sudo/ sumenjadi root seperlunya.) ASAP !!!

CodeZypher melipat dua puluh
sumber