저는 Python 스크립트를 작성 중이며 /var/log/ 폴더에 664 권한이 있는 파일을 만들었습니다.
Python 스크립트는 생성된 파일에 로그를 쓸 수 없습니다. IDK 이유는 파일 소유자가 ubuntu(aws의 기본 사용자)이기 때문입니다.
파일에 대한 읽기 및 쓰기 권한을 부여하는 데 매우 주의를 기울였습니다.
권한 거부 문제로 인해 예약된 crontab이 애플리케이션을 실행할 수 없습니다. 어떤 아이디어가 있나요?
i) crontab을 설정하는 데 사용되는 명령 - crontab -e
ii) Python 스크립트를 실행하는 crontab 라인 - */30 * * * * python3 /home/ubuntu/message_initiator.py
iii) 정확한 오류 메시지 -Permission denied: '/var/log/ice-message-initiator.log'
답변1
당신이 달리면
ll -d /var/log
root
syslog
그러면 이 파일이 (아마도 그룹) 소유이고 755 또는 775 권한이 있음 을 알 수 있습니다 . 즉, 다른 사람은 디렉터리를 읽고 탐색할 수 있지만 다른 사람 root
만 syslog
수정할 수 있다는 의미입니다. 수정 권한이 없는 해당 소유자입니다. 즉 , ice-message-initiator.log
파일 이든 디렉터리이든 해당 내용을 수정할 수 없습니다. 사용자가 파일을 읽을 수 없기 때문에 오류가 발생하는 것이 아니라 상위 디렉터리에 대한 수정 권한이 없어 파일을 쓸 수 없기 때문에 발생합니다 ./var/log
ubuntu
ubuntu
/var/log
ubuntu
/var/log
cronjob이 작동하도록 하려면 이를 실행 root
하거나 하위 디렉터리에 로그 파일을 쓰도록 하고 /var/log/ice
수정 권한을 부여해야 합니다.ubuntu