crontab: "임시 crontab은 더 이상 귀하의 소유가 아닙니다."

crontab: "임시 crontab은 더 이상 귀하의 소유가 아닙니다."

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

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

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

메시지 내용은

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

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

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

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

일반적인 cron 작업 편집 방법을 시도하면 다음과 같은 결과가 나타납니다.

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

그런 다음 주석 처리된 줄로 가득 찬 일반 crontab 템플릿이 아닌 빈 나노 버퍼를 얻습니다. 나노 버퍼를 /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

이 문제의 원인이 무엇인지 모르고 이것이 시스템 다운그레이드와 어떻게 관련될 수 있는지 알 수 없습니다. 근본적인 문제로 인해 다른 문제가 발생할 수 있습니다.

관련 정보