내 사용자로 크론 작업을 설정하려고 합니다. 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
Mark Plotnick이 언급한 솔루션은 나에게 효과가 없었지만 내 사용자를 그룹에 추가한 후에는 crontab
효과가 있었습니다.
sudo adduser myname crontab
이 변경 사항을 적용하려면 로그아웃했다가 다시 로그인해야 합니다.
답변3
우분투 22.04에서:
crontab ~/admin/scripts/crontab.txt
/var/spool/cron/: mkstemp: 권한이 거부되었습니다.
$ ls -lha $(which crontab)
-rwxr-sr-x 1 루트 crontab 39K 2022년 3월 23일/usr/bin/crontab
~$ ls -lha /var/spool/cron/crontabs
ls: '/var/spool/cron/crontabs' 디렉터리를 열 수 없습니다: 권한이 거부되었습니다.
~$ sudo ls -lha /var/spool/cron/crontabs
총 8000개
drwx-wx--T 2 루트 systemd-journal 4.0K 2023년 3월 2일.
drwxr-xr-x 3 루트 루트 4.0K 7월 22일 09:48 ..
따라서 권한을 얻기 위해 실행하려면 두 개의 사용자 그룹이 필요합니다.
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