crontab -e выдает: /var/spool/cron/: mkstemp: Отказано в доступе

crontab -e выдает: /var/spool/cron/: mkstemp: Отказано в доступе

Я пытаюсь настроить задание cron под своим пользователем. Я запускаю crontab -e, вношу изменения и пытаюсь сохранить и выйти. Я получаю следующее сообщение об ошибке /var/spool/cron/: mkstemp: Permission denied.

Соответствующий вывод ls -al /var/spool/cron/crontabs

drwxr-xr-x 2 root crontab 4096 Nov  4 10:09 .
drwxr-xr-x 5 root root    4096 Nov 19  2014 ..
-rw-rw-rw- 1 greg crontab   91 Nov  4 11:04 greg
-rw------- 1 root crontab 1231 Oct 29 16:18 root

Я могу напрямую редактировать файл greg и сохранять его, но я все равно не могу запустить задание, даже если перезапускаю cron после его обновления. Что мне нужно сделать, чтобы исправить эту проблему?

Вывод ls -lha $(which crontab):

-rwxr-sr-x 1 root crontab 36K Feb  8  2013 /usr/bin/crontab

Вывод groups greg:

greg : greg adm sudo crontab lpadmin sambashare

решение1

Это решит вашу непосредственную проблему:

chmod u=rwx,g=wx,o=t /var/spool/cron/crontabs

Но если вы можете загрузить пакеты, более надежный способ исправить это — переустановить apt-getсоответствующий пакет:

root@ubuntu# dpkg-query -S /var/spool/cron/crontabs
cron: /var/spool/cron/crontabs
root@ubuntu# apt-get install --reinstall cron

предварительно убедившись, что все локальные изменения, внесенные вами в /etc/init/cron.conf, /etc/default/cron, и т. д., скопированы куда-то и затем применены повторно.

решение2

Решение, предложенное Марком Плотником, у меня не сработало, однако после добавления моего пользователя в crontabгруппу оно заработало:

sudo adduser myname crontab

Чтобы изменения вступили в силу, вам придется выйти из системы и войти снова.

решение3

В Ubuntu 22.04:

crontab ~/admin/scripts/crontab.txt

/var/spool/cron/: mkstemp: Отказано в доступе

$ ls -lha $(which crontab)

-rwxr-sr-x 1 root crontab 39K 23 марта 2022 г. /usr/bin/crontab

~$ ls -lha /var/spool/cron/crontabs

ls: невозможно открыть каталог '/var/spool/cron/crontabs': Отказано в доступе

~$ sudo ls -lha /var/spool/cron/crontabs

всего 8.0К

drwx-wx--T 2 root systemd-journal 4.0K 2 марта 2023 г. .

drwxr-xr-x 3 root root 4.0K 22 июля 09:48 ..

Итак, нам нужны 2 группы для выполнения пользователем, чтобы получить привилегии:

sudo usermod -a -G systemd-journal <user>
sudo usermod -a -G systemd-journal <user>

Выйдите из системы и войдите снова под именем пользователя ...

crontab ~/admin/scripts/crontab.txt

crontab -l

0 */1 * * * ~/admin/scripts/elasticsearch_flush.sh > /dev/null 2>&1

Связанный контент