cron 作业的文件系统权限是什么?

cron 作业的文件系统权限是什么?

我正在生产服务器上工作。它有一些日常 cron 作业,以下是它们的文件系统权限:

cron.daily$ ls -Al
total 24
-rwxr-xr-x 1 root root  332 Dec  3 10:33 0yum-daily.cron
-rwxr-xr-x 1 root root 2239 Jun  9  2014 certwatch
-rwxr-x--- 1 root root  953 Aug 29  2015 gdrive-backup
-rwx------ 1 root root  180 Jul 31  2013 logrotate
-rw-r--r-- 1 root root  618 Mar 17  2014 man-db.cron
-rw-r----- 1 root root  192 Jan 26  2014 mlocate

除一项工作外,所有工作均来自 CentOS 或托管提供商;虽然一份工作是我们的。这些权限扩大了范围。

我们的工作是 gdrive-backup,它有硬编码的用户名和密码。我们认为向全世界提供对它的读取权限是不合适的。

当 cron 作业位于文件系统上时,它应该具有哪些权限?


这是 crontab 的猫,(我认为)它表明没有什么特别的事情发生:

$ cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

$

一个相关的问题是cron 作业的运行时权限是什么?,但它讨论了作业运行时的用户凭据,而不是文件系统权限。

答案1

在 CentOS 上,每日 cron 作业的执行方式为

/usr/bin/run-parts /etc/cron.daily

run-parts 是一个 shell 脚本。它查看其参数(目录)的内容,过滤掉以 、 、 和 目录结尾的文件~.swp然后.rpmsave对于通过测试的每个文件if [ -x $i ](即可由 root 执行),它运行该文件。

/etc/cron.daily因此,其中打开任何位的所有文件都x将运行。如果您愿意,您可以设置这些文件的权限以拒绝所有人的读取访问权限; root没关系。如果您在可以作为参数传递给命令的脚本中嵌入了密码,请注意,所有/proc/*/cmdline文件都是公开可读的,因此所有用户都可以在运行时看到所有命令和参数。

相关内容