我是 linux/bash 的新手,花了很多周时间尝试解决如何启用虚拟设备(基于 linux/bash)来自动验证并在网络目标上执行命令。
我让它工作了,但我是 Linux 新手,不明白我写的内容的安全含义。它是一个家庭实验室,但我希望它能够模仿设备安全的良好原则。
我的脚本作为“scriptX”存储在 /home/userX/bin/ 中,并包含以下内容:
#! /bin/bash
source $HOME/.bashrc
source *commands to authenticate to target*
source *command to scan adapters*
当我登录 SSH 并执行 ./ 在交互式环境中运行时,此方法有效。然而,作为一个 cron 作业,除非我在其他一些东西中找到了 $HOME 的来源,否则它不会工作。我有一个 cron 作业设置,如下所示:
sudo crontab -e
然后在 cron 作业中
@reboot . /etc/skel/.bashrc ; bash -l -c '/home/UserX/bin/scriptX'
所以它按预期工作,但我混淆了我在网上找到的部分脚本,直到它工作为止。
除了将帐户从 root 更改为特权较低的用户之外,对于如何处理此操作,还有什么可以改进的地方吗?
答案1
获取任何文件(例如$HOME/.bashrc
)与该文件中写入的内容一样安全。
举个极端的例子,如果你的.bashrc
包含/bin/rm -rf $HOME
它是非常不安全。
请注意,采购不会影响任何家长壳。
也许您需要了解有关 SSH 以及如何将其与公钥/私钥一起使用的更多信息;阅读一些 SSH 教程。