2018年5月

 title=

在计算机网络中,数据是暴露的,因为数据包传输是无法隐藏的,所以让我们来使用 whoisdignmclinmap 这四个工具来嗅探网络吧。

请注意,不要在不属于自己的网络上运行 nmap ,因为这有可能会被其他人认为恶意攻击。

精简和详细域名信息查询

您可能已经注意到,之前我们用常用的老式 whois 命令查询域名信息,但现如今似乎没有提供同过去一样的详细程度。我们使用该命令查询 linux.com 的域名描述信息:

$ whois linux.com
Domain Name: LINUX.COM
Registry Domain ID: 4245540_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namecheap.com
Registrar URL: http://www.namecheap.com
Updated Date: 2018-01-10T12:26:50Z
Creation Date: 1994-06-02T04:00:00Z
Registry Expiry Date: 2018-06-01T04:00:00Z
Registrar: NameCheap Inc.
Registrar IANA ID: 1068
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.6613102107
Domain Status: ok https://icann.org/epp#ok
Name Server: NS5.DNSMADEEASY.COM
Name Server: NS6.DNSMADEEASY.COM
Name Server: NS7.DNSMADEEASY.COM
DNSSEC: unsigned
[...]

有很多令人讨厌的法律声明。但在哪有联系信息呢?该网站位于 whois.namecheap.com 站点上(见上面输出的第三行):

$ whois -h whois.namecheap.com linux.com

我就不复制出来了,因为这实在太长了,包含了注册人,管理员和技术人员的联系信息。怎么回事啊,露西尔?(LCTT 译注:《行尸走肉》中尼根的棒子)有一些注册库,比如 .com 和 .net 是精简注册库,保存了一部分有限的域名信息。为了获取完整信息请使用 -h--host 参数,该参数便会从域名的 注册服务机构 中获取。

大部分顶级域名是有详细的注册信息,如 .info。试着使用 whois blockchain.info 命令来查看。

想要摆脱这些烦人的法律声明?使用 -H 参数。

DNS 解析

使用 dig 命令比较从不同的域名服务器返回的查询结果,去除陈旧的信息。域名服务器记录缓存各地的解析信息,并且不同的域名服务器有不同的刷新间隔。以下是一个简单的用法:

$ dig linux.com
<<>> DiG 9.10.3-P4-Ubuntu <<>> linux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<<- opcode: QUERY, status: NOERROR, id: 13694
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1440
;; QUESTION SECTION:
;linux.com. IN A

;; ANSWER SECTION:
linux.com. 10800 IN A 151.101.129.5
linux.com. 10800 IN A 151.101.65.5
linux.com. 10800 IN A 151.101.1.5
linux.com. 10800 IN A 151.101.193.5

;; Query time: 92 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Jan 16 15:17:04 PST 2018
;; MSG SIZE rcvd: 102

注意下靠近末尾的这行信息:SERVER: 127.0.1.1#53(127.0.1.1),这是您默认的缓存解析器。当地址是本地时,就表明您的电脑上安装了 DNS 服务。在我看来这就是一个 Dnsmasq 工具(LCTT 译注:是一个小巧且方便地用于配置 DNS 和 DHCP 的工具),该工具被用作网络管理:

$ ps ax|grep dnsmasq
2842 ? S 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground
--no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid
--listen-address=127.0.1.1

dig 命令默认是返回 A 记录,也就是域名。IPv6 则有 AAAA 记录:

$ $ dig linux.com AAAA
[...]
;; ANSWER SECTION:
linux.com. 60 IN AAAA 64:ff9b::9765:105
linux.com. 60 IN AAAA 64:ff9b::9765:4105
linux.com. 60 IN AAAA 64:ff9b::9765:8105
linux.com. 60 IN AAAA 64:ff9b::9765:c105
[...]

仔细检查下,发现 linux.com 有 IPv6 地址。很好!如果您的网络服务支持 IPv6 那么您就可以用 IPv6 连接。(令人难过的是,我的移动宽带则没提供 IPv6)

假设您能对您的域名做一些 DNS 改变,又或是您使用 dig 查询的结果有误。试着用一个公共 DNS,如 OpenNIC:

$ dig @69.195.152.204 linux.com
[...]
;; Query time: 231 msec
;; SERVER: 69.195.152.204#53(69.195.152.204)

dig 回应您正在的查询是来自 69.195.152.204。您可以查询各种服务并且比较结果。

上游域名服务器

我想知道我的上游域名服务器(LCTT 译注:此处指解析器)是谁。为了查询,我首先看下 /etc/resolv/conf 的配置信息:

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

好吧,不过我已经知道了。您的 Linux 发行版可能配置不同,您会看到您的上游服务器。接下来我们来试试网络管理器命令行工具 nmcli

$ nmcli dev show | grep DNS
IP4.DNS[1]: 192.168.1.1

很好,现在我们已经知道了,其实那是我的移动热点,我能确认。我能够登录到简易管理面板,来查询上游服务器。然而许多用户级互联网网关不会让您看到或改变这些设置,因此只能尝试其他的方法,如 我的域名服务器是什么?

查找在您的网络中 IPv4 地址

您的网络上有哪些 IPv4 地址已启用并正在使用中?

$ nmap -sn 192.168.1.0/24
Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 14:03 PST
Nmap scan report for Mobile.Hotspot (192.168.1.1)
Host is up (0.011s latency).
Nmap scan report for studio (192.168.1.2)
Host is up (0.000071s latency).
Nmap scan report for nellybly (192.168.1.3)
Host is up (0.015s latency)
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.23 seconds

每个人都想去扫描自己的局域网中开放的端口。下面的例子是寻找服务和他们的版本号:

$ nmap -sV 192.168.1.1/24

Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 16:46 PST
Nmap scan report for Mobile.Hotspot (192.168.1.1)
Host is up (0.0071s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
22/tcp filtered ssh
53/tcp open domain dnsmasq 2.55
80/tcp open http GoAhead WebServer 2.5.0

Nmap scan report for studio (192.168.1.102)
Host is up (0.000087s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
631/tcp open ipp CUPS 2.1
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 256 IP addresses (2 hosts up) scanned in 11.65 seconds

这些是有趣的结果。让我们尝试从不同的互联网连接进行相同的操作,以查看这些服务是否暴露于互联网中。如果您有智能手机,相当于您有第二个网络。您可以下载应用程序,还可以为您的 Linux 电脑提供热点。从热点控制面板获取广域网IP地址,然后重试:

$ nmap -sV 12.34.56.78

Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 17:05 PST
Nmap scan report for 12.34.56.78
Host is up (0.0061s latency).
All 1000 scanned ports on 12.34.56.78 are closed

果然不出所料,结果和我想象的一样(LCTT 译注:这些服务和信息没有被暴露在公网上)。可以用手册来查询这些命令,以便了解更多有趣的嗅探技术。

了解更多 Linux 的相关知识可以从 Linux 基金会和 edX(LCTT译注:edX 是麻省理工和哈佛大学于 2012 年 4 月联手创建的大规模开放在线课堂平台)中获取免费的 “介绍 Linux”课程。


via: https://www.linux.com/learn/intro-to-linux/2018/1/4-tools-network-snooping-linux

作者:Carla Schroder 译者:wyxplus 校对:wxy

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

专家们权衡了 DevOps 团队最近会有何期望。

“DevOps” 一词通常认为是来源于 这篇 2008 年关于敏捷基础设施和运营的讲演中。现在的 IT 词汇中,它无处不在,这个“混搭”的词汇出现还不到 10 年:我们还在研究它在 IT 中更现代化的工作方法。

诚然,多年来一直在 “从事 DevOps” 的人积累了丰富的知识。但是大多数的 DevOps 环境 —— 人与 文化 、流程与方法、工具与技术的融合 —— 还远远没有成熟。

更多的变化即将到来。Robert Reeves 说 “DevOps 是一个过程,一种算法”,他是 Datical 的 CTO, “它的绝对目标就是随着时间进行改变和演进”,这就是重点。

那我们预计接下来会发生什么呢?这里有一些专家们观察到的重要趋势。

1、 预计 DevOps、容器、以及微服务之间的相互依赖会增强

驱动 DevOps 发展的文化本身可能会演进。当然,DevOps 仍然将在根本上摧毁传统的 IT 孤岛和瓶颈,但这样做的理由可能会变得更加急迫。证据 A & B: 对容器和微服务的兴趣 与日俱增。这个技术组合很强大、可连续扩展、与规划和 持续进行的管理配合最佳。

Arvind Soni 说 “影响 DevOps 的其中一个主要因素是向微服务转变”,他是 Netsil 的产品副总裁,补充道,容器和业务流程,使开发者打包和交付的速度越来越快。DevOps 团队的任务可能是帮助去加速打包并管理越来越复杂的微服务弹性架构。

2、 预计 ”安全网“ 更少

DevOps 使团队可以更快更敏捷地去构建软件,部署速度也更快更频繁、同时还能提升软件质量和稳定性。但是好的 IT 领导通常都不会忽视管理风险,因此,早期大量的 DevOps 迭代都是使用了安全防护 —— 从后备的不重要业务开始的。为了实现更快的速度和敏捷性,越来越多的团队将抛弃他们的 ”辅助轮“(LCTT 译注:意思说减少了安全防护措施)。

Nic Grange 说 “随着团队的成熟,他们决定不再需要一些早期增加的安全 ‘防护栏’ 了”,他是 Retriever Communications 的 CTO。Grange 给出了一个阶段展示的服务器的示例:随着 DevOps 团队的成熟,他们决定不再需要阶段展示的服务器了,尤其是他们很少在试生产环境中发现问题。(Grange 指出,这一举措对于缺乏 DevOps 经验的团队来说,不可轻易效仿)

Grange 说 “这个团队可能在监视和发现并解决生产系统中出现的问题的能力上有足够的信心”,“部署过程和测试阶段,如果没有任何证据证明它的价值,那么它可能会把整个进度拖慢”。

3、 预计 DevOps 将在其它领域大面积展开

DevOps 将两个传统的 IT 部门(开发和运营)结合的更紧密。越来越多的公司看到了这种结合的好处,这种文化可能会传播开来。这种情况在一些组织中已经出现,在 “DevSecOps” 一词越来越多出现的情况下,它反映出了在软件开发周期中有意地、越来越早地包含了安全性。

Derek Weeks 说 “DevSecOps 不仅是一个工具,它是将安全思维更早地集成到开发实践中”,它是 Sonatype 的副总裁和 DevOps 拥挤者。

Red Hat 的安全策略师 Kirsten Newcomer 说,这种做法并不是一个技术挑战,而是一个文化挑战。

Newcomer 说 “从历史来看,安全团队都是从开发团队中分离出来的 —— 每个团队在它们不同的 IT 领域中形成了各自的专长” ,“它并不需要这种方法。每个关心安全性的企业也关心他们通过软件快速交付业务价值的能力,这些企业正在寻找方法,将安全放进应用程序的开发周期中。它们采用 DevSecOps 通过 CI/CD 流水线去集成安全实践、工具和自动化。为了做的更好,他们整合他们的团队 —— 将安全专家整合到应用程序开发团队中,参与到从设计到产品部署的全过程中。这种做法使双方都看到了价值 —— 每个团队都扩充了它们的技能和知识,使他们成为更有价值的技术专家。DevOps 做对了 —— 或者说是 DevSecOps —— 提升了 IT 安全性。”

除了安全以外,还可以让 DevOps 扩展到其它领域,比如数据库团队、QA,甚至是 IT 以外的潜在领域。

Datical 的 Reeves 说 “这是一件非常 DevOps 化的事情:发现相互掣肘的地方并解决它们”,“对于以前采用 DevOps 的企业来说,安全和数据库是他们面临的最大瓶颈。”

4、 预计 ROI 将会增加

Eric Schabell 说,“由于公司深入推进他们的 DevOps 工作,IT 团队在方法、流程、容器和微服务方面的投资将得到更多的回报。” 他是 Red Hat 的全球技术传播总监,Schabell 说 “‘圣杯’将移动的更快、完成的更多、并且变得更灵活。由于这些组件找到了更宽阔的天地,组织在应用程序中更有归属感时,结果就会出现。”

“每当新兴技术获得我们的关注时,任何事都有一个令人兴奋的学习曲线,但当认识到它应用很困难的时候,同时也会经历一个从兴奋到幻灭的低谷。最终,我们将开始看到从低谷中爬出来,并收获到应用 DevOps、容器、和微服务的好处。”

5、 预计成功的指标将持续演进

Mike Kail 说 “我相信 DevOps 文化的两个核心原则 —— 自动化和可衡量是从来不会变的”,它是 CYBRIC 的 CTO,也是 Yahoo 前 CIO。“总是有办法去自动化一个任务,或者提升一个已经自动化的解决方案,而随着时间的推移,重要的事情是测量可能的变化和扩展。这个成熟的过程是一个永不停步的旅行,而不是一个目的地或者已完成的任务。”

在 DevOps 的精神中,成熟和学习也与协作者和分享精神有关。Kail 认为,对于敏捷方法和 DevOps 文化来说,它仍然为时尚早,这意味着它们还有足够的增长空间。

Kail 说 “随着越来越多的成熟组织持续去测量可控指标,我相信(希望) —— 这些经验应该被广泛的分享,以便我们去学习并改善它们。”

作为 Red Hat 技术传播专家,Gordon Haff 最近注意到,组织使用业务成果相关的因素去改善他们的 DevOps 指标的工作越来越困难。 Haff 写道 “你或许并不真正关心你的开发者写了多少行代码、服务器是否在一夜之间出现了硬件故障、或者你的测试覆盖面是否全面”。事实上,你可能并不直接关心你的网站的响应速度和更新快慢。但是你要注意的是,这些指标可能与消费者放弃购物车或者转到你的竞争对手那里有关。”

与业务成果相关的一些 DevOps 指标的例子包括,消费者交易金额(作为消费者花销统计的指标)和净推荐值(消费者推荐公司产品和服务的意愿)。关于这个主题更多的内容,请查看这篇完整的文章—— DevOps 指标:你是否测量了重要的东西

唯一不变的就是改变

顺利说一句,如果你希望这件事一蹴而就,那你就要倒霉了。

Reeves 说 “如果你认为今天发布非常快,那你就什么也没有看到”,“这就是为什么要让相关者包括数据库团队进入到 DevOps 中的重要原因。因为今天这两组人员的冲突会随着发布速度的提升而呈指数级增长。”


via: https://enterprisersproject.com/article/2017/10/what-s-next-devops-5-trends-watch

作者:Kevin Casey 译者:qhwdw 校对:wxy

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

Linux 上有许多 GUI 图片浏览器。但我尚未听说或使用过任何在终端中显示图片的应用程序。幸运的是,我刚刚发现了一个可用于在终端中显示图像的名叫 FIM 的图像查看器。FIM 引起了我的注意,是因为与大多数 GUI 图片浏览器相比,它非常轻巧。毫不迟疑,让我们来看看它能做什么。

使用 FIM 在终端中显示图像

FIM 意即 Fbi IMproved。对于那些不知道的人,Fbi 是指 Linux 中的 frame buffer imageviewer。它使用系统的帧缓冲器直接从命令行显示图像。默认情况下,它能用终端显示 bmp、gif、jpeg、PhotoCD、png、ppm、tiff 和 xwd。对于其他格式,它会尝试使用 ImageMagick 的转换。

FIM 基于 Fbi,它是一款高度可高度定制及脚本化的图像浏览器,非常适合使用 Vim 文本编辑器或 Mutt 等软件的用户。它会以全屏显示图像,并可通过键盘快捷键控制(如调整大小、翻转、缩放)。与 Fbi 不同的是,FIM 是通用的:它可以打开许多文件格式,并且可以在以下视频模式下显示图片:

  • 使用 Linux framebuffer 设备,以图形方式呈现
  • 在 X / Xorg 下,使用 SDL 库,以图形方式呈现
  • 在 X / Xorg 下,使用 Imlib2 库,以图形方式呈现。
  • 在任何文本控制台中使用 AAlib 库呈现为 ASCII 字符画

FIM 是完全免费且开源的。

安装 FIM

基于 DEB 的系统,如 Ubuntu、Linux Mint, 可从默认的仓库中获取 FIM 图像查看器。因此,你可以使用如下命令安装fbi:

$ sudo apt-get install fim

如果它在你使用的 Linux 发行版的仓库中不包含 FIM,则可以下载源代码进行编译和安装,如下所示。

wget http://download.savannah.nongnu.org/releases/fbi-improved/fim-0.6-trunk.tar.gz
wget http://download.savannah.nongnu.org/releases/fbi-improved/fim-0.6-trunk.tar.gz.sig
gpg --search 'dezperado autistici org'
#按照屏幕上的说明,从密钥服务器导入密钥
gpg --verify fim-0.6-trunk.tar.gz.sig
tar xzf fim-0.6-trunk.tar.gz
cd fim-0.6-trunk
./configure --help=short
#阅读./configure --help=short 的输出:你可以在 ./configure 中添加选项
./configure
make
su -c“make install”

FIM用法

安装完成后,您可以使用以下命令以“自动缩放”显示的图像:

$ fim -a dog.jpg

这里是我的 Ubuntu 主机的示例输出。

正如你在上面的屏幕截图中看到的,FIM 没有使用任何外部 GUI 图片浏览器。相反,它使用我们系统的帧缓冲器来显示图像。

如果当前目录中有多个 .jpg 文件,可以使用通配符打开所有文件,如下所示。

$ fim -a * .jpg

要打开目录中的所有图像,例如 Pictures,请运行:

$ fim Pictures/

我们也可以在文件夹及其子文件夹中递归地打开图像,然后像下面那样对列表进行排序。

$ fim -R Pictures/ --sort

要以 ASCII 格式渲染图像,可以使用 -t 标志。

$ fim -t dog.jpg

要退出 Fim,请按 ESCq

键盘快捷键

您可以使用各种键盘快捷键来管理图像。例如,要加载下一张图像和之前的图像,请按下 PgUp / PgDown 键。成倍放大或缩小,请使用 + / - 键。以下是用于在FIM中控制图像的常用按键。

  • PageUp / Down:上一张/下一张图片
  • + / - :放大/缩小
  • a:自动缩放
  • w:自适应宽度
  • h:自适应高度
  • j / k:平移/向上
  • f / m:翻转/镜像
  • r / R:旋转(顺时针/逆时针)
  • ESC / q:退出

有关完整详细信息,请参阅手册页。

$ man fim

那么,就是这样。希望这对你有所帮助。后续还会介绍更多的优秀工具。敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-display-images-in-the-terminal/

作者:SK 选题:lujun9972 译者:KevinSJ 校对:wxy

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

目前有很多方法可以在开启用户会话时启动软件。

这是一篇试图将所有方法聚集在一起的文章。某些部分可能不精确或不正确,但这是一个开始,如果我收到更正,我很乐意保持更新。

x11-common

man xsession
  • 由显示管理器启动,如 /usr/share/lightdm/lightdm.conf.d/01_debian.conf/etc/gdm3/Xsession
  • Debian 特定。
  • /etc/X11/Xsession.d/ 中运行脚本。
  • /etc/X11/Xsession.d/40x11-common_xsessionrc 引用 ~/.xsessionrc ,它能比设置环境变量能做的多一点,因为它在 X 会话启动时运行。
  • 最后,它启动会话管理器(gnome-sessionxfce4-session 等等)。

systemd --user

  • https://wiki.archlinux.org/index.php/Systemd/User
  • pam_systemd 启动,所以在环境变量中可能没有设置 DISPLAY 变量。
  • 管理单元:

    • /usr/lib/systemd/user/ 由已安装的软件包提供的单元。
    • ~/.local/share/systemd/user/ 由安装在家目录的软件包提供的单元。
    • /etc/systemd/user/ 由系统管理员提供的系统范围的用户的单元。
    • ~/.config/systemd/user/ ,用户自己放置的单元。
  • 当设置 X 会话和 DISPLAY 变量时,启动 systemd 用户单元的技巧是从 .desktop 自启动文件调用 systemctl start

dbus 激活

X 会话管理器

xdg 自动启动

其他启动注意事项

~/.Xauthority

要连接到 X 服务器,客户端需要从 ~/.Xauthority 发送一个令牌,这证明他们可以读取用户的隐私数据。

~/.Xauthority 包含显示管理器生成的一个令牌,并在启动时传递给 X。

要查看它的内容,请使用 xauth -i -f ~/.Xauthority list


via: http://www.enricozini.org/blog/2018/debian/starting-user-software/

作者:Enrico Zini 选题:lujun9972 译者:geekpi 校对:wxy

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

Cron 是您可以在任何类 Unix 操作系统中找到的最有用的实用程序之一。它用于安排命令在特定时间执行。这些预定的命令或任务被称为 “Cron 任务”。Cron 通常用于运行计划备份、监视磁盘空间、定期删除不再需要的文件(例如日志文件)、运行系统维护任务等等。在本简要指南中,我们将看到 Linux 中 Cron 任务的基本用法。

Cron 任务入门指南

cron 任务的典型格式是:

分钟(0-59) 小时(0-24) 日(1-31) 月(1-12) 星期(0-6) 要执行的命令

只需记住 cron 任务的格式或打印下面的插图并将其放在你桌面上即可。

在上图中,星号表示特定的时间块。

要显示当前登录用户的 crontab 文件的内容:

$ crontab -l

要编辑当前用户的 cron 任务,请执行以下操作:

$ crontab -e

如果这是第一次编辑此文件,会询问你使用哪个编辑器来编辑此文件。

no crontab for sk - using an empty one

Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed

Choose 1-4 [1]:

选择适合你的编辑器。这里是一个示例 crontab 文件的样子。

在这个文件中,你需要添加你的 cron 任务。

要编辑其他用户的 crontab,例如 ostechnix,请执行:

$ crontab -u ostechnix -e

让我们看看一些例子。

每分钟 执行一次 cron 任务,需使用如下格式。

* * * * * <command-to-execute>

要每 5 分钟运行一次 cron 任务,请在 crontab 文件中添加以下内容。

*/5 * * * * <command-to-execute>

要在每 1/4 个小时(每 15 分钟)运行一次 cron 任务,请添加以下内容:

*/15 * * * * <command-to-execute>

要每小时的第 30 分钟运行一次 cron 任务,请运行:

30 * * * * <command-to-execute>

您还可以使用逗号定义多个时间间隔。例如,以下 cron 任务每小时运行三次,分别在第 0、 5 和 10 分钟运行:

0,5,10 * * * * <command-to-execute>

每半小时运行一次 cron 任务:

*/30 * * * * <command-to-execute>

每小时运行一次:

0 * * * * <command-to-execute>

每 2 小时运行一次:

0 */2 * * * <command-to-execute>

每天运行一项(在 00:00 运行):

0 0 * * * <command-to-execute>

每天凌晨 3 点运行:

0 3 * * * <command-to-execute>

每周日运行:

0 0 * * SUN <command-to-execute>

或使用,

0 0 * * 0 <command-to-execute>

它将在每周日的午夜 00:00 运行。

星期一至星期五每天运行一次,亦即每个工作日运行一次:

0 0 * * 1-5 <command-to-execute>

这项工作将于 00:00 开始。

每个月运行一次:

0 0 1 * * <command-to-execute>

于每月第 1 天的 16:15 运行:

15 16 1 * * <command-to-execute>

每季度运行一次,亦即每隔 3 个月的第 1 天运行:

0 0 1 */3 * <command-to-execute>

在特定月份的特定时间运行:

5 0 * 4 * <command-to-execute>

每个四月的 00:05 运行。

每 6 个月运行:

0 0 1 */6 * <command-to-execute>

这个定时任务将在每六个月的第一天的 00:00 运行。

每年运行:

0 0 1 1 * <command-to-execute>

这项 cron 任务将于 1 月份的第一天的 00:00 运行。

我们也可以使用以下字符串来定义任务。

@reboot 在每次启动时运行一次。 @yearly 每年运行一次。 @annually(和 @yearly 一样)。 @monthly 每月运行一次。 @weekly 每周运行一次。 @daily 每天运行一次。 @midnight (和 @daily 一样)。 @hourly 每小时运行一次。

例如,要在每次重新启动服务器时运行任务,请将此行添加到您的 crontab 文件中。

@reboot <command-to-execute>

要删除当前用户的所有 cron 任务:

$ crontab -r

还有一个名为 crontab.guru 的专业网站,用于学习 cron 任务示例。这个网站提供了很多 cron 任务的例子。

有关更多详细信息,请查看手册页。

$ man crontab

那么,就是这样。到此为止,您应该对 cron 任务以及如何实时使用它们有了一个基本的了解。后续还会介绍更多的优秀工具。敬请关注!!

干杯!


via: https://www.ostechnix.com/a-beginners-guide-to-cron-jobs/

作者:SK 选题:lujun9972 译者:KevinSJ 校对:wxy

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

最近,有发现称一些 Ubuntu Snap 应用商店上的应用包含加密货币挖矿程序。Canonical 公司迅速下架了这些违规的应用,但是留下了几个有待回答的问题。

在 Snap 应用商店上发现了加密矿工

Crypto Miner Malware on Ubuntu Snap Store

5 月 11 号,一位名叫 tarwirdur 的用户在 snapcraft.io repository 开了一个新的工单 ,他提到一个由 Nicolas Tomb 开发,叫做 2048buntu 的 snap 应用包含加密货币矿工。tarwirdur 询问,他怎样才能出于安全的原因而“投诉该应用” 。tarwirdur 后来发表说其它由 Nicolas Tomb 开发的 snap 应用也都包含加密货币矿工。

看起来该 snap 应用使用了 systemd 在系统启动时自动地运行代码,并在用户不知情的情况下在后台运行。

对那些不熟悉相关术语的人来说, 加密货币 cryptocurrency 矿工 miner 是一段使用计算机的主处理器或者图形处理器来“挖掘”数字货币的程序。“挖矿”通常涉及到解决一个数学等式。在这种情况下,如果你在运行 2048buntu 游戏,这个游戏将会额外使用处理器的计算能力去进行加密货币的挖掘。

Snapcraft 团队迅速地下架了所有由该违规者开发的应用来做出回应。他们同时也开展了调查。

隐匿者发声

5 月 13 号,一位同名为 Nicolas Tomb 的 Disqus 用户在 OMGUbuntu 的新闻报道上发表了评论,他在评论中称自己向 snap 应用中添加了加密货币矿工,从而获取收益。他为他的行为道歉,同时承诺将所有挖矿所得的收益送给 Ubuntu 基金会。

我们不能确认这个评论就是由 Nicolas Tomb 发表的,因为这个 Disqus 账户最近才被创建,也只有一条评论与之相关联。现在,我们假设他是。

Canonical 公司发表了声明

5 月 15 号,Canonical 公司在这种情况下发表了一份声明。标题为 “在 Snap 应用商店中的信任与安全”,声明开头重申了当下的情况。他们也补充道重新发布的 snap 应用中已经被删除了加密货币挖矿程序

Canonical 公司随后尝试调查 Nicolas Tomb 的动机。他们指出,他告诉他们说自己这样做是为了通过应用赚钱(如上所诉),而当面对质疑时就停止了。他们也指出“挖掘加密货币本身并非不合法和不道德的”。然而,他们仍对他没有在 snap 应用描述中披露加密矿工这件事表示了不满意。

随后 Canonical 公司将话题转移到审核软件上。根据这份申明,Snap 应用商店将会采用一种类似 iOS、Android、Windows 的质量控制系统,这个系统将有“自动化的检查点,安装包必须在被接受前通过检查,同时在特殊问题被标记时会进行人工审核”。

然后,Canonical 公司声称“对大规模的软件仓库来说,只接受每个单独文件都被仔细审核过的软件是不可能的”。因此,他们需要信任软件源而不是内容。毕竟,软件源是现在 Ubuntu 软件仓库系统的基础。

Canonical 公司紧接着谈到了 Snap 应用的未来。他们承认现在的系统是不完美的。他们也在不断地进行改善。他们“在开发非常有趣的安全功能,这些功能将会在改善系统安全性同时提升人们在服务器或桌面上进行软件开发的体验”。

其中一个他们正在开发的功能是查看一个软件发布者是否已通过验证。其他的改进包括:“将所有 AppArmor 内核补丁递交到上游”和其它底层修复。

一些关于“Snap 应用商店中的恶意软件”的想法

基于我所了解的所有内容,我产生了一些想法和问题。

这种挖矿软件运行多久了?

首先,这些挖矿软件存在于 Snap 应用商店多久了?因为它们已经被下架了,我们没有这样的数据。我可以通过 Google 快照抓取一些 2048buntu 页面的图片,但这没有提供任何可用的信息。根据该软件运行时间,多少系统安装过,挖掘出了什么加密货币,我们能否知道违规者获取的是一点钱还是一笔钱。一个更长远的问题是:Canonical 公司将来有能力捕捉到这样的违规情况吗?

这真的是一个恶意软件吗?

许多新闻网站将之报道为恶意软件感染。我想我甚至可以看到这个事件被称为 Linux 的第一个恶意软件。我不确定这个术语是否精确。Dictionary.com 这样定义 恶意软件:“意图损害计算机、移动设备、计算机系统或者计算机网络,或者对其运作进行部分控制的软件”。

这个有问题的 snap 应用并没有损害或者控制涉及到的计算机。它同样没有感染其他计算机。它也不能这样做,因为所有的 snap 应用位于沙盒之中。它们最多利用了处理器的计算能力,就是这样。所以,我不会称之为恶意软件。

无孔不入

Nicolas Tomb 使用的一个辩解是在他上传应用的时候 Snap 应用商店没有任何反对加密货币挖矿的规则。(我敢向你打赌他们正在纠正这个错误。)他们之所以没有这样的规则,原因很简单,之前没有人做过这种事。如果 Tomb 想正确地做事,他应该提前询问是否允许这种行为。而事实是他似乎没有指出他知道 Canonical 公司可能会拒绝的事实。至少,Canonical 公司会告诉他将这些写在软件的描述中。

一看就不对劲

如我之前说的,我从 Google 快照获取了一个 2048buntu 的页面截图。仅仅看它就会感觉到一些危险的信号。首先,截图中几乎没有真实的描述。它是这样描述的“类似 2048 的游戏。这个游戏用 ubuntu 主题克隆了流行的游戏 2048。”哇,这将会引来容易上当受骗的人。当我读到类似空洞的描述时,我会多考虑下。

我注意到的另一件事是软件的大小。2048buntu 的 1.0 版本大小将近 140 MB。一个简单的游戏怎么需要这么多的空间?有用 Javascript 写的浏览器版本大概只用了不到它的四分之一。其他 snap 应用商店的 2048 游戏的大小没有一个达到了这个软件的一半。

然后,它有个许可证。这是一个使用了 Ubuntu 主题的流行游戏的克隆。它怎么能被认为是专有软件?我确信,其他合法的开发者会因为该内容而使用了 FOSS (自由开源软件)许可证来上传它。

单是这些因素就使得这个 snap 应用很特殊,应该进行审核。

谁是 Nicolas Tomb?

当第一次了解到这些之后,我决定看看我能否找出造成这些混乱的人。当我搜索 Nicolas Tomb 的时候,我什么都没找到。所有我找到的只是一大堆关于加密货币挖矿 snap 应用的新闻和文章,以及去 tomb of St. Nicolas 旅游的信息。在 Twiter 和 Github 上都没有 Nicolas Tomb 的标志。看起来似乎是为了上传这些 snap 应用才创建的名称。

这同样引出了 Canonical 公司发表的申明中的一点,关于验证发布者。上一次我查看的时候,相当多的 snap 应用不是由应用的维护者发布的。这让我感到担忧。我更乐意相信由 Mozilla 基金会发布的 firefox 的 snap 应用,而不是 Leonard Borsch。如果对应用维护者来说关注应用的 snap 版本太耗费精力,应该有办法让维护者在他们软件的 snap 版本上贴上批准的标签。就像是 Firefox 的 snap 版本由 Fredrick 发布,经 Mozilla 基金会批准。这样才能让用户对下载的内容更放心。

无疑 Snap 应用商店还有改善的空间

在我看来,Snap 应用商店团队应该实现的第一个特性是报告可疑应用的方式。tarwirdur 必须找到该网站的 Github 页面才行。而大多数用户不会想到这一点。如果 Snap 应用商店不能审核每一行代码,那么使用户能够报告问题是退而求其次的办法。即使评分系统也是一个不差的补充。我确信一定有部分人因为 2048buntu 使用了太多系统资源而给它很低的评分。

结论

从我所知道的情况来说,我认为这是某个人创建了一些简单的应用,在每个应用中嵌入了加密货币矿工,之后将这些应用上传到 Snap 应用商店,想着捞一笔钱。一旦他们被抓了,他们就声称这仅仅为了通过应用程序获利。如果真的是这样,他们应该在 snap 应用的描述中提到才对。隐藏加密矿工并不是什么新鲜事。他们通常是一种盗取计算能力的方法。

我希望 Canonical 公司已经具备了解决这个问题的功能,盼望这些功能能很快出来。

你对 Snap 应用商店的“恶意软件风波”有什么看法?你将如何改善这种情况?请在下面的评论中告诉我们。

如果你觉得这篇文章有趣,请花费一点时间将它分享到社交媒体上。


via: https://itsfoss.com/snapstore-cryptocurrency-saga/

作者:John Paul 选题:lujun9972 译者:paperzhang 校对:wxy

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