Mengapa satu lebih disukai daripada yang lain dalam contoh ini?
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit
Harap berikan tautan ke dokumentasi Ubuntu.
Mengapa satu lebih disukai daripada yang lain dalam contoh ini?
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit
Harap berikan tautan ke dokumentasi Ubuntu.
Jawaban:
The sudo superintah singkatan dari "switch user", dan memungkinkan Anda untuk menjadi pengguna lain. Ini memungkinkan pengguna yang diizinkan untuk menjalankan perintah sebagai superuser atau pengguna lain, sebagaimana ditentukan dalam file sudoers.
Opsi i (mensimulasikan login awal) menjalankan shell yang ditentukan oleh entri basis data kata sandi pengguna target sebagai shell login. Ini berarti bahwa file sumber daya khusus masuk seperti .profile atau .login akan dibaca oleh shell. Jika suatu perintah ditentukan, perintah itu diteruskan ke shell untuk dieksekusi melalui opsi shellc shell. Jika tidak ada perintah yang ditentukan, shell interaktif dijalankan.
Sumber: ManPage
sudo suAnda diminta kata sandi, bukan kata sandi root. Pengguna root bahkan tidak perlu memiliki kata sandi. Bagaimanapun juga, jika admin menggunakan kata sandi root, itu tidak berarti bahwa semua pengguna biasa mengetahuinya.
sudoberjalan susebagai root, dan root bisa suke pengguna mana pun tanpa mengetahui kata sandi mereka. Kesalahpahaman mendasar tentang cara kerja sistem yang layak mendapatkan IMO downvote.
sudo -ijuga tidak akan meminta kata sandi root, jadi tidak relevan dengan pertanyaan.
sudo suhanya mengubah pengguna saat ini untuk melakukan root. Pengaturan lingkungan (seperti PATH) tetap sama.
sudo -i menciptakan lingkungan baru seolah-olah root baru saja masuk.
Perbedaannya lebih terlihat jika Anda menggunakan pengguna lain. Setelah sudo su bobAnda akan menjadi bob, tetapi di tempat yang sama. Setelah sudo -i -u bobAnda menjadi bob, di direktori home bob, dengan shell default bob dan dengan bob .profiledan semua skrip login lainnya telah dijalankan.
Lihat man sudountuk detail lebih lanjut tentang apa yang -idilakukan. Sayangnya, man sudetailnya ringan.
Menemukan versi man su(dari login-1: 4.1.4.2 + svn3283-3ubuntu5.1) yang memiliki yang berikut sebagai berikut:
Reset $ PATH sesuai dengan opsi /etc/login.defs ENV_PATH atau ENV_SUPATH (lihat di bawah);
$ IFS diatur ulang ke “<spasi> <tab> <newline>”, jika disetel.
Perhatikan bahwa perilaku default untuk lingkungan adalah sebagai berikut:
Variabel lingkungan $ HOME, $ SHELL, $ USER, $ LOGNAME, $ PATH, dan $ IFS diatur ulang.
Jika --login tidak digunakan, lingkungan akan disalin, kecuali untuk variabel di atas.
Jika --login digunakan, variabel lingkungan $ TERM, $ COLORTERM, $ DISPLAY, dan $ XAUTHORITY disalin jika disetel.
Lingkungan lain mungkin diatur oleh modul PAM.
Jadi apakah dan sejauh mana sudo superubahan lingkungan tergantung pada distribusi dan pengaturan Anda. Dengan demikian sudo -isecara teori lebih portabel.
su tidak mengubah pengaturan lingkungan, dan dapat digunakan untuk mensimulasikan login menggunakan -atau -l. Bahkan tanpa -l, $PATH yang berubah. Uji klaim ini sebelum mengajukannya! (Apakah maksud Anda itu PWDtetap sama?)
sudo su -dan sudo -i?
$PATHitu berubah ketika saya gunakan sutanpa sudo(menggunakan kata sandi root). Menurut info su(yang mungkin merupakan hal yang lebih baik untuk ditautkan dalam jawaban Anda), sumemang membaca entri kata sandi untuk pengguna yang Anda menjadi. Mungkin $PATHperubahan yang saya amati tergantung pada sistem (I'm on Debian 7).
man suKata saya (yang lebih panjang dari yang Anda tautkan) mengatakan bahwa itu bagian dari shadow-utils 4.1.5.1. manHalaman saya juga mengatakan bahwa $PATHini diatur bahkan jika --preserve-environmentdigunakan. Jadi saya kira itu hanya perbedaan antara versi yang berbeda su.
/etc/pam.d/sudodan /etc/pam.d/sudapat diatur untuk melakukan hal yang sama sekali berbeda atau persis sama.
Masalah utama adalah salah satu (tidak begitu) pengaturan lingkungan waras.
Menggunakan sudo sushell baru mendapatkan lingkungannya dari pengguna yang mengeluarkan perintah - yang mungkin bermasalah.
Dengan sudo -iAnda mendapatkan shell root bersih.
Lihat Catatan khusus tentang sudo dan kerang
Tetaplah mengamati bahwa jarang diperlukan sama sekali untuk membuat shell root.
sudo -imirip dengan sudo su -, yang sebenarnya tidak mendapatkan lingkungannya dari pengguna yang mengeluarkan perintah.
sudo suvs sudo -i.