ffsend:在命令行中通过 FireFox Send 分享文件 | Linux 中国

在过去我们已经写了多篇有关安全分享这个话题的文章,今天我们甚至还将继续讨论这个话题,我们将介绍名为 ffsend 的工具。

-- Vinoth Kumar


Linux 用户偏爱使用 scp 或 rsync 来进行文件或目录的复制拷贝。不过在 Linux 上正出现了许多新的可选方式,因为 Linux 是开源的,所以任何人都可以为 Linux 开发一个安全软件。

在过去我们已经写了多篇有关安全分享这个话题的文章,它们分别是 OnionShare、Magic Wormhole、Transfer.sh 和 Dcp – Dat Copy

今天我们甚至还将继续讨论这个话题,我们将介绍名为 ffsend 的工具。

ffsend 是什么?

ffsend 是 Firefox Send 服务的一个命令行客户端,允许用户通过命令行来传递和接收文件或目录。

它允许我们通过一个安全、私密、加密的链接,使用一个简单的命令来轻易安全地分享文件和目录。

通过 Firefox 的 Send 服务共享的文件最大大小为 2GB(LCTT 译注:现在官网上写的是最大 1GB,登录后最大 2.5GB)。其他人可以通过这个工具或者网页浏览器来下载这些分享的文件。

所有的文件都是在客户端加密的,并且秘钥将不会被共享到远程主机。另外,你还可以为上传的文件额外设置一个密码。

上传的文件在下载(默认被下载 1 次,最多可被下载 10 次)后或者 24 小时后,就会自动删除。这将确保你的文件不会一直保留在网络上。

该工具当前处于 alpha 阶段,使用时请自担风险。而且,当前只有有限的安装方式可用。

ffsend 的特点:

◈ 全功能且使用友好的命令行工具

◈ 可以安全地上传和下载文件与目录

◈ 总是在客户端加密

◈ 可用额外的密码进行保护、密码生成和可配置下载次数限制

◈ 内置的文件或目录的打包和解压

◈ 可以轻松地管理你的历史分享记录

◈ 能够使用你自己的 Send 主机

◈ 审查或者删除共享文件

◈ 精准的错误报告

◈ 低内存消耗,用于加密或上传下载

◈ 无需交互,可以集成在脚本中

如何在 LInux 中安装 ffsend 呢?

当前除了 Debian 和 Arch Linux 系统,其他发行版还没有相应的安装包(LCTT 译注:这个信息已过时,最新内容请看这里)。然而,我们可以轻易地根据我们自己的操作系统和架构下载到相应的预编译二进制文件。

运行下面的命令来为你的操作系统下载 ffsend 最新可用的版本(LCTT 译注:当前最新版本为 v0.2.58):

$ wget https://github.com/timvisee/ffsend/releases/download/v0.1.2/ffsend-v0.1.2-linux-x64.tar.gz

然后使用下面的命令来解压 tar 包:

$ tar -xvf ffsend-v0.1.2-linux-x64.tar.gz

接着运行下面的命令来查看你的 PATH 环境变量:

$ echo $PATH
/home/daygeek/.cargo/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

正如我先前告知的那样,下面我们要做的就是将这个可执行文件放置到 PATH 环境变量中的某个目录中:

$ sudo mv ffsend /usr/local/sbin

直接运行 ffsend 可以获取其基本使用信息:

$ ffsend
ffsend 0.1.2
Usage: ffsend [FLAGS] ...

Easily and securely share files from the command line.
A fully featured Firefox Send client.

Missing subcommand. Here are the most used:
 ffsend upload ...
 ffsend download ...

To show all subcommands, features and other help:
 ffsend help [SUBCOMMAND]

对于使用基于 Arch Linux 系统的用户可以简单地借助 AUR 助手来安装它,因为这个包已经在 AUR 软件仓库中了。

$ yay -S ffsend

对于使用 Debian/Ubuntu 系统的用户,使用 DPKG 命令来安装 ffsend

$ wget https://github.com/timvisee/ffsend/releases/download/v0.1.2/ffsend_0.1.2_amd64.deb
$ sudo dpkg -i ffsend_0.1.2_amd64.deb

如何使用 ffsend

这并不复杂,我们可以简单地通过下面的语法来发送文件。

语法:

$ ffsend upload [/Path/to/the/file/name]

在下面的例子中,我们将上传一个名为 passwd-up1.sh 的文件,一旦你上传了该文件,你将得到一个唯一的 URL。

$ ffsend upload passwd-up1.sh --copy
Upload complete
Share link: https://send.firefox.com/download/a4062553f4/#yy2_VyPaUMG5HwXZzYRmpQ

在任何远端的系统上,只需要使用上面那个唯一的 URL 就可以下载上传的文件了。

语法:

$ ffsend download [Generated URL]

命令的输出如下:

$ ffsend download https://send.firefox.com/download/a4062553f4/#yy2_VyPaUMG5HwXZzYRmpQ
Download complete

使用下面的语法来对目录进行上传:

$ ffsend upload [/Path/to/the/Directory] --copy

在下面的例子中,我们将上传一个名为 2g 的目录:

$ ffsend upload /home/daygeek/2g --copy
You've selected a directory, only a single file may be uploaded.
Archive the directory into a single file? [Y/n]: y
Archiving...
Upload complete
Share link: https://send.firefox.com/download/90aa5cfe67/#hrwu6oXZRG2DNh8vOc3BGg

在任意的远端系统中,只需要利用上面生成的唯一 URL 就可以获取到刚才上传的目录了。

$ ffsend download https://send.firefox.com/download/90aa5cfe67/#hrwu6oXZRG2DNh8vOc3BGg
You're downloading an archive, extract it into the selected directory? [Y/n]: y
Extracting...
Download complete

上面已经通过安全、私密和加密过的链接来发送了文件。然而,如果你想在你的掌控范围内再添加额外的安全措施,你可以为文件添加密码。

$ ffsend upload file-copy-rsync.sh --copy --password
Password:
Upload complete
Share link: https://send.firefox.com/download/0742d24515/#P7gcNiwZJ87vF8cumU71zA

当你在远端系统中尝试下载该文件时,它将要求你输入密码:

$ ffsend download https://send.firefox.com/download/0742d24515/#P7gcNiwZJ87vF8cumU71zA
This file is protected with a password.
Password:
Download complete

另外,你还可以在上传过程中提供下载次数限制来限制文件被下载的次数。

$ ffsend upload file-copy-scp.sh --copy --downloads 10
Upload complete
Share link: https://send.firefox.com/download/23cb923c4e/#LVg6K0CIb7Y9KfJRNZDQGw

然后你可以在任意的远程系统中使用上面的唯一 URL 来下载该文件:

ffsend download https://send.firefox.com/download/23cb923c4e/#LVg6K0CIb7Y9KfJRNZDQGw
Download complete

假如你想看这个链接的更多细节,你可以使用下面的命令来查看它的信息,它将为你展示文件名称、文件大小、被下载次数以及过期时间。

语法:

$ ffsend info [Generated URL]

$ ffsend info https://send.firefox.com/download/23cb923c4e/#LVg6K0CIb7Y9KfJRNZDQGw
ID: 23cb923c4e
Name: file-copy-scp.sh
Size: 115 B
MIME: application/x-sh
Downloads: 3 of 10
Expiry: 23h58m (86280s)

此外,你还可以使用下面的命令来查看你的传输历史:

$ ffsend history
# LINK EXPIRY
1 https://send.firefox.com/download/23cb923c4e/#LVg6K0CIb7Y9KfJRNZDQGw 23h57m
2 https://send.firefox.com/download/0742d24515/#P7gcNiwZJ87vF8cumU71zA 23h55m
3 https://send.firefox.com/download/90aa5cfe67/#hrwu6oXZRG2DNh8vOc3BGg 23h52m
4 https://send.firefox.com/download/a4062553f4/#yy2_VyPaUMG5HwXZzYRmpQ 23h46m
5 https://send.firefox.com/download/74ff30e43e/#NYfDOUp_Ai-RKg5g0fCZXw 23h44m
6 https://send.firefox.com/download/69afaab1f9/#5z51_94jtxcUCJNNvf6RcA 23h43m

假如你不想再分享某个链接,你可以使用下面的语法来删除它:

语法:

$ ffsend delete [Generated URL]

$ ffsend delete https://send.firefox.com/download/69afaab1f9/#5z51_94jtxcUCJNNvf6RcA
File deleted

如何在浏览器中使用 Send

另外,你还可以通过使用 firefox 浏览器打开 https://send.firefox.com/ 来完成相应的分享。

只需要拖拽该文件就可以上传它:

一旦该文件被下载,它将展示 100% 的下载状态。

想查看其他的可能选项,请浏览它对应的 man 信息或者帮助页。


via: https://www.2daygeek.com/ffsend-securely-share-files-folders-from-linux-command-line-using-firefox-send-client/

作者:Vinoth Kumar 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

版权声明:本文为F8qG7f9YD02Pe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/F8qG7f9YD02Pe/article/details/105212695

智能推荐

Hadoop实战(4)_Hadoop的集群管理和资源分配

系列目录: Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境 Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式 Hadoop实战(3)_虚拟机搭建CDH的全分布模式 DataNode数据目录 如果有多个挂载点,可以有多个DataNode数据目录。 目前服务器硬件,标准小型机配置:32核、64G(128G)、64T(4T*16盘SAS盘)。通常为了提升磁盘吞吐量,每个盘单...

Tornado day02

一,项目模板: Tornado的项目也可以像Django和flask一样,将功能细分为几个模块 1.1 _ _ init _ _.py 1.2 setting .py 1.3 urls .py 1.4 views .py 1.5 manage .py 将这个模板拷贝下来,以后创建新项目的时候可以直接拷贝一份,在此模板上修改使用 文件链接 链接:https://pan.baidu.com/s/11E...

PAT乙级 | 1095 解码PAT准考证 (25分)(做题过程+注意事项+运行超时解决方法)

PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。 输入格式: 输入首先在一行中给出两个正整数 ...

谈谈Java异常

0 概述 对于java工程师来说,是经常和异常打交道的,本文主要来谈一谈java中的异常。 1 异常类的继承关系 从下图(说明:图中只是列出部分异常类)可以看出: 异常的基类为Throwable,主要分为两个分支,即Error体系和Exception体系。 Exception下面分为RuntimeException和非RuntimeException(如IOException) 2 几种异常的区别...

通过设立FatFS隐藏分区,实现系统文件和用户文件的隔离

嘛。。这是一个关于个人使用FatFS文件系统的 一点小的经验。 我知道大家都会百度和谷歌,关于文件系统有什么用,文件系统怎么移植上自己的平台,看看资料也就懂了,在这里不再详述( 打字太慢一分钟50-60字懒得写)。本系列默认已经可以将设备模拟成u盘,并且已经通过修改diskio.c,可以实现ff.c中的各项功能( 不能实现的自行面壁)。FatFS项目官网 http://elm-chan.org/f...

猜你喜欢

Mysql之锁与事务知识要点小结

Mysql之锁与事务 平时的业务中,顶多也就是写写简单的sql,连事务都用的少,对锁这一块的了解就更加欠缺了,之前一个大神分享了下mysql的事务隔离级别,感觉挺有意思的,正好发现一个很棒的博文,然后也收集了一些相关知识,正好来学习下,mysql中锁与事务的神秘面纱,主要内容包括 共享锁和排它锁的区别以及适合范围 mysql的表锁和行锁的区别 怎么判断一个sql是否执行了锁,执行的是表锁还是行锁 ...

响应式图片二 通过srcset实现

具体方法如下: srcset=”图片地址+空格+尺寸描述符,图片地址+空格+尺寸描述符,图片地址+空格+尺寸描述符….” 浏览器会当前浏览的环境进行感知,这个感知包括网速、界面分辨率、DPR(屏幕像素比)等等,然后在图片中选择一个进行加载。 实际上,在相同DPR下,浏览器会根据屏幕的分辨率加载图片,但是加载了大的图片后再缩小还是会使用大的图片。综合考虑的算法非...

Training_model(2)

已经清洗处理了两个数据文件: application_{train|test}.csv :客户详细信息 bureau.csv : 客户历史信用报告 下面对这两个数据中的特征进行合并,然后Light Gradient Boosting Machine训练模型,之前只用客户数据的预测评分结果是0.734,这次加入了客户信用报告信息 load data 新增加了客户历史信用记录 Build Model ...

微信小程序 页面跳转(传参跟不传参)

跳转页面传参 1.首先我的目录结构是这样的,并在 cinema.wxml 定义了一个点击事件 bindtap=‘indetai’ 2.然后在 cinema.js 的data里面定义了一个 score,并实现了 indetai 方法 3.在 detai.js 的 data 里面也定义一个 score ,再在 onLoad 函数里面接收传递过来的值 4.在页面上显示得到的值 这...

JavaSE 10(二维数组)

前言:      在经历了血雨腥风的地狱模式后本以为迎来了学习的平静,但二维数组又打破了这难得的平静!!!二维数组在java编程中同样也是很重要的知识点,因此在这里我将整理二维数组的知识点与重点,以及习题,便于自己的复习与巩固。 二维数组的声明与创建: 下面是声明二维数组的语法: 数据类型[][]数组名 : 数据类型数组名[][]; (允许这种方式 ,但并不推荐使用它...