我有时必须连接到 ftp 才能获取一些文件。为此,我编写了一个脚本。问题是该用户是通用的,我的所有工作在本地主机和远程计算机中都使用该用户。我必须将其与我的个人用户连接,以便他们可以在脚本中看到我的密码 有某种方法可以避免这些吗?
答案1
如果脚本仅在您登录时运行,您可以在运行脚本时读取的环境变量中设置密码 - 每个会话设置一次,而不是对其进行硬编码或提示输入。例如:
# log in to your session
[user@host] export pass=1234abc
[user@host] my-ftp.sh
请注意导出命令前面的额外空格 - 这是大多数 shell(例如 Bash 或 Zsh)中的一个选项,它将阻止命令被记录在 shell 历史记录中。这将允许您从${pass}
脚本内的环境变量中读取密码;但没有将密码记录在共享主机上的文件中。
否则,除非每次运行脚本时都提示输入密码,否则没有真正的方法来保证共享用户的安全 - 您作为共享用户可以非交互方式访问的所有内容,您的同事也是如此。您可以尝试将密码保存在要在运行时读入的文件中,但共享用户仍然需要访问该文件,并且最多可以通过模糊来实现安全性(这根本不是安全性)。