cal*_*ula 6 security cron symlink home
我考虑做类似的事情:
sudo ln -s ~/myCustomCrontab /var/spool/cron/crontabs/username
Run Code Online (Sandbox Code Playgroud)
因为我想在我的主目录中包含所有自定义文件。我能想到的可能的风险是
或者有没有更好的方法来“跟踪文件”?
不!
不要那样做!!
无论如何,将您crontab
(和其他人)的副本存储在您的主目录等位置,但不要接触系统文件。
vi my_crontab # Edit my copy of the crontab file
crontab my_crontab # Install it
Run Code Online (Sandbox Code Playgroud)
(就个人而言,我$HOME/.crontab
用于我的每用户副本。)
跟踪系统文件的更好方法是创建源代码存储库(git、cvs、mercury 等)并使用它来跟踪您的更改。AMakefile
可用于将更改安装到相关系统目录并重新启动相关服务;在这种情况下,您只需键入即可sudo make install
。
这不起作用,至少在类似 Debian 的系统中(完全忽略(非系统)用户的符号链接或硬链接 crontab 文件)。如果您用于crontab
更改 crontab 文件,它也会失败。如果 cron 版本仍然接受符号链接的 crontab 文件,它会创建可能的安全漏洞,因为不再检查 crontab 文件的一致性。
使用您的符号链接解决方案,crontab -e
如果您(或某些安装脚本)更改 crontab 文件,则会崩溃:
crontab: crontabs/username: rename: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
因为它将临时文件移动到/var/spool/cron/crontabs/username
以立即替换旧文件。
crontab 内置了许多额外的安全检查,因此不能使用 cron 系统来破坏系统。例如,它会在安装或更改 cron 文件之前检查它的内容。无效的 cron 文件可能会使cron
守护程序崩溃,或者可能(至少在理论上)滥用它来获得更多系统权限。使用您的解决方案,不再检查 crontab 文件。
归档时间: |
|
查看次数: |
2568 次 |
最近记录: |