crontab: "임시 crontab은 더 이상 당신의 것이 아닙니다."

crontab: "임시 crontab은 더 이상 당신의 것이 아닙니다."

Linuxmint 18 Cinnamon 64비트에서 Linuxmint 17.3 Cinnamon 64비트로 되돌렸는데 더 이상 크론 작업을 생성할 수 없습니다. 별도의 루트(/) 및 홈(/home/my-user-name) 파티션이 있고 17.3을 설치할 때 홈 파티션을 변경하지 않고 그대로 두었습니다.

크론 작업을 생성하는 데 여러 가지 어려움이 있어서 gnome-scheduler를 설치하고 이런 식으로 크론 작업을 생성해 보았습니다. 다음과 같은 경고 대화 상자가 나타납니다.

"경고: 실행된 작업의 작업 디렉터리"

메시지 내용은

"작업이 실행되는 작업 디렉터리에 대한 참고 사항: 반복 작업은 홈 디렉터리에서 실행됩니다."

확인을 클릭하면 작업이 터미널에 다음과 같이 표시됩니다.

$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4

내 배경화면은 매 순간 바뀌지 않습니다. 스크립트는 명령줄에서 제대로 실행되고 출력이 생성되지 않습니다. 이 스크립트의 권한은 8진수 744입니다. 이 모든 것은 Mint 18에서 잘 작동하지만 스크립트는 하루에 한 번만 실행했습니다. 테스트 목적으로 1분마다 실행되도록 설정했습니다.

일반적인 cron 작업 편집 방법을 시도하면

$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab

그런 다음 주석 줄로 채워진 일반 crontab 템플릿 대신 빈 Nano 버퍼를 얻습니다. /tmp/crontab.lmuwIe/crontab 파일에 나노버퍼를 쓰려고 하면 다음 오류 메시지가 나타납니다.

[/tmp/lmuwIe/crontab에 쓰는 중 오류 발생: 권한이 거부되었습니다.]

마침내,

$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb  9  2013 /usr/bin/crontab

크론 작업을 다시 생성할 수 있나요?

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

@Gilles 글쎄요, 저는 먼 길을 왔습니다. cron을 다시 설치하여 이상한 오류를 모두 제거했습니다. 이제 모든 것이 내가 사용했을 때와 마찬가지로 잘 작동합니다.

$ crontab -e

와는 별개로수년 동안 사용해 온 스크립트가 작동하지 않습니다.

하지만 다른 스크립트는 실행되므로 길을 잃었습니다.

이것이 내가 지금 가지고 있는 것입니다:

$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt

(크론 작업 전에 20줄 이상의 주석을 포함하지 않았습니다.)

날짜 작업은 정상적으로 실행되지만 wallpaper_changer.sh 작업은 아무 작업도 수행하지 않습니다. 나는 수년 동안 이 방법을 사용해 왔지만 지금은 작동하지 않습니다. 스크립트는 명령줄과 cron에서 제대로 실행됩니다.

$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun  2 14:30 /home/my-user-name/wallpaper_changer.sh

$ echo $DISPLAY
:0.0

어떻게 되어가나요?

답변1

crontab 바이너리에 대한 권한을 편집하고 새로 설치했을 때의 권한으로 다시 설정해야 합니다.

작동하지 않는 권한:

ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

루트로 실행되거나 sudo를 사용하여 실행되는 작업:

chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab

작업 권한:

ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

새로운 작업 설치에서 가져온 작업 권한은 설치 중에 설정되었습니다.

나중에 왜 바뀌었는지 모르겠네요.

답변2

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

귀속이 /var/spool/cron/crontabs/my-user-name잘못되었습니다. 당신이 주인이 되어야 합니다. 이것은 cron이 파일을 덮어쓸 수 없는 이유를 설명합니다. 또한 파일은 일반적으로 crontab그룹 에 속 하지만 그게 중요하지 않다고 생각합니다.

다음을 실행하여 이 문제를 해결할 수 있습니다.

sudo chown my-user-name /var/spool/cron/crontabs/my-user-name

이 문제의 원인이 무엇인지, 시스템 저하와 어떤 관련이 있는지 모르겠습니다. 근본적인 문제는 다른 문제로 이어질 수 있습니다.

관련 정보