Как запустить команду sudo как sudo (!) Без пароля? (cryptsetup должен быть запущен как sudo для использования модуля ядра 'device-mapper')

Решено

Кроме того, чтобы не комментировать строку #includedir в / etc / sudoers out, отредактировать sudoers.d/myOverrides с помощью sudo visudo -f /etc/sudoers.d/myOverrides и использовать синтаксис, который я впервые попробовал, сделал свое дело.

И если вы не хотите быть таким идиотом, как я, не забудьте переопределить файл, удалив .tmp при сохранении visudo, и вы уверены, что ваш синтаксис правильный. Хотя это не было проблемой здесь, это легко могло быть; -)


Я хочу написать скрипт оболочки, который должен размонтировать и закрыть контейнер LUKS, запустив sudo cryptsetup luksClose XYZ.

Особенностью cryptsetup является то, что он использует модуль ядра device-mapper для управления контейнерами luks. Что я могу извлечь из руководства: оно опирается на этот модуль ядра, и нет способа обойти это.

Это означает, что он должен быть запущен как sudo, поэтому программа может позже вызвать устройство-маппер как root. Но вы также можете запускать его без sudo без ошибок, пока не будет вызвано устройство отображения.

Я попытался с помощью visudo остановить sudo, запрашивая pw, как долго вызывается sudo cryptsetup.

Сначала с помощью

user ALL=(ALL) NOPASSWD: /sbin/cryptsetup

, но я понял, что это не значит, что cryptsetup запускается как sudo, а просто больше не требует, чтобы sudo больше вызывалось. Что это не так, во-первых.

Затем я попытался обмануть его, используя / sbin / cryptsetup в качестве аргумента для / bin / sudo

user ALL=(ALL) NOPASSWD:/bin/sudo /sbin/cryptsetup

(Все время строка добавлялась внизу файла sudoers, чтобы сделать его последняя интерпретируемая строка)

Есть ли другой способ дать моей учетной записи пользователя разрешение на запуск "sudo cryptsetup luksClose XYZ" как есть, без PW? (Или что-то, чего мне не хватает в руководстве по cryptsetup)

РЕДАКТИРОВАТЬ: Я обычно использую PCManFM для управления контейнером, и мне не требуется ввод PW для закрытия контейнер (только для расшифровки) Что это за колдовство?

РЕДАКТИРОВАТЬ 2: Если нет простого ответа, я просто запусту скрипт как root при загрузке и заставлю его ждать ввода ключа от пользователя, вместо использования сочетаний клавиш для запуска двух отдельных сценариев открытия / закрытия. Думаю, таким образом мне вообще не нужно ничего делать NOPASSWD, и это хорошо.

Но я бы все равно хотел знать.

Спасибо заранее

1
задан 4 August 2019 в 01:43

1 ответ

Ваш первый синтаксис для использования без паролей cryptsetup правилен. Я использую это для псевдонима, который я создал для приостановки системы:

me        ALL=(ALL:ALL) NOPASSWD: /bin/systemctl suspend

Я все еще должен использовать sudo в своем псевдониме: alias quit='sudo systemctl suspend'

Я лично поместил бы точную команду, которую Вы хотите со всеми опциями, так, чтобы Ваши sudo полномочия были ограничены, что необходимо.

2
ответ дан 7 December 2019 в 13:15

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

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