sudo bagus atau sudo bagus?

53

apakah ada perbedaan antara menjalankan tugas intensif terhadap sudo dengan perintah berikut ?:

  1. sudo bagus [perintah intensif di sini]
  2. sudo nice [perintah intensif di sini]

BTW ini untuk Linux 3.x.

Nicolas Laplante
sumber
6
Untuk membantu Anda menguji lihat nice bash -c 'ps -p $$ -o pid,ni,comm', dan sudo nice bash -c 'ps -p $$ -o pid,ni,comm', dan nice sudo bash -c 'ps -p $$ -o pid,ni,comm'. Ketiganya harus menunjukkan kepada Anda nilai bagus untuk id proses ($$) dari shell yang dihasilkan.
Zoredache
@Zoredache, sementara saya berpikir bahwa komentar Anda SANGAT konstruktif, kita harus mengatakan bahwa mereka semua akan memiliki nilai bagus yang sama karena akan diwarisi ketika mencari, yang seharusnya menjadi jawaban aktual untuk pertanyaan itu.
Florin Asăvoaie
3
@FlorinAsavoaie jika Anda pikir itu seharusnya jawabannya, silakan menambahkannya. Saya menambahkan komentar saya di atas sebagai cara untuk menguji sesuatu, karena saya pribadi tidak 100% yakin akan apa yang akan terjadi, dan saya memutuskan untuk menemukan perintah yang dapat menunjukkan nilai bagus dengan berbagai doa. Saya berada di kamp yang cenderung lebih suka untuk benar-benar memiliki tes yang menunjukkan hal-hal beroperasi sebagaimana mestinya.
Zoredache
@FlorinAsavoaie saya akan berpikir begitu juga, tetapi lihat serverfault.com/a/626576/117546 .
emory

Jawaban:

104

Ada perbedaan, yang penting.

Jika Anda ingin mengurangi prioritas proses, urutannya tidak masalah. Di sisi lain, jika Anda ingin meningkatkannya , Anda harus meletakkan sudosebelumnya nice.

Karena Anda menjalankan perintah sebagai pengguna normal (jika tidak, Anda tidak akan repot dengan sudo sama sekali), Anda hanya dapat mengurangi prioritas perintah Anda. Tetapi jika Anda menggunakannya sudoterlebih dahulu, Anda dapat meningkatkannya jika Anda mau.

ToriumBR
sumber
21
Selamat, kamu menang.
Michael Hampton
2
Ini adalah poin yang sangat penting, meskipun sebagai jawaban itu hanya lengkap ketika Anda menjelaskan mengapa urutan itu tidak masalah dalam kasus dasar (seperti Michael dalam jawabannya).
Lightness Races with Monica
16

Jika Anda menjalankannya nice sudomaka prompt untuk kata sandi Anda juga akan hilang, tetapi karena Anda akan menghabiskan lebih banyak waktu mengetiknya, itu tidak terlalu menjadi masalah.

Seperti dicatat ThoriumBR, jika Anda menurunkan prioritas, maka urutannya tidak relevan, tetapi jika Anda ingin meningkatkan prioritas, maka (karena ini harus dilakukan sebagai root) yang harus Anda gunakan sudo nice.

Kalau tidak, saya tidak bisa membayangkan perbedaan nyata.

Michael Hampton
sumber
2

Dengan menggunakan 'prinsip hak istimewa paling rendah', Anda hanya harus menjalankan program dengan hak akses root jika diperlukan, dan kemudian letakkan kembali begitu Anda tidak membutuhkannya lagi.

Jadi ya, ada perbedaan, jika ada eksploit untuk kebaikan, penyerang bisa menjalankan kode dengan hak yang sama dengan program yang bagus.

Selain itu, sudo akan menyetel ulang lingkungan Anda, sehingga mengurangi efek samping, coba

$ echo 'echo $PATH' | sh
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jens/.local/bin:/home/jens/bin:/home/jens/.local/bin
$ echo 'echo $PATH' | sudo sh
[sudo] password for jens: 
/sbin:/bin:/usr/sbin:/usr/bin

Jadi perintah 'bagus' yang Anda jalankan melalui sudo mungkin sebenarnya menjadi biner yang berbeda.

$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens: 
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)
Jens Timmerman
sumber
2

Jawaban terlambat:

Jika akses sudo Anda terbatas pada program-program tertentu ( foodan bar, misalnya), maka Anda tidak akan memiliki otoritas untuk menjalankan sudo nice foo, tetapi akan diizinkan untuk berjalan nice sudo foo.

Chris Dennis
sumber