atd 보고 권한이 거부됨

atd 보고 권한이 거부됨

나중에 실행되도록 예약된 작업을 사용한 후에는 작업을 시작하는 대신 at지정된 시간에 atd"권한 거부"가 보고됩니다 . /var/spool/cron/at*에 대한 권한이 정확합니다:

root@server /var/spool/cron # ls -la
total 20
drwxr-xr-x 5 root   root    4096 Okt 30  2014 .
drwxr-xr-x 6 root   root    4096 Okt 30  2014 ..
drwxrwx--T 2 daemon daemon  4096 Nov  1 17:57 atjobs
drwxrwx--T 2 daemon daemon  4096 Nov  1 17:57 atspool
drwx-wx--T 2 root   crontab 4096 Nov  1 17:34 crontabs

수동으로 보낸 명령을 실행하면 at모든 것이 잘 작동합니다.

답변1

운영 체제 사양을 보지 않고도 SELinux가 작동 중일 수 있다고 생각합니다.

활성화되어 있는지 확인하세요. 이 getenforce반환됩니다 Enforcing. 그렇다면 루트로 실행하고 setenforce permissive명령이 실행될 때 권한 거부 오류가 발생하는지 확인하십시오.

답변2

atd실행 이유에 대한 답변을 찾고 있지만 작업이 실행되지 않고 로그에 다음이 표시됩니다.

Nov 16 05:28:00 yourserver atd[15038]: Cannot create output file: Permission denied

시스템은 데비안 10 버스터입니다.

atd내가 알아차린 한 가지는 프로세스가 user 로 실행되고 있다는 것인데 daemon, 이로 인해 다음과 같은 결과가 발생합니다.데비안은 왜 "daemon" 사용자로 "atd"를 실행합니까?

좋아요

man atd파일 섹션에 몇 가지 유용한 정보가 있는 것으로 나타났습니다 .

       /var/spool/cron/atjobs The directory for storing jobs; this should be mode 700, owner daemon.

       /var/spool/cron/atspool The directory for storing output; this should be mode 700, owner daemon.

디렉터리에 이러한 권한과 소유권이 있는지 확인한 후에 모든 것이 예상대로 작동하기 시작했습니다.

이 특정 시스템의 경우 at이 시스템이 자주 사용되지는 않는 것 같습니다(그래서 지금까지 문제가 발견되지 않았습니다). 시스템은 수년에 걸쳐 이전 Debian 버전에서 업그레이드되었으므로 atd루트에서 데몬으로 실행을 변경할 때 디렉터리가 올바른(업데이트된) 권한과 소유권을 받지 못한 것 같습니다.

관련 정보