크론드 권한

크론드 권한

CentOS 서버에 권한 문제가 있습니다.

dmidecode에서 일부 값을 읽는 NetCore 애플리케이션을 만들었습니다. CentOS 서버에 애플리케이션을 배포할 때 다음 명령을 실행했습니다.

chmod 777 ApplicationName

그런 다음 실행하면 모든 것이 잘 작동합니다.

내 문제는 crond에서 응용 프로그램을 설정하려고 할 때 다음과 같이 수행한다는 것입니다.

1) service crond stop

2) crontab -e

3) * * * * * cd /ApplicationFolder && ./ApplicationName

4) service crond start

내 앱이 실행되지만 읽으려는 dmidecode 값을 가져올 수 없습니다. 콘솔 앱으로 실행하면 제대로 작동하므로 권한 문제가 있는 것으로 가정합니다.

다음을 수행하여 crond 라인에 사용자를 설정해 보았습니다.

 * * * * * root cd /ApplicationFolder && ./ApplicationName

하지만 아무 일도 일어나지 않고 앱이 시작되지도 않습니다...

내가 뭘 잘못하고 있는지 아는 사람 있나요?

편집하다

의견에서 제안한 대로 crontab을 다음과 같이 변경했습니다.

 * * * * * /ApplicationFolder/ApplicationName

하지만 똑같은 일이 일어나고 있습니다 ...

권한 관련 문제가 발생하는 이유는 프로그램을 애플리케이션으로 실행하면 값이 텍스트 파일에 기록되고, crond를 사용하여 애플리케이션을 실행하면 동일한 정보가 기록되지만 값이 기록되기 때문이라고 생각합니다. 비어 있는.

또한 dmidecode에서 일련 번호를 읽을 때 루트 권한이 필요하지만 현재 crontab을 사용하고 있는 계정은 이미 루트라는 내용도 읽었습니다.

답변1

이런 종류의 문제가 발생하는 경우 절대 경로를 사용하여 문제를 해결했습니다.

cron에 상대 경로에 문제가 있는 것 같습니다.

기본적으로 다음을 갖는 대신:

 dmidecode

나는 가지고있다:

 /usr/sbin/dmidecode

이것은 나에게 효과적입니다.

관련 정보