Должны сценарии, которые требуют сбоя sudo, если они не имеют его или используют sudo и подсказку?

Можно попытаться использовать imwheel, поскольку нет никакой опции устанавливать это в X конфигурациях в настоящее время.

26
18.03.2014, 21:02
7 ответов
Лично я бы использовал другой подход. Сделай псевдоним для своего сценария. Добавьте эту строку в свой [115208]~/.bashrc[115209] (или эквивалент в других оболочках)

  1. Таким образом, вам не нужно будет беспокоиться о том, чтобы не забыть запустить его с [115210]sudo[115211] и вам не нужно будет добавлять [115212]sudo[115213] в скрипт. Он будет полностью прозрачен для вас и просто спросит ваш пароль, когда вы попробуете запустить [115214]sudo[115215].[114706].
27
27.01.2020, 19:40
[115052] В качестве альтернативы вы можете добавить [12230] в свой файл [115729] /etc/sudoers[115730].[115055].
3
27.01.2020, 19:40
[114793] Вы указываете [115323] настройку подсветки садо, потому что ~/bin не находится в $PATH в среде садо

Так почему от этого зависит? Я думаю, что вы должны просто изменить эту строку на [115325]/home/user/bin/backlight-adjust[115326] и это сработает.

  • Но мне бы очень хотелось, чтобы решение Тердона об использовании псевдонима тоже сработало. Или вы можете поместить свой скрипт в [115327]/usr/bin/[115328] и он будет доступен для каждого пользователя (включая root)[114798].

2
27.01.2020, 19:40
[116191] Я лично использую в своих скриптах что-то вроде [116576]${SUDO}[116577], чтобы вызывающая сторона могла установить его при необходимости, или [116578]${SUDO:-sudo}[116579], чтобы использовать его по умолчанию.

В вашем конкретном случае, однако, я согласен с принятым ответом.[116194]

0
27.01.2020, 19:40
[114872] Поместите скрипт (без [115461]sudo[115462]) в нужное пользовательское место, например [115463]/bin[115464], а затем сделайте это:

Это работает путем установки флага setuid, что означает, что он всегда будет выполняться как владелец файла. За подробностями обращайтесь, пожалуйста, к [115465]http://major.io/2007/02/13/chmod-and-the-mysterious-first-octet/[115466]. Я не очень много знаю о том, как это работает, я просто нашел это в гугле, основываясь на кое-чем, что я думал, что прочитал несколько лет назад.[114875].

-1
27.01.2020, 19:40

Я не вижу причин, почему это может быть неправильно --- хотя обычно я предпочитаю, чтобы команды не спрашивали меня о чем-то, чтобы их можно было написать. Вы можете подправить /etc/sudoers, чтобы sudo работал без пароля.

Но... почему бы не добавить

chgrp  one-of-your-groups-here /sys/class/backlight/acpi_video0/brightness     
chmod g+w /sys/class/backlight/acpi_video0/brightness 

в /etc/rc.local и забыть о sudo?

(В Ubuntu, если вы можете использовать sudo, вы находитесь в группе sudo, поэтому вы можете использовать chgrp sudo /sys... и быть довольным)

.
7
27.01.2020, 19:40

Не могу дать общее правило... если скрипт/программа предназначен для выполнения некоторой перенастройки (например, принтера) и вызывается обычными пользователями, то он должен быть. В противном случае я бы оставил все как есть: Если обычный пользователь запустит ее, она просто не выполнится (либо в результате явной проверки, либо просто потому, что ей не разрешено что-то делать).

Повышенные привилегии следует выдавать редко, если вообще выдавать. Переход к более высоким привилегиям - дело непростое, лучше доверить его экспертам (например, sudo(1)).

1
27.01.2020, 19:40

Теги

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