Кажется, я застрял между ограничением NFS и ограничением Cron.Как запустить команду как другой пользователь из корневого cronjob?
Итак, у меня есть root cron (на RHEL5), на котором запущен сценарий оболочки, который, помимо прочего, требует rsync для некоторых файлов поверх монтирования NFS. И файлы на монте NFS принадлежат пользователю apache с режимом 700, поэтому только пользователь apache может запускать команду rsync - запуск с правами root приводит к ошибке разрешения (NFS - это редкий случай, по-видимому, где пользователь root не все-мощные?)
Когда я просто хочу запустить rsync вручную, я могу использовать «sudo -u apache rsync ...» Но sudo no workie in cron - он говорит «sudo: извините, вы должен иметь tty для запуска sudo ».
Я не хочу запускать весь скрипт как apache (т. Е. Из crontab apache), потому что другие части скрипта требуют root - это просто одна команда, которая должна запускаться как apache. И я бы предпочел не изменять режим в файлах, поскольку это потребует значительных изменений в других приложениях.
Должен быть способ выполнить «sudo -u apache» от cron ??
спасибо! отнимают
Возможно, лучше всего переместить это на SuperUser.com. – Robert
Это старый вопрос, но все же нашел его довольно высоким в поисковых рядах, и ни один из ответов не объясняет, почему права root не применяются к монтированию NFS. Для кого-то другого, спотыкающегося об этом, причина в root_squash. В этом блоге есть довольно приличное объяснение, почему этот параметр необходим и обычно устанавливается по умолчанию. http://fullyautolinux.blogspot.com/2015/11/nfs-norootsquash-and-suid-basic-nfs.html – BryKKan