分类 技术 下的文章

LKRG logo

开源社区的人们正在致力于一个 Linux 内核的新项目,它可以让内核更安全。命名为 Linux 内核运行时防护 Linux Kernel Runtime Guard (LKRG),它是一个在 Linux 内核执行运行时完整性检查的可加载内核模块(LKM)。

它的用途是检测对 Linux 内核的已知的或未知的安全漏洞利用企图,以及去阻止这种攻击企图。

LKRG 也可以检测正在运行的进程的提权行为,在漏洞利用代码运行之前杀掉这个运行进程。

这个项目开发始于 2011 年,首个版本已经发布

因为这个项目开发的较早,LKRG 的当前版本仅仅是通过内核消息去报告违反内核完整性的行为,但是随着这个项目的成熟,将会部署一个完整的漏洞利用缓减系统。

LKRG 的成员 Alexander Peslyak 解释说,这个项目从 2011 年启动,并且 LKRG 已经经历了一个“重新开发"阶段。

LKRG 的首个公开版本是 LKRG v0.0,它现在可以从 这个页面 下载使用。这里 是这个项目的维基,为支持这个项目,它也有一个 Patreon 页面

虽然 LKRG 仍然是一个开源项目,LKRG 的维护者也计划做一个 LKRG Pro 版本,这个版本将包含一个专用的 LKRG 发行版,它将支持对特定漏洞利用的检测,比如,容器泄漏。开发团队计划从 LKRG Pro 基金中提取部分资金用于保证项目的剩余工作。

LKRG 是一个内核模块而不是一个补丁。

一个类似的项目是 附加内核监视器 Additional Kernel Observer (AKO),但是 LKRG 与 AKO 是不一样的,因为 LKRG 是一个内核加载模块而不是一个补丁。LKRG 开发团队决定将它设计为一个内核模块是因为,在内核上打补丁对安全性、系统稳定性以及性能都有很直接的影响。

而以内核模块的方式提供,可以在每个系统上更容易部署 LKRG,而不必去修改核心的内核代码,修改核心的内核代码非常复杂并且很容易出错。

LKRG 内核模块在目前主流的 Linux 发行版上都可以使用,比如,RHEL7、OpenVZ 7、Virtuozzo 7、以及 Ubuntu 16.04 到最新的主线版本。

它并非是一个完美的解决方案

LKRG 的创建者警告用户,他们并不认为 LKRG 是一个完美的解决方案,它提供不了坚不可摧和 100% 的安全。他们说,LKRG 是 “设计为可旁通的”,并且仅仅提供了“多元化安全” 的一个方面。

虽然 LKRG 可以防御许多已有的 Linux 内核漏洞利用,而且也有可能会防御将来许多的(包括未知的)未特意设计去绕过 LKRG 的安全漏洞利用。它是设计为可旁通的(尽管有时候是以更复杂和/或低可利用为代价的)。因此,他们说 LKRG 通过多元化提供安全,就像运行一个不常见的操作系统内核一样,也就不会有真实运行一个不常见的操作系统的可用性弊端。

LKRG 有点像基于 Windows 的防病毒软件,它也是工作于内核级别去检测漏洞利用和恶意软件。但是,LKRG 团队说,他们的产品比防病毒软件以及其它终端安全软件更加安全,因为它的基础代码量比较小,所以在内核级别引入新 bug 和漏洞的可能性就更小。

运行当前版本的 LKRG 大约会带来 6.5% 的性能损失

Peslyak 说 LKRG 是非常适用于 Linux 机器的,它在修补内核的安全漏洞后不需要重启动机器。LKRG 允许用户持续运行带有安全措施的机器,直到在一个计划的维护窗口中测试和部署关键的安全补丁为止。

经测试显示,安装 LKRG v0.0 后大约会产生 6.5% 性能影响,但是,Peslyak 说将在后续的开发中持续降低这种影响。

测试也显示,LKRG 检测到了 CVE-2014-9322 (BadIRET)、CVE-2017-5123 (waitid(2) missing access\_ok)、以及 CVE-2017-6074 (use-after-free in DCCP protocol) 的漏洞利用企图,但是没有检测到 CVE-2016-5195 (Dirty COW) 的漏洞利用企图。开发团队说,由于前面提到的“可旁通”的设计策略,LKRG 没有检测到 Dirty COW 提权攻击。

在 Dirty COW 的测试案例中,由于 bug 机制的原因,使得 LKRG 发生了 “旁通”,并且这也是一种利用方法,它也是将来类似的以用户空间为目标的绕过 LKRG 的一种方法。这样的漏洞利用是否会是普通情况(不太可能!除非 LKRG 或者类似机制的软件流行起来),以及对它的可用性的(负面的)影响是什么?(对于那些直接目标是用户空间的内核漏洞来说,这不太重要,也并不简单)。

via: https://www.bleepingcomputer.com/news/linux/lkrg-linux-to-get-a-loadable-kernel-module-for-runtime-integrity-checking/

作者:Catalin Cimpanu 译者:qhwdw 校对:wxy

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

如何在 CnetOS 7 或 RHEL 7(Red Hat 企业版 Linux)服务器上安装和配置 KVM(基于内核的虚拟机)?如何在 CentOS 7 上设置 KVM 并使用云镜像 / cloud-init 来安装客户虚拟机?

基于内核的虚拟机(KVM)是 CentOS 或 RHEL 7 的虚拟化软件。KVM 可以将你的服务器变成虚拟机管理器。本文介绍如何在 CentOS 7 或 RHEL 7 中使用 KVM 设置和管理虚拟化环境。还介绍了如何使用命令行在物理服务器上安装和管理虚拟机(VM)。请确保在服务器的 BIOS 中启用了虚拟化技术(VT)。你也可以运行以下命令测试 CPU 是否支持 Intel VT 和 AMD\_V 虚拟化技术

$ lscpu | grep Virtualization
Virtualization: VT-x

按照 CentOS 7/RHEL 7 终端服务器上的 KVM 安装步骤进行操作。

步骤 1: 安装 kvm

输入以下 yum 命令:

# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

How to install KVM on CentOS 7 RHEL 7 Headless Server

启动 libvirtd 服务:

# systemctl enable libvirtd
# systemctl start libvirtd

步骤 2: 确认 kvm 安装

使用 lsmod 命令和 grep命令 确认加载了 KVM 模块:

# lsmod | grep -i kvm

步骤 3: 配置桥接网络

默认情况下,由 libvirtd 配置基于 dhcpd 的网桥。你可以使用以下命令验证:

# brctl show
# virsh net-list

KVM default networking

所有虚拟机(客户机)只能对同一台服务器上的其它虚拟机进行网络访问。为你创建的私有网络是 192.168.122.0/24。验证:

# virsh net-dumpxml default

如果你希望你的虚拟机可用于 LAN 上的其他服务器,请在连接到你的 LAN 的服务器上设置一个网桥。更新你的网卡配置文件,如 ifcfg-enp3s0 或 em1:

# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0 

添加一行:

BRIDGE=br0

使用 vi 保存并关闭文件。编辑 /etc/sysconfig/network-scripts/ifcfg-br0

# vi /etc/sysconfig/network-scripts/ifcfg-br0

添加以下内容:

DEVICE="br0"
# I am getting ip from DHCP server #
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"

重新启动网络服务(警告:ssh 命令将断开连接,最好重新启动该设备):

# systemctl restart NetworkManager

brctl 命令验证它:

# brctl show

步骤 4: 创建你的第一个虚拟机

我将会创建一个 CentOS 7.x 虚拟机。首先,使用 wget 命令获取 CentOS 7.x 最新的 ISO 镜像:

# cd /var/lib/libvirt/boot/
# wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso

验证 ISO 镜像:

# wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/sha256sum.txt
# sha256sum -c sha256sum.txt

创建 CentOS 7.x 虚拟机

在这个例子中,我创建了 2GB RAM,2 个 CPU 核心,1 个网卡和 40 GB 磁盘空间的 CentOS 7.x 虚拟机,输入:

# virt-install \
--virt-type=kvm \
--name centos7 \
--ram 2048 \
--vcpus=1 \
--os-variant=centos7.0 \
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1708.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

从另一个终端通过 ssh 配置 vnc 登录,输入:

# virsh dumpxml centos7 | grep v nc
<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>

请记录下端口值(即 5901)。你需要使用 SSH 客户端来建立隧道和 VNC 客户端才能访问远程 vnc 服务器。在客户端/桌面/ macbook pro 系统中输入以下 SSH 端口转发命令:

$ ssh [email protected] -L 5901:127.0.0.1:5901

一旦你建立了 ssh 隧道,你可以将你的 VNC 客户端指向你自己的 127.0.0.1 (localhost) 地址和端口 5901,如下所示:

你应该看到 CentOS Linux 7 客户虚拟机安装屏幕如下:

现在只需按照屏幕说明进行操作并安装CentOS 7。一旦安装完成后,请继续并单击重启按钮。 远程服务器关闭了我们的 VNC 客户端的连接。 你可以通过 KVM 客户端重新连接,以配置服务器的其余部分,包括基于 SSH 的会话或防火墙。

使用云镜像

以上安装方法对于学习目的或单个虚拟机而言是可行的。你需要部署大量的虚拟机吗? 可以试试云镜像。你可以根据需要修改预先构建的云镜像。例如,使用 Cloud-init 添加用户、ssh 密钥、设置时区等等,这是处理云实例的早期初始化的事实上的多分发包。让我们看看如何创建带有 1024MB RAM,20GB 磁盘空间和 1 个 vCPU 的 CentOS 7 虚拟机。(LCTT 译注: vCPU 即电脑中的虚拟处理器)

获取 CentOS 7 云镜像

# cd /var/lib/libvirt/boot
# wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2

创建所需的目录

# D=/var/lib/libvirt/images
# VM=centos7-vm1 ## vm name ##
# mkdir -vp $D/$VM
mkdir: created directory '/var/lib/libvirt/images/centos7-vm1'

创建元数据文件

# cd $D/$VM
# vi meta-data

添加以下内容:

instance-id: centos7-vm1
local-hostname: centos7-vm1

创建用户数据文件

我将使用 ssh 密钥登录到虚拟机。所以确保你有 ssh 密钥:

# ssh-keygen -t ed25519 -C "VM Login ssh key"

ssh-keygen command

请参阅 “如何在 Linux/Unix 系统上设置 SSH 密钥” 来获取更多信息。编辑用户数据如下:

# cd $D/$VM
# vi user-data

添加如下(根据你的设置替换 hostnameusersssh-authorized-keys):

#cloud-config

# Hostname management
preserve_hostname: False
hostname: centos7-vm1
fqdn: centos7-vm1.nixcraft.com

# Users
users:
    - default
    - name: vivek
      groups: ['wheel']
      shell: /bin/bash
      sudo: ALL=(ALL) NOPASSWD:ALL
      ssh-authorized-keys:
        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIMP3MOF2ot8MOdNXCpHem0e2Wemg4nNmL2Tio4Ik1JY VM Login ssh key

# Configure where output will go
output:
  all: ">> /var/log/cloud-init.log"

# configure interaction with ssh server
ssh_genkeytypes: ['ed25519', 'rsa']

# Install my public ssh key to the first user-defined user configured
# in cloud.cfg in the template (which is centos for CentOS cloud images)
ssh_authorized_keys:
  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIMP3MOF2ot8MOdNXCpHem0e2Wemg4nNmL2Tio4Ik1JY VM Login ssh key

# set timezone for VM
timezone: Asia/Kolkata

# Remove cloud-init 
runcmd:
  - systemctl stop network && systemctl start network
  - yum -y remove cloud-init

复制云镜像

# cd $D/$VM
# cp /var/lib/libvirt/boot/CentOS-7-x86_64-GenericCloud.qcow2 $VM.qcow2

创建 20GB 磁盘映像

# cd $D/$VM
# export LIBGUESTFS_BACKEND=direct
# qemu-img create -f qcow2 -o preallocation=metadata $VM.new.image 20G
# virt-resize --quiet --expand /dev/sda1 $VM.qcow2 $VM.new.image

Set VM image disk size

用缩放后的镜像覆盖它:

# cd $D/$VM
# mv $VM.new.image $VM.qcow2

创建一个 cloud-init ISO

# mkisofs -o $VM-cidata.iso -V cidata -J -r user-data meta-data

Creating a cloud-init ISO

创建一个池

# virsh pool-create-as --name $VM --type dir --target $D/$VM
Pool centos7-vm1 created

安装 CentOS 7 虚拟机

# cd $D/$VM
# virt-install --import --name $VM \
--memory 1024 --vcpus 1 --cpu host \
--disk $VM.qcow2,format=qcow2,bus=virtio \
--disk $VM-cidata.iso,device=cdrom \
--network bridge=virbr0,model=virtio \
--os-type=linux \
--os-variant=centos7.0 \
--graphics spice \
--noautoconsole

删除不需要的文件:

# cd $D/$VM
# virsh change-media $VM hda --eject --config
# rm meta-data user-data centos7-vm1-cidata.iso

查找虚拟机的 IP 地址

# virsh net-dhcp-leases default

CentOS7-VM1- Created

登录到你的虚拟机

使用 ssh 命令:

# ssh [email protected]

Sample VM session

有用的命令

让我们看看管理虚拟机的一些有用的命令。

列出所有虚拟机

# virsh list --all

获取虚拟机信息

# virsh dominfo vmName
# virsh dominfo centos7-vm1

停止/关闭虚拟机

# virsh shutdown centos7-vm1

开启虚拟机

# virsh start centos7-vm1

将虚拟机标记为在引导时自动启动

# virsh autostart centos7-vm1

重新启动(软安全重启)虚拟机

# virsh reboot centos7-vm1

重置(硬重置/不安全)虚拟机

# virsh reset centos7-vm1

删除虚拟机

# virsh shutdown centos7-vm1
# virsh undefine centos7-vm1
# virsh pool-destroy centos7-vm1
# D=/var/lib/libvirt/images
# VM=centos7-vm1
# rm -ri $D/$VM

查看 virsh 命令类型的完整列表:

# virsh help | less
# virsh help | grep reboot

关于作者

作者是 nixCraft 的创建者,也是经验丰富的系统管理员和 Linux 操作系统/ Unix shell 脚本的培训师。 他曾与全球客户以及 IT,教育,国防和空间研究以及非营利部门等多个行业合作。 在 TwitterFacebookGoogle + 上关注他。


via: https://www.cyberciti.biz/faq/how-to-install-kvm-on-centos-7-rhel-7-headless-server/

作者:Vivek Gite 译者:MjSeven 校对:wxy

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

在本文中,我将讨论 dudf 命令。dudf 命令都是 Linux 系统的重要工具,来显示 Linux 文件系统的磁盘使用情况。这里我们将通过一些例子来分享这两个命令的用法。

du 命令

du(disk usage 的简称)是用于查找文件和目录的磁盘使用情况的命令。du 命令在与各种选项一起使用时能以多种格式提供结果。

下面是一些例子:

1、 得到一个目录下所有子目录的磁盘使用概况

$ du /home

du command

该命令的输出将显示 /home 中的所有文件和目录以及显示块大小。

2、 以人类可读格式也就是 kb、mb 等显示文件/目录大小

$ du -h /home

du command

3、 目录的总磁盘大小

$ du -s /home

du command

它是 /home 目录的总大小

df 命令

df(disk filesystem 的简称)用于显示 Linux 系统的磁盘利用率。(LCTT 译注:df 可能应该是 disk free 的简称。)

下面是一些例子。

1、 显示设备名称、总块数、总磁盘空间、已用磁盘空间、可用磁盘空间和文件系统上的挂载点。

$ df

df command

2、 人类可读格式的信息

$ df -h

df command

上面的命令以人类可读格式显示信息。

3、 显示特定分区的信息

$ df -hT /etc

df command

-hT 加上目标目录将以可读格式显示 /etc 的信息。

虽然 dudf 命令有更多选项,但是这些例子可以让你初步了解。如果在这里找不到你要找的东西,那么你可以参考有关命令的 man 页面。

另外,在这阅读我的其他帖子,在那里我分享了一些其他重要和经常使用的 Linux 命令。

如往常一样,欢迎你留下评论和疑问,因此在下面留下你的评论和疑问,我会回复你。


via: http://linuxtechlab.com/du-df-commands-examples/

作者:SHUSAIN 译者:geekpi 校对:wxy

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

用于统计技术的 R 项目是分析数据的有力方式,而 RStudio IDE 则可使这一切更加容易。

从我记事起,我就一直喜欢摆弄数字。作为 20 世纪 70 年代后期的大学生,我上过统计学的课程,学习了如何检查和分析数据以揭示其意义。

那时候,我有一部科学计算器,它让统计计算变得比以往更容易。在 90 年代早期,作为一名从事 t 检验 t-test 、相关性以及 ANOVA 研究的教育心理学研究生,我开始通过精心编写输入到 IBM 主机的文本文件来进行计算。这个主机远超我的手持计算器,但是一个小的空格错误就会导致整个过程无效,而且这个过程仍然有点乏味。

撰写论文时,尤其是我的毕业论文,我需要一种方法能够根据我的数据来创建图表,并将它们嵌入到文字处理文档中。我着迷于 Microsoft Excel 及其数字运算能力以及可以用计算结果创建出的大量图表。但这条路每一步都有成本。在 20 世纪 90 年代,除了 Excel,还有其他专有软件包,比如 SAS 和 SPSS+,但对于我那已经满满的研究生时间表来说,学习曲线是一项艰巨的任务。

快速回到现在

最近,由于我对数据科学的兴趣浓厚,加上对 Linux 和开源软件感兴趣,我阅读了大量的数据科学文章,并在 Linux 会议上听了许多数据科学演讲者谈论他们的工作。因此,我开始对编程语言 R(一种开源的统计计算软件)非常感兴趣。

起初,这只是一个偶发的一个想法。当我和我的朋友 Michael J. Gallagher 博士谈论他如何在他的 博士论文 研究中使用 R 时,这个火花便增大了。最后,我访问了 R 项目 的网站,并了解到我可以轻松地安装 R for Linux。游戏开始!

安装 R

根据你的操作系统和发行版情况,安装 R 会稍有不同。请参阅 Comprehensive R Archive Network (CRAN)网站上的安装指南。CRAN 提供了在 各种 Linux 发行版Fedora,RHEL,及其衍生版MacOSWindows 上的安装指示。

我在使用 Ubuntu,按照 CRAN 的指示,将以下行加入到我的 /etc/apt/sources.list 文件中:

deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu artful/

接着我在终端运行下面命令:

$ sudo apt-get update
$ sudo apt-get install r-base

根据 CRAN 说明,“需要从源码编译 R 的用户[如包的维护者,或者任何通过 install.packages() 安装包的用户]也应该安装 r-base-dev 的包。”

使用 R 和 RStudio

安装好了 R,我就准备了解更多关于使用这个强大的工具的信息。Gallagher 博士推荐了 DataCamp 上的 “R 语言入门”,并且我也在 Code School 找到了适用于 R 新手的免费课程。两门课程都帮助我学习了 R 的命令和语法。我还参加了 Udemy 上的 R 在线编程课程,并从 No Starch 出版社 上购买了 R 之书

在阅读更多内容并观看 YouTube 视频后,我意识到我还应该安装 RStudio。Rstudio 是 R 语言的开源 IDE,易于在 Debian、Ubuntu、 Fedora 和 RHEL 上安装。它也可以安装在 MacOS 和 Windows 上。

根据 RStudio 网站的说明,可以根据你的偏好对 IDE 进行自定义,具体方法是选择工具菜单,然后从中选择全局选项。

R 提供了一些很棒的演示例子,可以通过在提示符处输入 demo() 从控制台访问。demo(plotmath)demo(perspective) 选项为 R 强大的功能提供了很好的例证。我尝试过一些简单的 vectors 并在 R 控制台的命令行中绘制,如下所示。

你可能想要开始学习如何将 R 和一些样本数据结合起来使用,然后将这些知识应用到自己的数据上得到描述性统计。我自己没有丰富的数据来分析,但我搜索了可以使用的数据集 datasets;有一个这样的数据集(我并没有用这个例子)是由圣路易斯联邦储备银行提供的 经济研究数据。我对一个题为“美国商业航空公司的乘客里程(1937-1960)”很感兴趣,因此我将它导入 RStudio 以测试 IDE 的功能。RStudio 可以接受各种格式的数据,包括 CSV、Excel、SPSS 和 SAS。

数据导入后,我使用 summary(AirPassengers) 命令获取数据的一些初始描述性统计信息。按回车键后,我得到了 1949-1960 年的每月航空公司旅客的摘要以及其他数据,包括飞机乘客数量的最小值、最大值、四分之一位数、四分之三位数、中位数以及平均数。

我从摘要统计信息中知道航空乘客样本的均值为 280.3。在命令行中输入 sd(AirPassengers) 会得到标准偏差,在 RStudio 控制台中可以看到:

接下来,我生成了一个数据直方图,通过输入 hist(AirPassengers); 得到,这会以图形的方式显示此数据集;RStudio 可以将数据导出为 PNG、PDF、JPEG、TIFF、SVG、EPS 或 BMP。

除了生成统计数据和图形数据外,R 还记录了我所有的历史操作。这使得我能够返回先前的操作,并且我可以保存此历史记录以供将来参考。

在 RStudio 的脚本编辑器中,我可以编写我发出的所有命令的脚本,然后保存该脚本以便在我的数据更改后能再次运行,或者想重新访问它。

获得帮助

在 R 提示符下输入 help() 可以很容易找到帮助信息。输入你正在寻找的信息的特定主题可以找到具体的帮助信息,例如 help(sd) 可以获得有关标准差的帮助。通过在提示符处输入 contributors() 可以获得有关 R 项目贡献者的信息。您可以通过在提示符处输入 citation() 来了解如何引用 R。通过在提示符出输入 license() 可以很容易地获得 R 的许可证信息。

R 是在 GNU General Public License(1991 年 6 月的版本 2,或者 2007 年 6 月的版本 3)的条款下发布的。有关 R 许可证的更多信息,请参考 R 项目官网

另外,RStudio 在 GUI 中提供了完美的帮助菜单。该区域包括 RStudio 快捷表(可作为 PDF 下载),RStudio的在线学习、RStudio 文档、支持和 许可证信息


via: https://opensource.com/article/18/2/getting-started-RStudio-IDE

作者:Don Watkins 译者:szcf-weiya 校对:wxy

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

yum 命令是 RHEL / CentOS Linux 系统中用来安装和更新软件包的一个工具。我知道如何使用 yum 命令行 更新系统,但是我想用 cron 任务自动更新软件包。该如何配置才能使得 yum 使用 cron 自动更新系统补丁或更新呢?

首先需要安装 yum-cron 软件包。该软件包提供以 cron 命令运行 yum 更新所需的文件。如果你想要每晚通过 cron 自动更新可以安装这个软件包。

CentOS/RHEL 6.x/7.x 上安装 yum cron

输入以下 yum 命令:

$ sudo yum install yum-cron

使用 CentOS/RHEL 7.x 上的 systemctl 启动服务:

$ sudo systemctl enable yum-cron.service 
$ sudo systemctl start yum-cron.service 
$ sudo systemctl status yum-cron.service

在 CentOS/RHEL 6.x 系统中,运行:

$ sudo chkconfig yum-cron on 
$ sudo service yum-cron start

yum-cronyum 的一个替代方式。使得 cron 调用 yum 变得非常方便。该软件提供了元数据更新、更新检查、下载和安装等功能。yum-cron 的各种功能可以使用配置文件配置,而不是输入一堆复杂的命令行参数。

配置 yum-cron 自动更新 RHEL/CentOS Linux

使用 vi 等编辑器编辑文件 /etc/yum/yum-cron.conf/etc/yum/yum-cron-hourly.conf

$ sudo vi /etc/yum/yum-cron.conf

确保更新可用时自动更新:

apply_updates = yes

可以设置通知 email 的发件地址。注意: localhost将会被system\_name` 的值代替。

email_from = root@localhost

列出发送到的 email 地址。

email_to = your-it-support@some-domain-name

发送 email 信息的主机名。

email_host = localhost

CentOS/RHEL 7.x 上不想更新内核的话,添加以下内容:

exclude=kernel*

RHEL/CentOS 6.x 下添加以下内容来禁用内核更新

YUM_PARAMETER=kernel*

保存并关闭文件。如果想每小时更新系统的话修改文件 /etc/yum/yum-cron-hourly.conf,否则文件 /etc/yum/yum-cron.conf 将使用以下命令每天运行一次(使用 cat 命令 查看):

$ cat /etc/cron.daily/0yum-daily.cron

示例输出:

#!/bin/bash

# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
if [[ ! -f /var/lock/subsys/yum-cron ]]; then
 exit 0
fi

# Action!
exec /usr/sbin/yum-cron /etc/yum/yum-cron-hourly.conf
[root@centos7-box yum]# cat /etc/cron.daily/0yum-daily.cron
#!/bin/bash

# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
if [[ ! -f /var/lock/subsys/yum-cron ]]; then
 exit 0
fi

# Action!
exec /usr/sbin/yum-cron

完成配置。现在你的系统将每天自动更新一次。更多细节请参照 yum-cron 的说明手册。

$ man yum-cron

关于作者

作者是 nixCraft 的创始人,一个经验丰富的系统管理员和 Linux/Unix 脚本培训师。他曾与全球客户合作,领域涉及IT,教育,国防和空间研究以及非营利部门等多个行业。请在 TwitterFacebookGoogle+ 上关注他。获取更多有关系统管理、Linux/Unix 和开源话题请关注我的 RSS/XML 地址


via: https://www.cyberciti.biz/faq/fedora-automatic-update-retrieval-installation-with-cron/

作者:Vivek Gite 译者:shipsw 校对:wxy

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

前段时间,我们分享了一篇关于 Resetter 的文章 —— 这是一个有用的软件,可以在几分钟内将 Ubuntu 重置为出厂默认设置。使用 Resetter,任何人都可以轻松地将 Ubuntu 重置为第一次安装时的状态。今天,我偶然发现了一个类似的东西。不,它不是一个应用程序,而是一个单行的命令来重置你的 Linux 桌面设置、调整和定制到默认状态。

将 Linux 桌面重置为默认设置

这个命令会将 Ubuntu Unity、Gnome 和 MATE 桌面重置为默认状态。我在我的 Arch Linux MATE 和 Ubuntu 16.04 Unity 上测试了这个命令。它可以在两个系统上工作。我希望它也能在其他桌面上运行。在写这篇文章的时候,我还没有安装 GNOME 的 Linux 桌面,因此我无法确认。但是,我相信它也可以在 Gnome 桌面环境中使用。

一句忠告:请注意,此命令将重置你在系统中所做的所有定制和调整,包括 Unity 启动器或 Dock 中固定的应用程序、桌面小程序、桌面指示器、系统字体、GTK主题、图标主题、显示器分辨率、键盘快捷键、窗口按钮位置、菜单和启动器行为等。

好的是它只会重置桌面设置。它不会影响其他不使用 dconf 的程序。此外,它不会删除你的个人资料。

现在,让我们开始。要将 Ubuntu Unity 或其他带有 GNOME/MATE 环境的 Linux 桌面重置,运行下面的命令:

dconf reset -f /

在运行上述命令之前,这是我的 Ubuntu 16.04 LTS 桌面:

如你所见,我已经改变了桌面壁纸和主题。

这是运行该命令后,我的 Ubuntu 16.04 LTS 桌面的样子:

看见了么?现在,我的 Ubuntu 桌面已经回到了出厂设置。

有关 dconf 命令的更多详细信息,请参阅手册页。

man dconf

在重置桌面上我个人更喜欢 “Resetter” 而不是 dconf 命令。因为,Resetter 给用户提供了更多的选择。用户可以决定删除哪些应用程序、保留哪些应用程序、是保留现有用户帐户还是创建新用户等等。如果你懒得安装 Resetter,你可以使用这个 dconf 命令在几分钟内将你的 Linux 系统重置为默认设置。

就是这样了。希望这个有帮助。我将很快发布另一篇有用的指导。敬请关注!

干杯!


via: https://www.ostechnix.com/reset-linux-desktop-default-settings-single-command/

作者:Edwin Arteaga 译者:geekpi 校对:wxy

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