【问题标题】:Permission denied while running shell script from crontab从 crontab 运行 shell 脚本时权限被拒绝
【发布时间】:2015-10-26 12:10:43
【问题描述】:

我在 Linux 中登录我的 id,然后以 超级用户 身份登录,因为我没有主目录。当我在 crontab 上设置它时,我收到一个错误:

 /bin/sh: /export/home/****/somefoldername/Check.sh: Permission denied.

我已通过以下命令授予对文件的完全访问权限:

chmod 777

请告诉我如何解决这个问题。

【问题讨论】:

  • crontab 进程(其用户)还必须有权访问文件夹 somefoldername。而且,如果 /export/home 位于网络文件系统上(顾名思义 ;-) ),运行 crontab 进程的用户必须对网络文件系统具有特权。在这种情况下,解决方案取决于您的设置。请您的网络管理员帮助您。
  • somefolername 是超级用户。我没有主目录,所以我以 su - somefoldername 身份登录并从那里安排。
  • 您通过在命令行上调用su - somefoldername 切换到不是超级用户(root)的用户somefoldername。 [如果用户 ID 为 0,则 somefoldername 可能是超级用户 ;-) ]。一个问题可能是文件夹somefoldername 没有足够的权限来更改它并在其中执行脚本/程序。另一方面,export/home 路径让我认为主目录位于网络文件系统上。那么 crontab 对网络的访问权限可能会出现问题。这是网络管理员的情况。
  • 谢谢彼得,我会与网络管理员核实

标签: linux shell permissions runtime-error crontab


【解决方案1】:
# m h dom mon dow user  command
0 *    * * *   root    /root/scr/script.sh

我不知道您使用的是哪个 linux 发行版,但在 Ubuntu 上,您可以指定 crontab 应该运行的用户。

【讨论】:

  • 我正在使用 Redhat Linux。
  • ubuntu 16.04 没有“用户”列。
猜你喜欢
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 2016-08-24
相关资源
最近更新 更多