![如何使用用户名和密码保护纯文本凭据文件?](https://linux22.com/image/17940/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81%E4%BF%9D%E6%8A%A4%E7%BA%AF%E6%96%87%E6%9C%AC%E5%87%AD%E6%8D%AE%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在尝试设置自动安装网络驱动器。网络驱动器需要用户/密码。在“mount.cifs”的手册页中,有两种提供用户/密码的方法。
- [不推荐] 将用户/密码放入/etc/fstab
- 创建一个单独的凭据文件并将用户/密码放入凭据文件中
“[选项 2] 优于在共享文件(例如 /etc/fstab)中使用明文密码。请务必妥善保护所有凭据文件。”
- 我的背景是:软件开发人员,进行了大量的linux软件开发(安装开发库,安装Eclipse或java等应用程序)。我不是 IT 人员或系统管理员。
- 这是在我自己的开发机器上
鉴于我缺乏 IT/系统管理员背景,“正确保护任何凭据文件”的标准建议方法是什么?
(如果有多种方法来保护凭证文件,我也将不胜感激,请按最常见到最少的顺序列出并描述权衡。)
答案1
看起来您引用的手册页片段引用了该标准的基本安全级别文件所有权和权限提供。/etc/fstab
系统上的任何用户都可以读取配置文件。存储敏感信息的更安全的地方是具有只读权限的文件。我了解在您的情况下,用户将是根。
假设您将文件放入/etc/
并命名cifs-cred
(以 root 身份创建并编辑它)。然后你会使用
chmod 600 /etc/cifs-cred
这只会保证所有者(应该是根)将有权访问内容。否则,如果此类设置不允许您的系统设置正常工作,则可能意味着某些特殊系统用户应该可以访问该文件。在这种情况下,您可能需要尝试
chmod 660 /etc/cifs-cred
或者类似的东西
chown root:wheel /etc/cifs-cred
chmod 660 /etc/cifs-cred
-- 取决于您的系统是什么 *nix 风格以及系统守护进程的配置。
除此之外,如果系统可能面临任何被泄露的风险,您永远不应该信任未加密的密码。仅仅依赖于文件权限是相当幼稚的——文件内容仅受到保护以防止轻微的安全漏洞。
答案2
只需将挂载用户的unix权限设置为rw即可:
cat > ~/cifs.credentials <<EOC
user=UserName
pass=PassWord
EOC
chmod 0600 ~/cifs.credentials
在执行 chmod 命令后,所有其他用户都无法访问该文件