nice sudo หรือ sudo nice?


53

มีความแตกต่างระหว่างการทำงานอย่างเข้มข้นมากกว่า sudo ด้วยคำสั่งต่อไปนี้หรือไม่:

  1. nice sudo [คำสั่งแบบเข้มข้นที่นี่]
  2. sudo nice [คำสั่งแบบเข้มข้นที่นี่]

BTW นี่สำหรับ Linux 3.x


6
ที่จะช่วยให้คุณทดสอบดูnice bash -c 'ps -p $$ -o pid,ni,comm'และและsudo nice bash -c 'ps -p $$ -o pid,ni,comm' nice sudo bash -c 'ps -p $$ -o pid,ni,comm'ทั้งสามควรแสดงให้คุณเห็นคุณค่าที่ดีสำหรับ id กระบวนการ ($$) ของเชลล์ที่สร้างใหม่
Zoredache

@Zoredache ในขณะที่ฉันคิดว่าความคิดเห็นของคุณเป็นสิ่งที่สร้างสรรค์มากเราควรจะบอกว่าพวกเขาทุกคนจะมีคุณค่าที่ดีเหมือนกันเพราะมันจะสืบทอดมาเมื่อทำการฟอร์กซึ่งควรจะเป็นคำตอบที่แท้จริงของคำถาม
Florin Asăvoaie

3
@ FlorinAsavoaie ถ้าคุณคิดว่าควรจะเป็นคำตอบแล้วโปรดเพิ่มมัน ฉันเพิ่มความคิดเห็นข้างต้นของฉันเป็นวิธีในการทดสอบสิ่งต่าง ๆ เพราะโดยส่วนตัวแล้วฉันไม่มั่นใจ 100% ว่าจะเกิดอะไรขึ้นและฉันตัดสินใจที่จะหาคำสั่งที่สามารถแสดงค่าที่ดีพร้อมการเรียกใช้ที่หลากหลาย ฉันอยู่ในค่ายที่มีแนวโน้มที่จะชอบการทดสอบจริงที่แสดงให้เห็นถึงสิ่งต่าง ๆ ที่พวกเขาปฏิบัติตามที่ควรจะเป็น
Zoredache

@FlorinAsavoaie ผมจะคิดอย่างนั้นเหมือนกัน แต่มองไปที่serverfault.com/a/626576/117546
emory

คำตอบ:


104

มีความแตกต่างเป็นสิ่งสำคัญ

หากคุณต้องการลดลำดับความสำคัญของกระบวนการใบสั่งไม่สำคัญ ในทางกลับกันถ้าคุณต้องการที่จะเพิ่มความมันคุณต้องใส่ก่อนsudonice

เนื่องจากคุณใช้คำสั่งในฐานะผู้ใช้ปกติ (ไม่เช่นนั้นคุณจะไม่สนใจ sudo เลย) คุณสามารถลดลำดับความสำคัญของคำสั่งของคุณได้ แต่ถ้าคุณใช้sudoก่อนคุณสามารถเพิ่มได้ถ้าคุณต้องการ


21
ขอแสดงความยินดีคุณชนะ
Michael Hampton

2
นี่เป็นประเด็นที่สำคัญมากแม้ว่าคำตอบจะสมบูรณ์ก็ต่อเมื่อคุณอธิบายว่าทำไมคำสั่งซื้อจึงไม่สำคัญในกรณีพื้นฐาน (อย่างที่ Michael ทำในคำตอบของเขา)
การแข่งขัน Lightness กับ Monica

16

หากคุณเปิดใช้nice sudoงานพรอมต์สำหรับรหัสผ่านของคุณก็จะถูกลบเลือนด้วยเช่นกัน แต่เนื่องจากคุณใช้เวลานานกว่าในการพิมพ์รหัสผ่านมันจึงไม่สำคัญมากนัก

ในฐานะที่เป็น ThoriumBR ตั้งข้อสังเกตถ้าคุณกำลังลดลำดับความสำคัญแล้วเพื่อที่จะไม่เกี่ยวข้อง แต่ถ้าคุณต้องการที่จะเพิ่มความสำคัญแล้ว (ตั้งแต่นี้จะต้องทำเป็น root) sudo niceคุณต้องใช้

ไม่อย่างนั้นฉันไม่สามารถจินตนาการถึงความแตกต่างที่แท้จริงได้


2

การใช้'หลักการของสิทธิ์น้อยที่สุด'คุณควรรันโปรแกรมที่มีสิทธิ์ใช้งานรูทหากต้องการใช้งานและจากนั้นปล่อยอีกครั้งทันทีที่คุณไม่ต้องการใช้งานอีกต่อไป

ดังนั้นใช่มีความแตกต่างถ้ามีการใช้ประโยชน์จากความดีผู้โจมตีสามารถเรียกใช้รหัสที่มีสิทธิ์เช่นเดียวกับโปรแกรมที่ดี

นอกจากนี้ sudo รีเซ็ตสภาพแวดล้อมของคุณดังนั้นมันอาจทำให้เกิดผลข้างเคียงได้ลอง

$ 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

ดังนั้นคำสั่ง 'ดี' ที่คุณเรียกใช้ผ่าน sudo จริง ๆ แล้วอาจเป็นไบนารีที่แตกต่างกัน

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

2

ตอบช้า:

หากเข้าถึง sudo ของคุณจะถูก จำกัด ให้โปรแกรมบางอย่าง ( fooและbarตัวอย่าง) แล้วคุณจะไม่ได้มีอำนาจในการทำงานแต่จะได้รับอนุญาตให้ทำงานsudo nice foonice sudo foo

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.