Хорошая команда без прав root

Мне нужно запустить dosemu с nice --20 из скрипта. Проблема в том, что отрицательное значение может быть применено только с sudo.

Знаете ли вы, как запустить команду nice без sudo или просто запустить nice --20 dosemu из сценария?

6
задан 26 June 2013 в 00:46

3 ответа

К сожалению, я не думаю, что это легко выполнимо.

, Если Ваши dosemu обрабатывают выполнения как отдельного пользователя, то можно установить приоритет всех процессов того пользователя к отрицательной величине с помощью /etc/security/limits.conf.

РЕДАКТИРОВАНИЕ: глупый меня, Вы не можете создавать suid сценарий оболочки, который просто не работает.

EDIT2: хорошо, можно настроить sudo, таким образом, что он не требует, чтобы Вы дали пароль, когда кто-то от sudo группы работает хороший или renice. В окне терминала войдите

sudo visudo

, Это откроет простого текстового редактора, который отредактирует конфигурацию sudo. Добавьте следующую строку в конце файла:

%sudo   ALL = (ALL) NOPASSWD: /usr/bin/nice,/usr/bin/renice

Выход редактор. Редактор удостоверится, что синтаксис правилен (иначе, можно было повредить систему). Теперь, можно работать

sudo nice -n -20 sudo -u $USER /some/program

, и Вам не предложат пароль. На самом деле, хороший запустит другой процесс, названный sudo с-20 приоритетами. Этот новый процесс sudo переключится назад на Вашего исходного пользователя (-u $USER, иначе Вы выполнили бы/some/program как корень), и запускает/some/program.

4
ответ дан 26 June 2013 в 00:46

попробуйте это:

sudo -k nice -n -20 su -c "dosemu" $USER

, в то время как это работает, выполняет это:

ps -A --forest -o pid,user,command |grep dosemu

Вы будете видеть, что nice был выполнен с полномочиями пользователя root, но dosemu был выполнен как нормальный $USER.

Understandind, насколько безопасный это : для создания этого уверенным, что нет никакого дефекта попробуйте это, где Вы будете видеть, что это спрашивает времена пароля 2, потому что sudo ls выполняется как нормальный $USER, таким образом, сценарий с sudo на нем невидимая работа привычки:

sudo -k nice -n -5 su -c "sudo ls" $USER

и это спросит пароль только один раз, поскольку это является уже корневым к sudo ls:

sudo -k nice -n -5 su -c "sudo ls" root

пз.: вместо dosemu, для тестов, я использовал sleep 120, и sudo -k для увеличенной безопасности.

1
ответ дан 26 June 2013 в 00:46

Попытка: sudo -s -H

Это регистрирует Вас в как корень, после которого Вам не будет нужен sudo.

Затем запускает Ваш скрипт.

0
ответ дан 26 June 2013 в 00:46

Другие вопросы по тегам:

Похожие вопросы: