克朗德权限

克朗德权限

我在 CentOS 服务器中遇到权限问题。

我创建了一个 NetCore 应用程序,它从 dmidecode 读取一些值。当我在 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 读取序列号时,我们需要 root 权限,但我当前使用 crontab 的帐户已经是 root 帐户。

答案1

对于遇到此类问题的任何人,我设法通过使用绝对路径解决我的问题。

看起来 cron 在相对路径方面存在一些问题......

基本上而不是有:

 dmidecode

我有:

 /usr/sbin/dmidecode

这对我来说很有效。

相关内容