Mengapa pengguna non-admin tidak dapat menginstal perangkat lunak?

11

Ini mungkin sesuatu yang tidak saya mengerti karena saya sudah terbiasa dengan Windows dan saya baru memulai dengan Ubuntu. Saya tahu bahwa perangkat lunak di linux datang dalam paket yang saya tidak mengerti mengapa pengguna non-admin dapat menginstal perangkat lunak.

Maksud saya, setiap aplikasi dijalankan oleh pengguna tertentu, dan pengguna itu hanya akan dapat menjalankan aplikasi itu dengan kelebihannya, jadi jika ia tidak memiliki hak admin, aplikasi itu juga tidak akan dapat mengakses direktori yang tidak diotorisasi dll.

Saya ingin sebagian besar waktu untuk bekerja pada PC saya dengan pengguna non-admin karena tampaknya lebih aman bagi saya, sebagian besar waktu saya tidak memerlukan hak istimewa admin. dan meskipun saya tahu virus di linux jarang saya masih berpikir praktik terbaik adalah bekerja pada komputer dalam keadaan bahwa Anda sendiri tidak dapat membuat perubahan pada file penting, dengan cara itu virus juga tidak dapat merusak file penting, tapi saya perlu menginstal perangkat lunak untuk pemrograman dan desain web dll. dan pertama-tama saya tidak ingin berganti pengguna sepanjang waktu. Tetapi juga kedengarannya lebih aman bagi saya bahwa semua yang dilakukan pada PC akan dilakukan melalui pengguna non-admin.

Saya akan senang mengetahui kesalahpahaman apa yang saya miliki di sini, menyebabkan sesuatu di sini tidak terdengar benar.

58
sumber

Jawaban:

16

Mengapa Anda dimintai kata sandi

Sebagian besar perangkat lunak dirancang untuk menyentuh file sensitif, yaitu sensitif terhadap keamanan data pribadi Anda atau integritas sistem. Inilah sebabnya mengapa instalasi perangkat lunak adalah risiko potensial dan harus divalidasi oleh pengguna yang tahu apa yang dia lakukan. Bahkan untuk Perangkat Lunak open source Anda tidak dapat memastikan bahwa tidak ada bit kode yang buruk tiba dengan pemutar audio baru Anda yang penuh perhatian sampai seseorang memeriksa. Dan bahkan saat itu sesuatu bisa saja diabaikan atau paket bisa dimanipulasi di jalan. Siapa yang tahu apa yang tersembunyi di kedalaman program? Satu pengguna harus.

Ubuntu menyediakan cara yang nyaman untuk menginstal perangkat lunak. Pengembang perangkat lunak dapat mengandalkan kenyamanan itu dan membuat asumsi bahwa sinaptis / pusat perangkat lunak / apt memungkinkan mereka untuk mengakses file-file sensitif ini. Canonical memeriksa repositori perangkat lunak untuk mencari bug dan kode berbahaya. Tetapi tanggung jawab utama adalah milik Anda.

Jika perangkat lunak yang dipermasalahkan tidak memerlukan akses ke file sensitif, pada prinsipnya dapat diinstal dalam folder rumah meskipun tidak dengan cara Ubuntu. Misalnya, Anda harus mengkompilasi kode sumber sendiri atau menjalankan skrip instalasi khusus. Selain upaya yang lebih besar, program ini memiliki kelemahan karena tidak mengizinkan pengguna lain mengakses program yang baru saja Anda instal (karena mereka tidak memiliki hak untuk mengakses folder rumah Anda). Mereka perlu menginstalnya untuk kedua kalinya. Jadi cara instalasi ini tidak masuk akal dalam skala besar dan dalam skala kecil biasanya lebih mudah untuk mengetik kata sandi daripada menginstal perangkat lunak secara manual.

Jadi itu sebabnya Synaptic mencari kata sandi dan mengapa itu bagus.


Sudoers

Jika Anda benar-benar membutuhkan pengguna lain menginstal perangkat lunak tanpa kata sandi , Anda dapat menambahkannya ke daftar sudoers. Namun ini akan menghasilkan risiko keamanan yang besar . Jika itu bukan urusan Anda, pertimbangkan bahwa ada jaringan bot di luar sana dengan sumber daya yang bagus untuk masuk ke komputer Anda melalui Internet. Mereka melakukan ini hanya untuk menambahkan komputer Anda ke internet dan menggunakannya koneksi dan daya komputasi tanpa sepengetahuan Anda untuk melakukan segala macam hal ilegal. Mereka bahkan tidak mengejar data pribadi Anda, Anda dalam hal ini. Mereka hanya ingin membajak PC Anda. Masih tidak peduli? Betulkah? Kemudian lihat jawaban berikut yang merupakan cara kecil tentang cara kerja daftar sudoers:

Cara membuat Ubuntu mengingat selamanya kata sandi setelah pertama kali

Baca dengan cermat. Anda dapat mengunci diri dari sistem.

Ketakutan sudah berakhir

Jadi sekarang Anda memiliki ketakutan di belakang Anda dan menanggapi masalah ini dengan serius, saya dapat memberitahu Anda bahwa itu benar-benar tidak terlalu buruk. Jika Anda memercayai orang-orang yang bekerja di komputer Anda, dan Anda tidak memiliki program yang diinstal yang memungkinkan akses jarak jauh ke sistem Anda (misalnya server ssh atau ftp), maka benar-benar tidak berbahaya untuk menonaktifkan hal-hal kata sandi. Hanya saja jangan lakukan itu tanpa mempertimbangkan kasus terburuk dan pikirkan data pribadi Anda.


Mengabaikan proses ( jangan lakukan ini dengan ringan - lihat teks dan tautan di atas ):

# in shell type these commands
sudo su       # in case you do something stupid, you'll have a root shell open
select-editor # (optional) will allow you to select text editor
visudo        # secure way to open sudoers list

Editor akan membuka ADD a line seperti ini:

confus confusion=(root) NOPASSWD:/usr/sbin/synaptic,/usr/bin/software-center

Penjelasan sintaks: username machine=(usernameToRunCommandAs) command1,command2,.... Jadi baris di atas memungkinkan confus untuk menjalankan sinaptik dan softwarecenter sebagai root tanpa permintaan kata sandi. Anda masih harus memulainya dengan sudo synapticatau gksudo synapticatau memasukkan alias `alias synaptic = 'sudo synaptic' di profil shell Anda.

membingungkan
sumber
Selain bingung, Anda benar-benar membuat saya mengerti. senang melihat komunitas yang bagus untuk linux :)
fiftyyeight
2
Sama-sama. Karena linux sebagai proyek open source bergantung pada orang-orang yang memasukkan pekerjaan mereka ke dalamnya tanpa kompensasi, Anda akan menemukan banyak orang yang membantu dalam masyarakat.
con-f-use
4

Mereka tidak bisa. Ini kesepakatannya.

  1. Pengguna pertama yang dibuat di Ubuntu dianggap sebagai pengguna khusus: ini adalah pengguna dengan izin administrasi. Ini berarti kapan pun pengguna ini ingin melakukan tugas admin, ia akan dimintai kata sandi adminnya. Tugas-tugas itu dikeluarkan dengan meletakkan sudodi depan perintah.

  2. Semua pengguna lain (kecuali jika Anda mengubahnya sendiri) adalah pengguna normal dan tidak dapat menginstal sistem perangkat lunak lebar kecuali admin (pengguna pertama) memungkinkan mereka melakukannya. Pengguna normal hanya dapat meletakkan barang-barang di rumah mereka sendiri dan jika mereka mau mereka dapat mengacaukan direktori rumah mereka.

Dengan cara ini 1 orang bertanggung jawab untuk sistem.

Anda dapat membuat lebih dari 1 pengguna sebagai admin (sehingga dapat menginstal perangkat lunak) dengan menambahkan pengguna tersebut ke file sudoers.

Selain itu mereka dapat menginstal perangkat lunak di rumah mereka tetapi ini tergantung pada perangkat lunak: kadang-kadang installer ingin menambahkannya ke sistem dan itu tidak diperbolehkan. Instalasi ini cenderung berasal dari sumber sehingga bukan metode termudah;)

Rinzwind
sumber
2

Di Ubuntu, administrator memiliki hak akses root (sering disebut hanya "root", seperti dalam "Anda harus menjadi root").

Akses ke file dapat dibagi menjadi tiga jenis:

  • baca (nilai numerik 4)
  • tulis (nilai numerik 2)
  • mengeksekusi (nilai numerik 1)

Atribut ini dapat diatur pada setiap file atau direktori. Selanjutnya, pembatasan ini dapat ditetapkan pada:

  • pemilik file
  • grup file (pengguna dapat menjadi anggota grup ini)
  • semua pengguna lain yang bukan pemilik maupun dalam grup

Prinsip-prinsip ini membentuk dasar-dasar izin file Linux. Di windows, semuanya bisa dieksekusi. Berikan .cmdatau .exeekstensi misalnya. Di Ubuntu, Anda perlu menambahkan bit eksekusi secara eksplisit, jika tidak, kesalahan izin akan muncul.

Ketika seorang pengguna menjalankan suatu program, program tersebut mengakses file ketika pengguna itu dan izin file ini masuk. Secara default, lokasi di mana program diinstal adalah hak istimewa, hanya pemilik yang dapat menulis. Pemilik ini adalah root. Semua pengguna lain hanya dapat membaca dan menjalankan program, tidak menulis untuk itu. Itu sebabnya Anda membutuhkan hak akses root untuk menginstal program.

Ubuntu memiliki program khusus yang disebut sudo(SuperUser DO ...) untuk menjalankan program dengan hak akses root. Ini dapat digunakan untuk menginstal perangkat lunak. Saat dijalankan, sudoprogram meminta kata sandi pengguna Anda. Perhatikan bahwa hanya anggota admingrup yang dapat menjalankan program sebagai root menggunakan sudo.

Di Windows, Anda akan pergi ke situs web dan mengunduh penginstal. Ubuntu bekerja dengan repositori perangkat lunak tempat Anda dapat mencari program dan menginstalnya. Program-program ini ditinjau sebelum ditambahkan ke repositori resmi, sehingga Anda dapat yakin bahwa tidak ada niat berbahaya di dalam program.

Lekensteyn
sumber
ok saya mengerti, jadi tidak bisakah pengguna menginstal perangkat lunak ke direktori home mereka dan dengan cara itu tidak menyentuh area sensitif? Maksud saya, jika mereka benar-benar menginginkannya, mereka mungkin dapat mengunduh file-file yang diperlukan untuk program dan tetap menyimpannya di direktori home mereka, bukan?
Fiveyeight
Mereka dapat menginstal perangkat lunak di direktori home yang ada. Mereka hanya perlu mengkompilasinya sendiri dan meletakkan binari di sana. Tentu saja perangkat lunak yang diinstal dengan cara seperti itu tidak akan dapat mengakses file yang dilindungi di tempat lain. Meskipun sebagian besar perangkat lunak dibangun dengan cara, itu perlu mengakses file tersebut.
con-f-use
Saya telah memperbarui jawabannya dengan "cara Ubuntu" untuk menginstal perangkat lunak. Dimungkinkan untuk menginstal perangkat lunak di direktori rumah Anda, tetapi itu benar-benar tergantung pada apa yang Anda unduh. Seringkali, ini adalah arsip dengan ekstensi .tar.gzatau .tar.bz2. Ini sering dapat diekstraksi di direktori home secara langsung, tetapi kadang-kadang Anda perlu mengkompilasi program sebelum digunakan. Jika file memiliki .binatau .shekstensi, itu sering kali merupakan installer yang dapat dieksekusi yang bervariasi dalam penggunaannya. Ingat bahwa Ubuntu tidak menggunakan ekstensi file untuk menentukan jenisnya, ia menggunakan kontennya.
Lekensteyn
2

Pengguna non-admin tidak dapat menginstal perangkat lunak karena paket berjalan sebagai root ketika mereka menginstal saat mereka menginstal ke bagian sistem yang istimewa, menjalankan skrip pengelola, dll.

Saat ini tidak ada cara untuk memberi tahu sistem "Instal firefox dari .deb ini tetapi di direktori home pengguna sehingga terisolasi dari sisa sistem"; itulah sebabnya saat ini sebagian besar merupakan urusan semua atau tidak sama sekali. (Ini juga mengapa menjalankan .deb pihak ketiga buruk, paket dan skripnya sudah termasuk akses root ke sistem Anda)

Jorge Castro
sumber
1

Anda menyentuh perbedaan besar antara windows dan ubuntu. Di Windows ketika Anda masuk sebagai program admin akan diinstal tanpa meminta kata sandi. Ini juga memungkinkan malware untuk menjalankan program mereka. Di Ubuntu (Linux) bahkan masuk sebagai admin sistem akan selalu meminta kata sandi Anda ketika Anda mengubah sistem. Karenanya, malware tidak dapat mengganggu sistem Anda dengan mudah. Singkatnya, jalankan Ubuntu sebagai admin. Jika Anda membuka akun pengguna lain untuk anak-anak Anda daripada hanya memberi mereka hak pengguna normal sehingga mereka tidak dapat mengacaukan sistem.

dago
sumber
Dengan "admin", maksud Anda pengguna dengan hak sudo? Admin asli akan menjadi root.
Perangkat lunak Windows tidak meminta kata sandi bukan karena Anda harus masuk sebagai Admin. tetapi karena Windows tidak berfungsi seperti itu, maka jika Anda mengunduh file deb yang secara tidak sadar mengandung skrip berbahaya dan Anda memasukkan pass Anda untuk menginstal file itu dapat merusak sistem seperti halnya malware Windows.
Uri Herrera
Dan bahkan akun Windows "Admin" sebenarnya bukan pemilik file sistem, melainkan SYSTEM, yang dalam hal ini akan seperti ini, "Admin" yang merupakan akun yang Anda buat saat instalasi, dan ROOT yang merupakan file sistem sebenarnya pemilik
Uri Herrera
0

Anda dapat menginstal perangkat lunak sebagai pengguna biasa, bukan admin. Perangkat lunak yang diinstal oleh pengguna biasa akan "dimiliki" oleh pengguna tersebut, yang berarti bahwa, pada dasarnya, itu adalah perpanjangan dari pengguna - ia tidak memiliki izin lebih dari yang dimiliki pengguna, meskipun mungkin memiliki lebih sedikit izin, di opsi pengguna.

Praktik umum adalah bagi pengguna untuk membuat direktori 'bin' dalam direktori home mereka. Jika / home / [user] / bin ada, ditambahkan ke awal jalur pengguna itu. Anda dapat menempatkan file yang dapat dieksekusi di / home / [user] / bin, atau di folder lain yang Anda tulis dan jalankan aksesnya, dan jalankan program dari sana.

Apa yang tidak bisa dilakukan oleh pengguna biasa adalah menginstal seluruh paket sistem. Sebagai contoh, pengguna biasa tidak dapat memasukkan file yang dapat dieksekusi di / usr / bin, atau memberikan mereka izin yang melebihi izin pengguna sendiri. Ini, tentu saja, untuk alasan keamanan dasar - Anda memerlukan izin admin untuk memformat ulang hard drive, misalnya, dan Anda tidak ingin seseorang yang tidak sah melakukan hal itu.

Sejauh yang saya tahu, Anda tidak dapat menggunakan perangkat lunak manajemen paket untuk menginstal paket perangkat lunak kecuali jika Anda memiliki izin admin, karena manajemen paket dilakukan di seluruh sistem.

Namun, tanpa izin admin, Anda dapat membuat skrip shell, menulis dan mengompilasi kode sumber, mengunduh dan mengompilasi "tarballs", yang merupakan paket-paket kode sumber untuk aplikasi yang kompleks, atau mengunduh file yang dapat dieksekusi, selama ini dapat digunakan hanya dengan izin pengguna biasa. Beberapa game indie, seperti World of Goo atau X-Plane 9, dapat diinstal dan digunakan dengan cara ini.

bgvaughan
sumber
Saat membaca ulang pertanyaan, saya pikir jawaban saya tidak relevan secara langsung. Jawaban yang lebih relevan adalah, dengan anggapan akun reguler pengguna memiliki hak admin, ia harus diminta kata sandi sebelum melakukan apa pun yang memerlukan izin pengguna super, dan itu harus cukup aman, tetapi ia bisa saja membuat akun pengguna kedua yang tidak tidak memiliki izin admin jika dia lebih suka.
bgvaughan
Pertanyaan Anda sebenarnya sangat membantu, terima kasih :)
fiftyyeight