Почему пользователи Unix не могут ренить вниз?

2646
Jé Queue

Я знаю, что пользователи без полномочий root могут увеличивать процесс, но не снижать приоритет процесса .

$ nice yes >/dev/null & p=$! $ renice 15 -p $p  8414: old priority 10, new priority 15 $ renice 12 -p $p renice: 8414: setpriority: Permission denied $ kill $p 

Я понимаю, что как пользователь без полномочий root у меня не должно быть возможности (пере) переписать процесс на отрицательную приятную территорию, или этот root мог запустить процесс от моего имени на более высоком приятном уровне.

Вопрос в том, по какой логической причине пользователь без полномочий root не может сдавать в аренду свой обработанный нисходящий поток, даже если просто не доходить до первоначального приоритета, в котором он был установлен?

3

3 ответа на вопрос

6
John T

Если пользователи root могут переориентировать процесс другого пользователя, поскольку он использует слишком много ресурсов, пользователь не сможет обойти это и изменить его обратно.

Если бы мы не считали хорошие значения [-20, -1] системными приоритетами по сравнению с пользовательским «пространством» [0,19], я понимаю, что вы говорите, но я убежден, что пользовательские процессы должны быть в состоянии изменить приоритеты себя или своих детей ... хотя бы из базового приоритета, установленного root? Jé Queue 14 лет назад 0
Да, но пользователь root может понять, что базовый приоритет был слишком высок, и перераспределить все процессы определенных пользователей (`renice -u user ...`). Я видел, как системный администратор моей школы делал что-то похожее на наши процессы, когда он выполнял пакетные задания, чтобы это заканчивалось быстрее. John T 14 лет назад 0
4
Craig Gidney

Потому что тогда у программ будет стимул расставлять приоритеты за счет всей системы.

Не обязательно. Например, пользователь Renice не может упасть ниже 0. Jé Queue 14 лет назад 0
... который по-прежнему будет давать процессу более высокий приоритет, чем всем другим процессам, работающим на 20. njd 14 лет назад 0
4
Egon

renice изменяет точность программы - большее число означает меньший приоритет.

Я предполагаю, что причина в том, что начальная милость, вероятно, не запомнена - только текущая ценность милости. Так что нет хорошего способа определить, может ли пользователь сдать в аренду программу с более высоким приоритетом. (Это предположение ... Может быть, кто-то может это проверить?)