以安全的方式使用 curlftpfs,无需明文和所有人都可读的密码(例如在 /etc/fstab 中)

以安全的方式使用 curlftpfs,无需明文和所有人都可读的密码(例如在 /etc/fstab 中)

如何curlftpfs安全地使用?我的意思是没有拥有纯文本且全世界可读的 FTP 密码。

我这样问是因为curlftpfs运行这样的命令有效:

curlftpfs HOST /mnt/path -o user=USERNAME:PASSWORD

不幸的是安全问题因为您的密码将以纯文本显示在进程列表中。

此外,如果你想在启动时挂载 FTP 目录,你可能会想使用,curlftpfs/etc/fstab我必须记住这也存在安全问题因为该文件通常不是为了保守秘密而设计的,因为其中的660最后-rw-r--r--一行/etc/fstab将是全世界可读的:

/dev/mapper/centos-home           /home     xfs   defaults  0 0
/dev/mapper/centos-swap           swap      swap  defaults  0 0
curlftpfs#USERNAME:PASSWORD@HOST  /mnt/path fuse  rw,noauto 0 0    

此外,官方手册(man 1 curlftpfs)没有描述以不同方式传递凭据的任何参数,也没有说更多。此外,有人问如何使用 curlftpfs 挂载 FTP 目录但目前的答案是将它们以纯文本形式呈现并供全世界阅读(正如已经说过的,这可能对您不利)。

此外,官方手册中提到了在另一个手册页上阅读更多详细信息,但目前该手册页在 Centos 7 中不可用。也许是文档错误?

curlftpfs 由 libcurl 提供支持,提供所有与传输相关的功能。有关详细信息,请参阅 libcurl(3)。文件系统部分是在 FUSE 之上实现的。请参阅http://fuse.sourceforge.net/了解详情。

- 从man 1 curlftpfs

但:

$ yum install -y libcurl
$ man libcurl
No manual entry for libcurl

简而言之。

在任何正常的共享系统中,人们如何curlftpfs安全地使用(没有明文和全世界可读的密码)?

答案1

我能够使用密码创建一个文件。该文件应被调用.netrc并保存在将运行命令 ( ) 的用户的家中/root/.netrc。内容应为:

machine YOUR_HOSTNAME
login YOUR_USERNAME
password YOUR_PASSWORD

例子:

machine example.com
login foo
password secret

然后为该文件分配一些权限,例如,为了避免被全世界读取,请设置如下:

chmod 660 /root/.netrc

现在测试您的 FTP 连接(省略用户名和密码)。例如:

curlftpfs hostname /mnt/myplace

如果有效,您也可以/etc/fstab省略密码来输入。例如:

/dev/mapper/centos-home  /home     xfs   defaults  0 0
/dev/mapper/centos-swap  swap      swap  defaults  0 0
curlftpfs#USERNAME@HOST  /mnt/path fuse  rw,noauto 0 0    

请注意,我之所以能够检测到此功能,只是因为我在官方文档中读到了这个误导性的说法:

指定用于服务器身份验证的用户和密码。覆盖 netrc 配置。

- 从man 1 curlftpfs

什么是netrc?为什么我应该覆盖它?这个东西是默认启用的吗?这些问题在文档中没有答案。无论如何,是的,netrc它是默认启用的curlftpfs,是的,您可以了解更多信息:

相关内容