1

Мой пользователь "craig" находится в /etc/sudoers на моей виртуальной машине CentOS 5.6, однако, когда я пытаюсь получить доступ к crontab с помощью команды ниже, мне выдается сообщение об ошибке:

sudo crontab -e -u crmpicco-stock-dev
[sudo] password for craig:
Sorry, user craig is not allowed to execute '/usr/bin/crontab -e' as root on dev.localdomain.

Почему я получаю это сообщение, как я вижу в своем /etc/sudoers что могу получить доступ к запрошенному crontab.

Вот запись из моего файла /etc/sudoers :

craig   ALL=(crmpicco-stock-dev) /usr/bin/crontab, /var/spool/cron/crmpicco-stock-dev

3 ответа3

1

Спецификация ALL=(crmpicco-stock-dev) /usr/bin/crontab означает, что на ALL хостах вам разрешено запускать /usr/bin/crontab в качестве пользователя crmpicco-stock-dev . Это не означает, что sudo будет всякий раз, когда вы пытаетесь запустить /usr/bin/crontab , автоматически выбирать это как crmpicco-stock-dev - по умолчанию все еще root , что не разрешено конфигурацией, и сообщение об ошибке выдает его : Sorry, user craig is not allowed [...] as root .

Попробуйте запустить sudo -u crmpicco-stock-dev crontab -e . Это скажет sudo что вы хотите быть crmpicco-stock-dev и вызвать /usr/bin/crontab , что должно быть разрешено; По умолчанию crontab -e попытается отредактировать crontab текущего пользователя - это будет crmpicco-stock-dev , поэтому вам не нужно указывать это снова.

Поместив -u crmpicco-stock-dev после первого неопционального параметра, sudo примет это за часть команды, которую вы хотите выполнить, и проигнорирует ее. Вся линия выглядит одинаково, но означает что-то совсем другое.

0

Можете ли вы попробовать сделать:

sudo crontab -u crmpicco-stock-dev -e

С man-страницы это кажется правильным порядком.

С уважением

0

Я считаю, что вам придется обратиться к системному администратору, чтобы помочь вам в устранении проблемы. Я подозреваю, что это какой-то тип артефакта из вызовов setuid() или seteuid() в sudo и из-за того, что вы вызываете программу SUID. Я видел это раньше, и это очень расстраивает исправить.

Как я мог бы начать это исправлять, пытаясь поместить вызов crontab в исполняемую программу-оболочку без каких-либо специальных разрешений и используя вместо этого sudo для вызова программы-оболочки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .