Користувач x не може використовувати цю програму (crontab)


9

Ubuntu 14.04

Я не розумію поведінки, яку я бачу під час налаштування crontab для сервісного (без входу) облікового запису (названого curator).

Коли я ввійшов як root, це я отримую:

# crontab -u curator -l
The user curator cannot use this program (crontab)

Але, коли я переходжу на обліковий запис користувача, він працює добре:

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

У системі є порожній /etc/cron.allowфайл і жоден /etc/cron.denyфайл. Відповідно до man crontab:

Якщо файл /etc/cron.allow існує, то ви повинні бути вказані в ньому (один користувач на рядок), щоб дозволити використовувати цю команду. Якщо файл /etc/cron.allow не існує, але файл /etc/cron.deny існує, тоді ви не повинні бути вказані у файлі /etc/cron.deny, щоб використовувати цю команду.

Я розумію помилку під час запуску першої команди, але чому вона дозволяє мені запускатись, crontabколи я явно перемикаюся на обліковий запис користувача?

Додавання користувача /etc/cron.allowзмушує обидві команди працювати нормально.


1
Це просто говорить, що немає кронтабу. Що станеться, якщо ви спробуєте створити його через crontab -e(як куратор користувача)?
Фіксиман

1
Неможливо відтворити цю проблему на бродячому вірному64 зображенні; з порожнім cron.allowфайлом, як root crontab -u vagrant -lі crontab -lяк vagrantрезультат, у are not allowed to use this programповідомленні (яке відрізняється від повідомлення, яке ви цитуєте).
трилик

Відповіді:


11

Я перевірив джерела crontab і виявив, що якщо користувач не може відкрити /etc/cron.allow(наприклад, після chmod 0 /etc/cron.allow), crontab вважає, що користувачеві дозволено використовувати його (як би cron.allowне існувало).

Але root може читати будь-який файл, тому код перевірки crontab працює як очікувалося. Тому я рекомендую вам перевірити перші дозволи на /etc/cron.allow, а можливо, журнали аудиту SELinux / AppArmor.


Здається, це все - я переконався, що chmod -r /etc/cron.allowсправді викликає описану поведінку на моїй системі Ubuntu 14.04
steeldriver

Пляма на! Мої /etc/cron.allowдозволи були 600, змінивши їх на 644обидва rootі curatorпобачивши not allowed to use this program (crontab)повідомлення. Потім, після додавання curatorдо /etc/cron.allowобох, можна було б використовувати кронтаб куратора.
Адам Міхалик
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.