Я работаю над веб-интерфейсом (доступ только через интранет, а не через Интернет). При нажатии кнопки на странице PHP скрипт Python выполняет несколько действий и, в конце концов, ему необходимо выполнить команду cp от имени пользователя root.
Я поискал различные решения и решил использовать тот, который предлагал предоставить пользователю apache доступ к sudo без пароля только для команды / bin / cp. Итак, я отредактировал файл sudoers, чтобы предоставить sudo доступ к apache без пароля только для команды cp, и он работал нормально. Но на следующий день я обнаружил, что добавленная мною строка отсутствует. Я не уверен, происходит ли какое-то регулярное обновление, которое перезаписывает файл sudoers.
Пожалуйста, помогите мне найти возможное решение этой проблемы.
Почему именно команда cp должна выполняться от имени пользователя root? Не могли бы вы настроить права собственности и разрешения для каталогов, из / в которые вы копируете, чтобы пользователь apache мог выполнять копирование без прав root?
Ни в одном известном мне дистрибутиве нет автоматизированного процесса, который бы делал это.
Чтобы отладить это, вы должны сделать несколько вещей: во-первых, проверить время последнего изменения. (ls -l /etc/sudoers
) Большой показатель того, что это автоматизированный процесс, - это то, что он происходит прямо в час, например, в 02:00. Вы можете проверить файлы cron (/etc/crontab
, /etc/cron.d/*
, /etc/cron.{hourly,daily,monthly,weekly}
) для всего, что не выглядит нормально (или всего), ищет все, что анализирует и / или записывает в /etc/sudoers
. И наконец, вы можете проверить root ~/.bash_history
или спросите об этом коллег: может быть, один из них восстановил из резервной копии или случайно перезаписал ваши изменения.
ПРИМЕЧАНИЕ. Никогда не редактируйте файл sudoers напрямую. Это может привести к тому, что файл sudoers нельзя будет использовать. Команду visudo следует использовать для управления записью sudoers, поскольку синтаксис этой команды в основном проверяет файл, чтобы предотвратить неправильные записи файла, и блокирует возможность редактирования файла кем-либо еще. Мне интересно, может ли это быть частью проблемы в том, что кто-то сделал visudo и по какой-то причине выкинул запись.