Как избежать запроса пароля для sudo для crontab сценариев?

Мне нужно это, новый пользователь мог выполниться sudo без любого запроса пароля, потому что этот пользователь имеет в crontab a .sh это использует sudo для некоторых команд.

Я создал нового пользователя на своем сервере человечности 16,04 x64

adduser my-user sudo
gpasswd -a my-user sudo

Затем использование visuo я добавил эту строку, на основе этого вопроса

my-user ALL=(ALL) NOPASSWD : ALL

Затем перезагруженный

После перезагрузки я вошел в систему с помощью my-user и попробованный, чтобы сделать ясный sudo, но это спрашивает меня sudo пароль.

Примечание: Я добавил использование crontab crontab -e my-user таким образом, я предполагаю, что мой сценарий выполняется как my-user. На самом деле, crontabbed катастрофические отказы сценария, говоря мне в журнале о a sudo запрос пароля. Я действительно должен выполнить сценарий таким образом, чтобы смочь создать файл с my-suer как владелец.

Скажите мне, если некоторые шаги/строки были не нужны и как сделать способным my-user выполниться sudo без запроса пароля.

Спасибо

PS: Я замеченный этот вопрос, но я не могу сделать его работающий, таким образом, мне нужно более точное объяснение, потому что моя ситуация отличается: я запускаю crontab скрипт, и мне нужен он, не просят sudo пароль

1
задан 13 April 2017 в 15:25

1 ответ

Иногда выполняя процесс от корня crontab может вызвать проблемы с начальной принадлежностью файла и rwx режим; они не могут быть правильно сохранены.

В любом случае:

1) для создания нового пользователя сохраните это простым:

 $ sudo deluser my-user  # if "my-user" is a regular user
 $ adduser my-user
 $ sudo gpasswd -a my-user sudo

2) включать новую запись с a NOPASSWD тег в sudoers или в файле (например. /etc/sudoers.d/60_my-user_rules), заставьте двоеточие придерживаться тега, т.е. NOPASSWD:
Я не видел его прежде с вкрапленным пространством, и Ваше правило становится:

 my-user my-host = NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]

Добавление (ALL) перед NOPASSWD: является дополнительным как значения по умолчанию правила к (ALL:ALL) так или иначе. Можно однако хотеть к не, только выполняет cmd/script с полномочием пользователя root, но также и выполняет его как любого данный пользователь (spec-user) или как член данной группы (spec-group) или оба. В этом случае правило становится:

 my-user my-host = ([spec-user][:spec-group]) NOPASSWD: /full/path/to/cmd [parameter1 [| parameter2 [| ...]]]

Это на самом деле ограничит Ваше sudo расположение без пароля одним пользователем, одним хостом и одной командой. Можно укрепить это правило путем определения дополнительного параметра (параметров) к той команде. В этом случае правило будет применяться только для того точного параметра (параметров).
Для сценариев Вы могли далее укрепить это правило путем обеспечения, что правило применяется, только если сценарий не был изменен всегда. Это - способ избежать угона сценария. Это сделано посредством cmd-искажения и определения сумм SHA в /etc/sudoers.d/60_my-user_rules.

HTH. Сообщите, испытываете ли Вы проблемы с тем ответом.

4
ответ дан 3 December 2019 в 06:57

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

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