我有一台可供多个用户访问的服务器。该服务器上通过 fstab 挂载了一个 CIFS 驱动器。
挂载 CIFS 驱动器需要以明文形式发送密码。我无法更改这一点。多个用户需要 sudo 访问权限,不幸的是,这也无法更改。
当然,root 拥有 /etc/fstab,里面有我的密码。
有什么方法可以阻止其他具有 sudo 访问权限的用户读取 /etc/fstab?
答案1
不要将密码输入其中/etc/fstab
。阅读手册页mount.cifs
并注意有关凭证文件的部分:
凭证=文件名|cred=文件名
指定一个包含用户名和/或密码以及可选的工作组名称的文件。该文件的格式为:
username=value password=value domain=value
创建一个文件/root/.smbcredentials
并chmod
:
# touch /root/.smbcredentials; chmod 600 /root/.smbcredentials
现在编辑它并在其中存储您的用户名和密码:
# vi /root/.smbcredentials
再次检查权限以确保它们正确无误:
# ls -l /root/.smbcredentials
-rw------- 1 root root 31 Oct 31 09:59 /root/.smbcredentials
现在/etc/fstab
,从 CIFS 安装行中删除您的密码,然后使用如下内容:
//cifs-server/share /media/share cifs noauto,uid=1000,gid=1000,username=myusername,credentials=/root/.smbcredentials 0 0
验证此方法有效后,更好的方法是使用 @grawity 的建议并创建一个具有自己密码的专用角色帐户,并使用该帐户进行身份验证以安装 CIFS 共享。尽可能限制该帐户无法执行除向 SMB/CIFS 服务器进行身份验证之外的其他操作。那么如果您的 sudo 用户读取您的/root/.smbcredentials
文件,他们将无法获得你的密码,他们只能获得有限访问服务帐户的密码。