이 규칙을 crontab 하단에 추가했습니다.
* * * * * /root/test.sh
기본적으로 iptables를 재설정하여 어울릴 수 있습니다. 내가 망쳐도 나는 내 상자에서 갇히지 않습니다. Bash에서 스크립트를 실행하면 /root/test.sh
예상대로 모든 것이 지워집니다. 그런데 기다리면 실행이 안되는 것 같습니다.
아래 명령을 실행했는데 1분마다 스크립트가 실행되는 것 같지만 스크립트가 아무 작업도 수행하지 않는 것을 볼 수 있습니다.
grep CRON /var/log/syslog
IIRC에서 스크립트를 소유자로 강제 실행하는 방법은 chmod a+s file
. 그래서 그것이 내가 한 일입니다. stat
이 줄을 보여주세요
Access: (6755/-rwsr-sr-x) Uid: ( 0/ root) Gid: ( 0/ root)
cron이 내 스크립트를 루트로 실행하면 안 되나요? 왜 실행되지 않는 것 같나요? 저는 Debian 7을 실행하고 있습니다. (헐떡임)
답변1
SUID 권한으로는 스크립트(바이너리 제외)를 실행할 수 없습니다. 스크립트가 실행 중이지만 루트가 아닌 사용자이므로 호출이 iptables
작동하지 않습니다.
크론 작업의 오류 메시지는 로컬 이메일로 전송됩니다. 로컬 이메일이 올바르게 구성되었는지 확인하세요(일부 배포판에서는 기본적으로 이 작업을 수행하지 않음).
루트 액세스 권한이 있으므로 간단한 해결책은 루트 사용자의 crontab에 스크립트를 설치하거나 /etc/crontab
다음 줄을 사용하는 것입니다.
* * * * * root /root/test.sh