Misalkan Anda menginstal lingkungan desktop, katakanlah ubuntu atau debian. Anda dapat mematikan sistem dengan mengklik tombol di suatu tempat di menu sistem Anda sebagai pengguna normal. Anda tidak perlu beralih ke pengguna super untuk mencapai itu.
Namun di lingkungan desktop yang sama, jika saya membuka terminal (katakan gnome-terminal) sebagai pengguna normal, dan ketik
shutdown -h now
Saya akan diminta oleh
shutdown: need to be root
Satu-satunya cara untuk mematikan adalah dengan menambahkan perintah dengan sudo.
Adakah yang bisa menjelaskan mengapa demikian?
Terima kasih KC
linux
permissions
K.Chen
sumber
sumber
Jawaban:
Pertanyaan yang diajukan oleh K.Chen adalah: mengapa saya membutuhkan hak sudo ketika saya melakukannya dari CLI, ahile saya tidak membutuhkan hak istimewa seperti itu ketika saya melakukannya dari GUI.
Bagian pertama dari jawabannya adalah bahwa orang-orang yang mendesain Lingkungan Desktop, seperti Gnome, KDE, Xfce, Mate, Cinnamon, ... mencoba menyederhanakan pekerjaan penggunanya, dan mereka mengonfigurasi penutupan dan me-reboot tanpa memerlukan kredensial sudo. Ini, kebetulan, menyiratkan bahwa harus ada urutan shutdown yang tidak melibatkan shutdown program, yang memang memerlukan hak sudo (tidak ada jalan lain).
Saya tidak tahu secara detail bagaimana masing-masing DE melakukannya, tetapi saya tahu bahwa ada cara yang lembut untuk menjatuhkan, atau restart / shutdown / hibernasi sistem Anda, yang tidak memerlukan hak root. Anda dapat menemukan posting asli di posting Arch Linux Forum . Intinya, itu sama dengan mengeluarkan perintah-perintah ini:
berhenti
reboot
dbus-suspend
hibernasi
Dugaan saya adalah bahwa tombol GUI menggunakan kira-kira perintah ini. Yang pasti harus melihat ke dalam kode, tapi saya yakin ini adalah taruhan yang aman.
sumber
Alasan di balik keputusan desain ini bukan teknis (Anda bisa memiliki
shutdown
perintah yang tidak istimewa atau memerlukan kata sandi di GUI).Saat menggunakan lingkungan desktop, pengguna seharusnya memiliki akses fisik ke mesin. Maka lebih baik membiarkan shutdown bersih daripada membiarkan pengguna menekan tombol daya atau mencabut kabel listrik.
Saat menggunakan shell, pengguna bisa menjadi pengguna jarak jauh dan untuk menghindari shutdown jarak jauh, lebih banyak hak istimewa diminta.
Ini bukan aturan tetapi hanya default berdasarkan asumsi: Anda dapat memiliki pengguna lokal di shell dan pengguna jarak jauh dengan lingkungan desktop. Jika Anda ingin memilih perilaku default, Anda dapat mengkonfigurasi sistem Anda sesuai.
sumber
Sudo (superuser do) memungkinkan administrator sistem untuk memberikan pengguna tertentu (atau grup pengguna) kemampuan untuk menjalankan beberapa (atau semua) perintah sebagai root saat mencatat semua perintah dan argumen. perintah shutdown -h atau init 0 dapat digunakan untuk mematikan mesin. Tetapi kedua perintah tersebut membutuhkan root privilege untuk dieksekusi.
Perintah yang terletak di / sbin harus memiliki hak akses root untuk menjalankannya. Untuk menemukan lokasi perintah shutdown,
ketik yang shutdown di terminal.
Semoga sekarang keraguan Anda jelas :)
sumber