如何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
,是的,您可以了解更多信息: