Saya telah melihat banyak komentar di sini di Tanya Ubuntu tentang preferensi dalam menggunakan sudo -s
daripada sudo su
.
Bagi saya, kedua perintah itu melakukan hal yang persis sama. Tetapi mengapa sudo -s
seharusnya lebih baik?
command-line
sudo
su
fitojb
sumber
sumber
sudo -i
atausudo su
lebih baik daripadasudo -s
untuk alasan yang disebutkan di sini: ubuntuforums.org/showpost.php?p=6188826&postcount=4 Juga: ini adalah kemungkinan duplikat dari superuser.com/questions/29/…Jawaban:
Saya pikir
sudo -s
tidak "lebih baik", hanya saja berbeda.sudo -s
menyimpan direktori $ HOME Anda, jadi ketika Anda memulai program, mereka akan menggunakan file konfigurasi Anda (dan bukan root) dll. Kerugian: mereka juga dapat mengubah kepemilikan file Anda di direktori $ HOME, contoh khasnya adalah
.Xauthority
file, tetapi saya tidak pernah mengalami masalah dengan itu.sudo su
atausudo -i
program akan menggunakan direktori home root dan file konfigurasinya. Ini mungkin lebih intuitif, tetapi itu juga berarti bahwa itu tidak akan menggunakan konfigurasi apa pun yang mungkin Anda tetapkan untuk diri sendiri (alias, bash history, ...).
sumber
Karena
sudo -s
tidak akan mengubah variabel lingkungan Anda, terutama$HOME
yang akan tetap adaHOME=/home/USER
. Jika Anda menggunakansudo su
ini akan berubahHOME=/root
yang dapat memiliki efek samping negatif ketika program Anda mulai mencoba mengakses direktori home pengguna Anda.Jadi pada dasarnya itu seperti
sudo
vsgksudo
ketika menjalankan program grafis.sumber
Selain perbedaan yang telah disebutkan dengan variabel lingkungan, saya menemukan
sudo su
konyol dan boros karena Anda memintasudo
untuk menjalankansu
sebagai root, dan meminta untuk menjalankan shell sebagai root. Mengapa meminta sebuah program untuk meminta sebuah program untuk memberi Anda shell root, ketika Anda bisa meminta program pertama memberi Anda shell itu? Apakah itu penting secara praktis? Tidak, saya hanya bertele-tele.sumber
sudo su
untuk menjadi root, ya, langsung sajasudo -i
, misalnya. Tapi itu tidak membantu ketika Anda ingin menjadi pengguna yang berbeda:sudo su - myuser
.sudo -i
akan berubah ke/root
direktori dansudo su
akan tetap di direktori Anda.sudo -u myuser
,.Saya tidak setuju dengan jawaban lain ketika mempertimbangkan kasus ketika Anda ingin masuk sebagai pengguna yang tidak memiliki shell. Itu adalah kasus yang sangat umum dengan pengguna yang ditugaskan ke layanan.
Menggunakan "sudo su" akan memulai shell yang ditentukan oleh pengguna. Namun dalam kasus pengguna yang ditugaskan untuk proses server, shell adalah / usr / bin / false dan logging akan gagal. Sebaliknya, Anda harus memasukkan sebagai:
yang akan masuk Anda dan cd ke jalur home-nya, bahkan jika pengguna tidak memiliki shell yang ditugaskan
sumber