Berasal dari latar belakang Linux / Unix, saya tidak dapat memahami cara kerja UAC di Windows.
Saya mendengar bahwa UAC berfungsi seperti sudo
. Aplikasi Linux saya dapat melakukan beberapa pekerjaan lain sebelum menelepon sudo
.
Tetapi di Windows, tampaknya semua aplikasi yang memerlukan konfirmasi UAC harus memiliki UAC sebelum melakukan pekerjaan yang sebenarnya sama sekali! Saya menjalankan aplikasi, meminta saya untuk konfirmasi UAC dan saya menolaknya - aplikasi tidak akan berjalan.
Jadi apakah UAC bekerja seperti ini?
sudo su
./run_app
Daripada:
./do_work1
sudo su
./du_work2
Terima kasih atas jawaban hebat semua orang!
Di bawah Windows, prompt UAC dipicu ketika Anda mencoba untuk menjalankan executable yang ditandai sebagai membutuhkan peningkatan manifes yang tertanam dalam file dan Anda belum menjalankan yang ditinggikan. Perilaku ini lebih seperti setuid daripada su dalam hal itu file, bukan perintah yang memberi tahu OS bahwa executable harus dijalankan dengan kredensial yang berbeda.
sumber
Itu karena mereka berbeda, sederhana dan sederhana. UAC bisa saja diimplementasikan
sudo
, tetapi ternyata tidak.Anda dapat menganggapnya sebagai analogi dengan perlindungan jaringan.
sudo
seperti ketika sebuah program meminta akses jaringan dan firewall Anda meminta Anda untuk memberikannya atau tidak. Anda dapat mengatakan ya dan program akan membuka soket, atau Anda dapat mengatakan tidak dan itu akan mengeluh tentang kurangnya koneksi dan melakukan apa pun yang dapat dilakukan tanpa akses jaringan (beberapa program yang dirancang buruk sebenarnya macet). Sebagai contoh:UAC lebih seperti peringatan yang Anda dapatkan ketika mencoba membuka file yang diunduh ke volume NTFS. Windows memperingatkan Anda tentang potensi kejahatan dan menanyakan apakah Anda ingin menjalankannya (sama sekali) atau tidak. Ini operasi semua atau tidak sama sekali; Anda tidak dapat memilih untuk mempercayai hanya sebagian dari program dan bukan yang lain. Sebagai contoh:
Anda harus ingat bahwa tidak seperti Linux yang lebih diarahkan pada pengguna dan aplikasi tingkat lanjut, Windows dirancang untuk menjadi ramah pengguna untuk berbagai pengguna sebanyak mungkin, sehingga menyederhanakan keamanan adalah yang terpenting. Selain itu, karena permukaan pajanannya yang besar, ia sering menjadi target malware, jadi lebih masuk akal untuk sepenuhnya mempercayai suatu program atau tidak sama sekali.
sumber
Saya tidak benar-benar tahu arsitektur linux, jadi maafkan saya jika saya melakukan kesalahan, tetapi pemahaman saya adalah bahwa Linux dan Windows tidak jauh berbeda dalam hal ini ...
Contoh ... Skrip salin yang melakukan salinan file normal ke lokasi yang tidak dilindungi dan file yang mencoba menyalin ke lokasi yang dilindungi, kemudian salinan biasa lagi.
Pemahaman saya adalah bahwa di Linux, aplikasi hanya berjalan dan mencoba melakukan tindakan - jika tidak memiliki izin untuk melakukan tindakan itu - itu akan gagal tindakan itu, tetapi teruskan. Dalam contoh di atas - ketika menjalankan skrip salin di Linux sebagai pengguna biasa, itu akan menyalin file biasa, memberikan masalah izin dan menyalin file kedua - jika dijalankan dengan sudo, itu akan melakukan semua tiga salinan.
Windows persis sama dalam hal ini - menjalankan skrip sebagai pengguna non administratif hanya akan menyalin satu, mengeluarkan izin kedua dan menyalin berikutnya. Dengan UAC, ia akan menjalankan ketiganya.
Perbedaannya adalah bahwa banyak aplikasi Windows hanya memiliki satu set konfigurasi sehingga mereka meminta elevasi UAC secara default dan berhenti / gagal jika tidak memilikinya .... tetapi, itu menjadi jauh lebih sedikit.
sumber