分类 技术 下的文章

Fedora 工作站附带了一个虽然简单,然而做截图却足够的工具。允许用户快速地对桌面、特定的窗口、或屏幕的任意部分进行截图。屏幕截图工具 (gnome-screenshot) 这个应用程序专门设计用于在桌面系统中快速捕获并保存截图。

启动 Screenshot

在 Fedora 工作站中, 通过在 activities overview 中搜索 screenshot 来启动 Screenshot 。也可以在 applications 视图中找到(在 Utilities 文件夹)。

Screenshot 模式

Screenshot 有三种主要截图模式:

  • 截取整个屏幕
  • 截取当前窗口
  • 截取选定区域

注意,如果你有多个显示器,抓取整个屏幕是将整个屏幕截图,不仅仅是当前的显示器。

这些操作模式也有一些额外的选项。

  • 延迟截取:允许您指定要等多少秒才进行截图。它用于截取稍后才显示的内容。 延迟抓取只能用于“截取整个屏幕”和“截取当前窗口”两种模式。
  • 截取当前窗口模式的额外选项最多。它允许你在截图后自动加上效果,比如阴影。当截取窗口时,您还可以指定是否让窗口边框和鼠标显示在截屏里面。

进行截图

在设置了模式和选项后,按下截屏程序窗口右上角的“截屏”按钮。当你按下截图按钮后,该窗口就会隐藏, 所以它不会显示在你的屏幕截图中。

如果使用“截取选定区域”模式,按下“截屏”按钮后,你的鼠标指针将会变成十字光标型指针。只需单击并拖动选择截图区域即可。

保存截图

截取后,截屏程序会显示一个保存对话框。它会生成一个基于时间的文件名。按你的需要简单地修改文件名,并单击保存。截图还提供一个旁边的按钮,可以将截图复制到剪贴板。如果你想快速粘贴到另一个应用程序如 GIMP 或 Inkscape 进一步编辑的话,这很方便。

键盘快捷键

如果你只想进行截取而不想设置,Fedora 工作站还提供了几个不同方式的截取快捷键:

  • Printscreen – 截取整个桌面的屏幕截图并保存你的照片文件夹
  • Alt + Printscreen – 截取目前获得焦点的窗口截图并保存你的照片文件夹
  • Shift + Printscreen – 选定区域截取并将其保存到你的照片文件夹
  • Ctrl + Printscreen – 截取整个桌面的屏幕截图并将其复制到剪贴板
  • Ctrl + Alt + Printscreen – 截取目前获得焦点的窗口截图并将其复制到剪贴板
  • Ctrl + Shift + Printscreen – 选定区域截取并将其复制到剪贴板

如果你的键盘没有一个 Printscreen 键,您可以在Fedora 工作站应用程序设置的键盘偏好里面更改这些快捷键。

去年八月份,Linux 基金会发起了 LFCS( Linux 基金会认证系统管理员 Linux Foundation Certified Sysadmin )认证,给所有系统管理员一个展现自己的机会。通过基础考试后,他们可以胜任在 Linux 上的整体运维工作:包括系统支持、一流水平的诊断和监控以及在必要之时向其他支持团队提交帮助请求等。

Linux Foundation Certified Sysadmin – Part 4

LFCS 系列第四讲

需要注意的是,Linux 基金会认证是非常严格的,通过与否完全要看个人能力。通过在线链接,你可以随时随地参加 Linux 基金会认证考试。所以,你再也不用到考试中心了,只需要不断提高自己的专业技能和经验就可去参加考试了。

请看一下视频,这里将讲解 Linux 基金会认证程序。

本讲是系列教程中的第四讲。在本讲中,我们将涵盖对存储设备进行分区、格式化文件系统和配置交换分区等内容,这些都是 LFCS 认证中的必备知识。

对存储设备分区

分区是一种将单独的硬盘分成一个或多个区的手段。一个分区只是硬盘的一部分,我们可以认为这部分是独立的磁盘,里边包含一个单一类型的文件系统。分区表则是将硬盘上这些分区与分区标识符联系起来的索引。

在 Linux 上,IBM PC 兼容系统里边用于管理传统 MBR(用到2009年)分区的工具是 fdisk。对于 GPT(2010年至今)分区,我们使用 gdisk。这两个工具都可以通过程序名后面加上设备名称(如 /dev/sdb)进行调用。

使用 fdisk 管理 MBR 分区

我们先来介绍 fdisk:

# fdisk /dev/sdb

然后出现提示说进行下一步操作。若不确定如何操作,按下 “m” 键显示帮助。

fdisk Help Menu

fdisk 帮助菜单

上图中,使用频率最高的选项已高亮显示。你可以随时按下 “p” 显示分区表。

Check Partition Table in Linux

显示分区表

Id 列显示由 fdisk 分配给每个分区的分区类型(分区 id)。一个分区类型代表一种文件系统的标识符,简单来说,包括该分区上数据的访问方法。

请注意,每个分区类型的全面讲解将超出了本教程的范围——本系列教材主要专注于 LFCS 测试,以考试为主。

下面列出一些 fdisk 常用选项:

按下 “l”(小写 L)选项来显示所有可以由 fdisk 管理的分区类型。

按下 “d” 可以删除现有的分区。若硬盘上有多个分区,fdisk 将询问你要删除那个分区。

键入对应的数字,并按下 “w” 保存更改(将更改写入分区表)。

在下图的命令中,我们将删除 /dev/sdb2,然后显示(p)分区表来验证更改。

fdisk Command Options

fdisk 命令选项

按下 “n” 后接着按下 “p” 会创建新一个主分区。最后,你可以使用所有的默认值(这将占用所有的可用空间),或者像下面一样自定义分区大小。

Create New Partition in Linux

创建新分区

若 fdisk 分配的分区 Id 并不是我们想用的,可以按下 “t” 来更改。

Change Partition Name in Linux

更改分区类型

全部设置好分区后,按下 “w” 将更改保存到硬盘分区表上。

Save Partition Changes

保存分区更改

使用 gdisk 管理 GPT 分区

下面的例子中,我们使用 /dev/sdb。

# gdisk /dev/sdb

必须注意的是,gdisk 可以用于创建 MBR 和 GPT 两种分区表。

Create GPT Partitions in Linux

创建 GPT 分区

使用 GPT 分区方案,我们可以在同一个硬盘上创建最多 128 个分区,单个分区最大以 PB 为单位,而 MBR 分区方案最大的只能 2TB。

注意,fdisk 与 gdisk 中大多数命令都是一样的。因此,我们不会详细介绍这些命令选项,而是给出一张使用过程中的截图。

gdisk Command Options

gdisk 命令选项

格式化文件系统

一旦创建完需要的分区,我们就必须为分区创建文件系统。查询你所用系统支持的文件系统,请运行:

# ls /sbin/mk*

Check Filesystems Type in Linux

检查文件系统类型

选择文件系统取决于你的需求。你应该考虑到每个文件系统的优缺点以及其特点。选择文件系统需要看的两个重要属性:

  • 日志支持,允许从系统崩溃事件中快速恢复数据。
  • 安全增强式 Linux(SELinux)支持,按照项目 wiki 所说,“安全增强式 Linux 允许用户和管理员更好的控制访问控制权限”。

在接下来的例子中,我们通过 mkfs 在 /dev/sdb1 上创建 ext4 文件系统(支持日志和 SELinux),标卷为 Tecmint。mkfs 基本语法如下:

# mkfs -t [filesystem] -L [label] device
或者
# mkfs.[filesystem] -L [label] device

Create ext4 Filesystems in Linux

创建 ext4 文件系统

创建并启用交换分区

要让 Linux 系统访问虚拟内存,则必须有一个交换分区,当内存(RAM)用完的时候,将硬盘中指定分区(即 Swap 分区)当做内存来使用。因此,当有足够的系统内存(RAM)来满足系统的所有的需求时,我们并不需要划分交换分区。尽管如此,是否使用交换分区取决于管理员。

下面列出选择交换分区大小的经验法则:

物理内存不高于 2GB 时,取两倍物理内存大小即可;物理内存在 2GB 以上时,取一倍物理内存大小即可;并且所取大小应该大于 32MB。

所以,如果:

M为物理内存大小,S 为交换分区大小,单位 GB,那么:

若 M < 2
    S = M *2
否则
    S = M + 2

记住,这只是基本的经验。对于作为系统管理员的你,才是决定是否使用交换分区及其大小的关键。

要配置交换分区,首先要划分一个常规分区,大小像我们之前演示的那样来选取。然后添加以下条目到 /etc/fstab 文件中(其中的 X 要更改为对应的 b 或 c)。

/dev/sdX1 swap swap sw 0 0

最后,格式化并启用交换分区:

# mkswap /dev/sdX1
# swapon -v /dev/sdX1

显示交换分区的快照:

# cat /proc/swaps

关闭交换分区:

# swapoff /dev/sdX1

下面的例子,我们会使用 fdisk 将 /dev/sdc1(512MB,系统和内存为 256MB)来设置交换分区,下面是我们之前详细提过的步骤。注意,这种情况下我们使用的是指定大小分区。

Create-Swap-Partition in Linux

创建交换分区

Add Swap Partition in Linux

启用交换分区

结论

在你的系统管理员之路上,创建分区(包括交换分区)和格式化文件系统是非常重要的一步。我希望本文中所给出的技巧指导你到达你的管理员目标。随时在本讲评论区中发表你的技巧和想法,一起为社区做贡献。

参考链接


via: http://www.tecmint.com/create-partitions-and-filesystems-in-linux/

作者:Gabriel Cánepa 译者:GHLandy 校对:wxy

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

在 Windows 10 中原生运行 Linux bash 和其它的 ELF 二进制程序?对,你没看错,这就是昨晚微软宣布的“Ubuntu on Windows”项目所披露的事实——而且,今天不是 4/1。

之前就有传闻说,微软在 Windows 10 里暗藏神秘 Linux 子系统!现在,传闻变成真的了。

Ubuntu on Windows 10

据该项目的合作方, Ubnutu 背后的 Canonical 公司的产品与战略负责人 Dustin Kirkland 说,他在几个月前听说这个疯狂的想法时也懵了,花费了不少工夫才理解这后面发生了什么。

本文带你揭开“Ubuntu on Windows”的神秘一角。

首先,让我们看看发生了什么?

  1. 首先你得有个 Windows 10
  2. 打开 Windows 开始菜单
  3. 输入“bash” (没有引号),回车
  4. 这会打开一个 cmd.exe 窗口
  5. 运行 Ubuntu 的 /bin/bash
  6. 宾果!你可以完全访问所有的 Ubuntu 用户空间了
  7. 没错,这包括 apt、 ssh、 rsync、 find、 grep、 awk、 sed、 sort、 xargs、 md5sum、 gpg、 curl、 wget、apache、 mysql、 python、 perl、 ruby、 php、 gcc、 tar、 vim、 emacs、 diff、 patch 等等
  8. 以及,Ubuntu 软件库中数以万计的 ELF 二进制程序中的绝大多数!

Bash

“好吧,这是一个运行在虚拟机的 Ubuntu 吗?” 不!这根本不是一个虚拟机,不用在虚拟机中启动 Linux 内核,它就是 Ubuntu 的用户空间。

“哦,那是运行在容器里面啰?” 不不!这也不是一个容器,这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯,就像 cygwin 那样?”不不不!cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里,我们说的是一个比特都不差、校验值完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下

... ...

“那么,这就像是模拟器一样么?”这就比较接近真相了,来自微软的一些尖端技术人员正在研究一种技术,可以将 Linux 的系统调用实时地转换为 Windows 的系统调用。你可以把它当成 Wine 的一种反向技术。微软将其称之为“ Windows 下的 Linux 子系统 Windows Subsystem for Linux ”,当然现在还没有开源。(我觉得网友 delectate 说的比较有趣,这个东西不如叫做 mine=microsoft's native emulator 。)

而且,根据 Dustin Kirkland说法,使用跨平台的性能测试工具 sysbench 进行测试的结果发现,在 Windows 下运行这些原生的 ELF 二进制程序和在 Linux 下运行所消耗的 CPU 、内存和 IO 性能相当。对于这个结果,我表示非常的吃惊!

Dustin Kirkland 是该项目组的成员之一,他的体验可以让我们感受一下这个“超级神秘”的项目。

由于需要将整个 Ubuntu 的根文件系统打包到一个 Windows 应用软件包(.appx)中,这位已经十几年没有使用过 Windows 的老兄对微软开发工具十分陌生,在经过几个小时与 Visual Studio 的痛苦搏斗,制作了一堆各种尺寸的 png 图标,编辑了一打以上的 XML 文件后,他简直忍不住要将咖啡杯扔到该死的屏幕上了。

到最后,他终于寻求他所熟悉的 Linux 经验解决了这些问题。

按下 Windows 键,输入“bash”,回车!他发现这个要上载的根文件系统的内容放在 /mnt/c/Users/Kirkland/Downloads 下,只需要使用一个 cp -a 复制到目标位置即可,并用 find | xargs |rename 来批量更新文件名,用 grep| xargs | sed 搜索替换路径,用 convert 工具快速地批量缩放图标,简直不要太容易地搞定了这些工作,剩下的就只需要让 Visual Studio 自己干了,编译、上载到 Windows Store。搞定!

嗯,你也许从终端窗口中看到了 /mnt/c ,没错,这就是你的 Windows 下的 C: 盘,它们以读写模式直接挂载到 /mnt 下了。当然,你也可以在 Windows 下通过类似如下的路径访问 Ubuntu 的文件系统:C:\Users\Kirkland\AppData\Local\Lxss\rootfs\ 。

文件系统

同时,如果需要 ssh 连接到其它的 Linux 上,你根本不用下载 putty,直接输入 ssh 即可:

ssh

当然,你也可以使用 apt 来安装和更新软件包:

apt

到目前为止,是不是所有的东西都可以完美工作了?还不全是。LTP 测试中的大多数都没问题,但是有一些则还不行,主要是 tty 相关的部分,比如 byobu、screen、tmux 等还不能很好的工作,不过相信也快了。

另外,顺便提一句,当前这个子系统所采用的 Linux 镜像是 Ubuntu 14.04 LTS,等 16.04 LTS 发布后相信很快就会更新到 Windows Store 上。

问题: 如何在你的 Linux 发行版上安装 Node.js?

Node.js 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上。在构建高性能的服务器端应用程序上,Node.js 在 JavaScript 中已是首选方案。是什么让使用 Node.js 库和应用程序的庞大生态系统来开发服务器后台变得如此流行。Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它,进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系。

在本教程中,我将介绍 如何在主流 Linux 发行版上安装 Node.js,包括 Debian,Ubuntu,Fedora 和 CentOS

Node.js 在一些发行版上有预构建的程序包(如,Fedora 或 Ubuntu),而在其他发行版上你需要通过源码安装。由于 Node.js 发展比较快,建议从源码安装最新版而不是安装一个过时的预构建的程序包。最新的 Node.js 自带 npm(Node.js 的包管理器),让你可以轻松的安装 Node.js 的外部模块。

在 Debian 上安装 Node.js on

从 Debian 8 (Jessie)开始,Node.js 已被纳入官方软​​件仓库。因此,你可以使用如下方式安装它:

$ sudo apt-get install npm

在 Debian 7 (Wheezy) 以前的版本中,你需要使用下面的方式来源码安装:

$ sudo apt-get install python g++ make
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

在 Ubuntu 或 Linux Mint 中安装 Node.js

Node.js 被包含在 Ubuntu(13.04 及更高版本)。因此,安装非常简单。以下方式将安装 Node.js 和 npm。

$ sudo apt-get install npm
$ sudo ln -s /usr/bin/nodejs /usr/bin/node

而 Ubuntu 中的 Node.js 可能版本比较老,你可以从 其 PPA 中安装最新的版本。

$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository -y ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install npm

在 Fedora 中安装 Node.js

Node.js 被包含在 Fedora 的 base 仓库中。因此,你可以在 Fedora 中用 yum 安装 Node.js。

$ sudo yum install npm

如果你想安装 Node.js 的最新版本,可以按照以下步骤使用源码来安装。

$ sudo yum groupinstall 'Development Tools'
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

在 CentOS 或 RHEL 中安装 Node.js

在 CentOS 使用 yum 包管理器来安装 Node.js,首先启用 EPEL 软件库,然后运行:

$ sudo yum install npm

如果你想在 CentOS 中安装最新版的 Node.js,其安装步骤和在 Fedora 中的相同。

在 Arch Linux 上安装 Node.js

Node.js 在 Arch Linux 的社区库中可以找到。所以安装很简单,只要运行:

$ sudo pacman -S nodejs npm

检查 Node.js 的版本

一旦你已经安装了 Node.js,你可以使用如下所示的方法检查 Node.js 的版本。

$ node --version 

via: http://ask.xmodulo.com/install-node-js-linux.html

作者:Dan Nanni 译者:strugglingyou 校对:wxy

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

最近,Linux 基金会发起了一个全新的 LFCS( Linux 基金会认证系统管理员 Linux Foundation Certified Sysadmin )认证,旨在让遍布全世界的人都有机会参加该认证的考试,通过考试的人将表明他们有能力在 Linux 上执行基本的中级系统管理任务。这项认证包括了对已运行的系统和服务的支持、一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力。

Linux Foundation Certified Sysadmin – Part 3

LFCS 系列第三讲

请看以下视频,这里边讲给出 Linux 基金会认证程序的一些想法。

本讲是系列教程中的第三讲,在这一讲中,我们会涵盖如何在文件系统中归档/压缩文件及目录、设置文件属性和搜索文件等内容,这些都是 LFCS 认证中必须掌握的知识。

归档和压缩的相关工具

文件归档工具将一堆文件整合到一个单独的归档文件之后,我们可以将归档文件备份到不同类型的介质或者通过网络传输和发送 Email 来备份。在 Linux 中使用频率最高的归档实用工具是 tar。当归档工具和压缩工具一起使用的时候,可以减少同一文件和信息在硬盘中的存储空间。

tar 使用工具

tar 将一组文件打包到一个单独的归档文件(通常叫做 tar 文件或者 tarball)。tar 这个名称最初代表 磁带存档程序 tape archiver ,但现在我们可以用它来归档任意类型的可读写介质上边的数据,而不是只能归档磁带数据。tar 通常与 gzip、bzip2 或者 xz 等压缩工具一起使用,生成一个压缩的 tarball。

基本语法:

# tar [选项] [路径名 ...]

其中 ... 代表指定哪些文件进行归档操作的表达式

tar 的常用命令

长选项简写描述
-createc创建 tar 归档文件
-concatenateA将一存档与已有的存档合并
-appendr把要存档的文件追加到归档文件的末尾
-updateu更新新文件到归档文件中去
-diff 或 -compared比较存档与当前文件的不同之处
-file archivef使用档案文件或归档设备
-listt列出 tarball 中的内容
-extract 或 -getx从归档文件中释放文件

常用的操作修饰符

长选项缩写描述
-directory dirC执行归档操作前,先转到指定目录
-same-permissionsp保持原始的文件权限
-verbosev列出所有的读取或提取的文件。但这个标识符与 -list 一起使用的时候,还会显示出文件大小、属主和时间戳的信息
-verifyW写入存档后进行校验
-exclude file 不把指定文件包含在内
-exclude=patternX以PATTERN模式排除文件
-gzip 或 -gunzipz通过gzip压缩归档
-bzip2j通过bzip2压缩归档
-xzJ通过xz压缩归档

Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高一点。另外,xz 是最新的压缩工具,压缩率最好。xz 具有最佳压缩率的代价是:完成压缩操作花费最多时间,压缩过程中占有较多系统资源。

通常,通过这些工具压缩的 tar 文件相应的具有 .gz、.bz2 或 .xz的扩展名。在下列的例子中,我们使用 file1、file2、file3、file4 和 file5 进行演示。

通过 gzip、bzip2 和 xz 压缩归档

归档当前工作目录的所有文件,并以 gzip、bzip2 和 xz 压缩刚刚的归档文件(请注意,用正则表达式来指定哪些文件应该归档——这是为了防止将归档工具包前一步生成的文件打包进来)。

# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

Compress Multiple Files Using tar

压缩多个文件

列举 tarball 中的内容和更新/追加文件到归档文件中

列举 tarball 中的内容,并显示相同信息为一个详细目录清单。注意,不能直接向压缩的归档文件更新/追加文件(若你需要向压缩的 tarball 中更新/追加文件,需要先解压 tar 文件后再进行操作,然后重新压缩)。

# tar tvf [tarball]

Check Files in tar Archive

列举归档文件中的内容

运行一下任意一条命令:

# gzip -d myfiles.tar.gz    [#1]
# bzip2 -d myfiles.tar.bz2  [#2]
# xz -d myfiles.tar.xz      [#3]

然后:

# tar --delete --file myfiles.tar file4 (删除tarball中的file4)
# tar --update --file myfiles.tar file4 (更新tarball中的file4)

# gzip myfiles.tar      [ 如果你运行 #1 命令 ]
# bzip2 myfiles.tar     [ 如果你运行 #2 命令 ]
# xz myfiles.tar        [ 如果你运行 #3 命令 ]

最后

# tar tvf [tarball] #再次

将 file4 修改后的日期和时间与之前显示的对应信息进行比较

排除文件类型

假设你现在需要备份用户的家目录。一个有经验的系统管理员会选择忽略所有视频和音频文件再备份(也可能是公司规定)。

可能你最先想到的方法是在备份的时候,忽略扩展名为 .mp3 和 .mp4(或者其他格式)的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp,那你的方法就不灵了。为了发现并排除音频或者视频文件,你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查:

#!/bin/bash
# 把需要进行备份的目录传递给 $1 参数.
DIR=$1
# 排除文件类型中包含了 mpeg 字符串的文件,然后创建 tarball 并进行压缩。
# -若文件类型中包含 mpeg 字符串, $?(最后执行的命令的退出状态)返回 0,然后文件名被定向到排除选项。否则返回 1。
# -若 $? 等于 0,该文件从需要备份文件的列表排除。
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Exclude Files in tar Archive

排除文件进行备份

使用 tar 保持文件的原有权限进行恢复

通过以下命令,你可以保留文件的权限将备份文件恢复到原始用户的家目录(本例是 user\_restore)。

# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

Restore Files from tar Archive

从归档文件中恢复

扩展阅读:

通过 find 命令搜索文件

find 命令用于递归搜索目录树中包含指定字符的文件和目录,然后在屏幕显示出于指定字符相匹配的文件和目录,或者在匹配项进行其他操作。

通常,我们通过文件名、文件的属主、属组、类型权限、日期及大小来搜索。

基本语法:

# find [需搜索的目录] [表达式]

通过文件大小递归搜索文件

以下命令会搜索当前目录(.)及其下两层子目录(-maxdepth 3,包含当前目录及往下两层的子目录)中大于 2 MB(-size +2M)的所有文件(-f)。

# find . -maxdepth 3 -type f -size +2M

Find Files by Size in Linux * 通过文件大小搜索文件*

搜索符合一定规则的文件并将其删除

有时候,777 权限的文件通常为外部攻击者打开便利之门。不管是以何种方式,让所有人都可以对文件进行任意操作都是不安全的。对此,我们采取一个相对激进的方法——删除这些文件('{}' + 用来“聚集”搜索的结果)。

# find /home/user -perm 777 -exec rm '{}' +

Find all 777 Permission Files

搜索 777 权限的文件

按访问时间和修改时间搜索文件

搜索 /etc 目录下访问时间(-atime)或修改时间(-mtime)大于(+180)或小于(-180) 6 个月或者刚好(180) 6 个月的配置文件。

按照下面例子对命令进行修改:

# find /etc -iname "*.conf" -mtime -180 -print

Find Files by Modification Time

按修改时间搜索文件

文件权限及基本属性

ls -l 命令输出的前 10 位字符是文件的属性,其中第一个字符用来表明文件的类型。

  • – : 普通文件
  • -d : 目录
  • -l : 符号链接
  • -c : 字符设备 (它将数据作为字节流处理,如terminal)
  • -b : 块设备 (在块设备中处理数据,如存储设备)

接下来表示文件属性的 9 位字符叫做文件的读写模式,代表文件属主、同组用户和其他用户(通常指的是“外部世界”)对应的读(r)、写(w)和执行(x)权限。

文件的写权限允许对应的用户对文件进行打开和读写,对于同时设置了执行权限的目录,对应用户可以列举出该目录的内容。另外,文件的执行权限允许将文件当做是一个可执行程序来运行,而目录的执行权限则是允许用户进入和退出该目录。

文件的权限通过 chown 命令来更改,其基本语法如下:

# chmod [new_mode] file

new\_mode 可以是 3 位八进制数值或者对应权限的表达式。

八进制数值可以从二进制数值进行等值转换,通过下列方法来计算文件属主、同组用户和其他用户权限对应的二进制数值:

一个确定权限的二进制数值表现为 2 的幂(r=2^2,w=2^1,x=2^0),当权限省缺时,二进制数值为 0。如下:

Linux File Permissions

文件权限

使用八进制数值设置上图的文件权限,请输入:

# chmod 744 myfile

通过 u、g 和 o 分别代表用户、同组用户和其他用户,然后你也可以使用权限表达式来单独对用户设置文件的权限模式。也可以通过 a 代表所有用户,然后设置文件权限。通过 + 号或者 - 号相应的赋予或移除文件权限。

为所有用户撤销一个 shell 脚本的执行权限

正如之前解释的那样,我们可以通过 - 号为需要移除权限的属主、同组用户、其他用户或者所有用户去掉指定的文件权限。下面命令中的短横线(-)可以理解为:移除(-)所有用户(a)的 backup.sh 文件执行权限(x)。

# chmod a-x backup.sh

下面演示为文件属主、同组用户赋予读、写和执行权限,并赋予其他用户读权限。

当我们使用 3 位八进制数值为文件设置权限的时候,第一位数字代表属主权限,第二位数字代表同组用户权限,第三位数字代表其他用户的权限:

  • 属主:(r=2^2 + w=2^1 + x=2^0 = 7)
  • 同组用户:(r=2^2 + w=2^1 + x=2^0 = 7)
  • 其他用户:(r=2^2 + w=0 + x=0 = 4)

命令如下:

# chmod 774 myfile

随着练习时间的推移,你会知道何种情况下使用哪种方式来更改文件的权限模式的效果最好。

使用 ls -l 详细列举目录详细同样会显示出文件的属主和属组(这个很基本,而且影响到系统文件的访问控制)。

Linux File Listing

列举 Linux 文件

通过 chown 命令可以对文件的归属权进行更改,可以同时或者分开更改属主和属组。其基本语法为:

# chown user:group file

至少要指定用户或者用户组

举几个例子:

将文件的属主更改为指定用户:

# chown gacanepa sent

同时将文件的属主和属组更改为指定的用户和组:

# chown gacanepa:gacanepa TestFile

只将文件的属组更改为指定组。注意组名前的冒号(:)。

# chown :gacanepa email_body.txt

结论

作为一个系统管理员,你需要懂得如何创建和恢复备份、如何在系统中搜索文件并更改它们的属性。通过一些技巧,你可以更好地管理系统并避免以后出问题。

我希望,本文给出的技巧可以帮助你达成管理系统的目标。你可以随时在评论中发表自己的技巧及社区给你带来的益处。

先行感谢!

参考链接


via: http://www.tecmint.com/compress-files-and-finding-files-in-linux/

作者:Gabriel Cánepa 译者:GHLandy 校对:wxy

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

Cockpit 是一个自由开源的服务器管理软件,它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器。Cockpit 使得 linux 系统管理员、系统维护员和开发者能轻松地管理他们的服务器并执行一些简单的任务,例如管理存储、检测日志、启动或停止服务以及一些其它任务。它的报告界面添加了一些很好的功能使得可以轻松地在终端和 web 界面之间切换。另外,它不仅使得管理一台服务器变得简单,更重要的是只需要一个单击就可以在一个地方同时管理多个通过网络连接的服务器。它非常轻量级,web 界面也非常简单易用。在这篇博文中,我们会学习如何安装 Cockpit 并用它管理我们的运行着 Fedora、CentOS、Arch Linux 以及 RHEL 发行版操作系统的服务器。下面是 Cockpit 在我们的 GNU/Linux 服务器中一些非常棒的功能:

  1. 它包含 systemd 服务管理器。
  2. 有一个用于故障排除和日志分析的 Journal 日志查看器。
  3. 包括 LVM 在内的存储配置比以前任何时候都要简单。
  4. 用 Cockpit 可以进行基本的网络配置。
  5. 可以轻松地添加和删除用户以及管理多台服务器。

1. 安装 Cockpit

首先,我们需要在我们基于 linux 的服务器上安装 Cockpit。大部分发行版的官方软件仓库中都有可用的 cockpit 安装包。这篇博文中,我们会在 Fedora 22、CentOS 7、Arch Linux 和 RHEL 7 中通过它们的官方软件仓库安装 Cockpit。

CentOS / RHEL

CentOS 和 RHEL 官方软件库中有可用的 Cockpit。我们只需要用 yum 管理器就可以安装。只需要以 sudo/root 权限运行下面的命令就可以安装它。

# yum install cockpit

Centos 上安装 Cockpit

Fedora 22/21

和 CentOS 一样, Fedora 的官方软件库默认也有可用的 Cockpit。我们只需要用 dnf 软件包管理器就可以安装 Cockpit。

# dnf install cockpit

Fedora 上安装 Cockpit

Arch Linux

现在 Arch Linux 官方软件库中还没有可用的 Cockpit,但 Arch 用户库(Arch User Repository,AUR)有。只需要运行下面的 yaourt 命令就可以安装。

# yaourt cockpit

Arch linux 上安装 Cockpit

2. 启动并启用 Cockpit

成功安装完 Cockpit,我们就要用服务/守护进程管理器启动 Cockpit 服务。到了 2015 年,尽管一些 linux 发行版仍然运行 SysVinit 管理守护进程,但大部分 linux 发行版都采用了 Systemd,Cockpit 使用 systemd 完成从运行守护进程到服务几乎所有的功能。因此,我们只能在运行着 Systemd 的最新的 linux 发行版中安装 Cockpit。要启动 Cockpit 并让它在每次系统重启时自动启动,我们需要在终端或控制台中运行下面的命令。

# systemctl start cockpit

# systemctl enable cockpit.socket

Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket.

3. 允许通过防火墙

启动 Cockpit 并使得它能在每次系统重启时自动启动后,我们现在要给它配置防火墙。由于我们的服务器上运行着防火墙程序,我们需要允许它通过某些端口使得从服务器外面可以访问 Cockpit。

Firewalld

# firewall-cmd --add-service=cockpit --permanent

success

# firewall-cmd --reload

success

允许 Cockpit 通过 Firewalld

Iptables

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# service iptables save

4. 访问 Cockpit Web 界面

下面,我们终于要通过 web 浏览器访问 Cockpit web 界面了。根据配置,我们只需要用浏览器打开 https://ip-address:9090https://server.domain.com:9090。在我们这篇博文中,我们用浏览器打开 https://128.199.114.17:9090,正如下图所示。

通过 SSL 访问 Cockpit Web 服务

此时会出现一个 SSL 认证警告,因为我们正在使用一个自签名认证。我们只需要忽略这个警告并进入到登录页面,在 chrome/chromium 中,我们需要点击 Show Advanced 然后点击 Proceed to 128.199.114.17 (unsafe)

Cockpit 登录界面

现在,要进入仪表盘,我们需要输入详细的登录信息。这里,用户名和密码和用于登录我们的 linux 服务器的用户名和密码相同。当我们输入登录信息并点击 Log In 按钮后,我们就会进入到 Cockpit 仪表盘。

Cockpit 仪表盘

这里我们可以看到所有的菜单以及 CPU、磁盘、网络、存储使用情况的可视化结果。仪表盘正如上图所示。

服务

要管理服务,我们需要点击 web 页面右边菜单中的 Services 按钮。然后,我们会看到服务被分成了 5 个类别,目标、系统服务、套接字、计时器和路径。

Cockpit 服务

Docker 容器

我们甚至可以用 Cockpit 管理 docker 容器。用 Cockpit 监控和管理 Docker 容器非常简单。由于我们的服务器中没有安装运行 docker,我们需要点击 Start Docker。

Cockpit 容器

Cockpit 会自动在我们的服务器上安装和运行 docker。启动之后,我们就会看到下面的截图。然后我们就可以按照需求管理 docker 镜像、容器。

Cockpit 容器管理

Journal 日志查看器

Cockpit 有个日志查看器,它把错误、警告、注意分到不同的标签页。我们也有一个 All 标签页,在这里可以看到所有的日志信息。

Cockpit Journal 日志

网络

在网络部分,我们可以看到两个可视化发送和接收速度的图。我们可以看到这里有一个可用网卡的列表,还有 Add Bond、Bridge、VLAN 的选项。如果我们需要配置一个网卡,我们只需要点击网卡名称。在下面,我们可以看到网络的 Journal 日志信息。

Cockpit Network

存储

现在,用 Cockpit 可以方便地查看硬盘的读写速度。我们可以查看存储的 Journal 日志以便进行故障排除和修复。在页面中还有一个已用空间的可视化图。我们甚至可以卸载、格式化、删除一块硬盘的某个分区。它还有类似创建 RAID 设备、卷组等攻能。

Cockpit Storage

用户管理

通过 Cockpit Web 界面我们可以方便地创建新用户。在这里创建的账户会应用到系统用户账户。我们可以用它更改密码、指定角色、以及删除用户账户。

Cockpit Accounts

实时终端

Cockpit 还有一个很棒的特性。是的,我们可以执行命令,用 Cockpit 界面提供的实时终端执行任务。这使得我们可以根据我们的需求在 web 界面和终端之间自由切换。

Cockpit 终端

总结

Cockpit 是由 Red Hat 开发的使得管理服务器变得轻松简单的自由开源软件。它非常适合于进行简单的系统管理任务和新手系统管理员。它仍然处于开发阶段,还没有稳定版发行。因此不适合于生产环境。它是针对最新的默认安装了 systemd 的 Fedora、CentOS、Arch Linux、RHEL 系统开发的。如果你想在 Ubuntu 上安装 Cockpit,你可以通过 PPA 访问,但现在已经过期了。如果你有任何疑问、建议,请在下面的评论框中反馈给我们,这样我们可以改进和更新我们的内容。非常感谢 !


via: http://linoxide.com/linux-how-to/install-cockpit-fedora-centos-rhel-arch-linux/

作者:Arun Pyasi 译者:ictlyh 校对:wxy

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