Skip to content Skip to main navigation Skip to footer

Linux

Linux:如何在 Linux 中生成全景照片

如果你是一位狂热的摄影爱好者,那么你的摄影集中可能会有一些令人叹为观止的全景摄影作品。事实上,制作这些照片既不需要专业的摄影技术,也不需要什么特别的设备,利用一些照片合并软件(在线或者是离线,桌面设备或者移动设备)就可以将两幅或者多幅有重叠部分的照片轻松合成一幅全景照片。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

这篇教程里,我将会解释 如何在 Linux 中完成全景照片的合并工作。在这儿,我将会使用一款叫做 Hugin 的照片合并软件。

Hugin 是一款开源(GPLv2)并可以免费使用的照片合并工具。它目前支持多个平台,包括 Linux,Windows,OS X 和 FreeBSD。 尽管作为一款开源软件,但是不论在功能上还是质量上,Hugin 都丝毫不逊色于商业软件。相反,Hugin 非常强大,不仅可以用来创建360度全景照片,还支持多种高级测光修正和优化。

在 Linux 中安装 Hugin

在 Debian,Ubuntu 或者 Linux Mint 中安装 Hugin:

$ sudo apt-get install hugin

在 Fedora 中安装 Hugin:

$ sudo yum install hugin

启动 Hugin

我们使用命令来启动Hugin。

$ hugin

在这儿(Assistant页),我们要做的第一件事就是导入我们想要合并的照片。我们先来点击Load images 按钮,然后导入(两张或者多张)图片。当然了,这些照片应该需要相互有一些重叠的部分(我们这里载入了三张)。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

第一次照片合并

在导入照片之后,点击 Align 按钮来开始我们的第一次合并

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

为了正确合并照片,Hugin 将会在一个单独的窗口中启动合并助手,用来分析照片之间的关键点(控制点)。分析完毕之后,呈现在你眼前的将会是一幅全景照片的预览图。

接下来让我们切换回 Hugin 的主窗口。在 Align 按钮的下方,你将会看见照片合并的状态(比如控制点的数量,错误情况)。当然,还会有合并好坏的相关提示。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

如果合并提示显示 bad 或者 really bad,你可以继续按照下面的办法来进行排列的调整。

添加或者删除控制点

在主窗口中,进入 Control Points 标签页。在这儿,Hugin 展现在组合照片中常用的的控制点。我们看到,在左右面板中展现了一对照片,上面的一些同色的小方盒表示的是常用的控制点。你可以手动来添加或者删除这些控制点。这些控制点匹配的越精确,我们得到的合并质量也就越高。除此之外,如果这些控制点分散得比较均匀,得到的效果将会更好。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

使用顶部中间的左右箭头按钮来找到拥有最少控制点的两幅照片。如这样的两幅照片,我们可以试图按照下面的办法来手动增加控制点。

首先我们点击左边照片中的某个点,然后再来点击右边照片中对应的点。Hugin 将会试图自动调整。接下来,我们继续点击底部的 Add 按钮来添加匹配对。重复上面的操作来添加更多的控制点。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

其他优化

我们可以试图进行重新优化,比如点击工具栏中的 Re-optimize 按钮,或者去 Optimizer 标签中重新调整之前的优化。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

接下来回到 Hugin 主窗口中的 Assistant 标签,再次点击 Align 按钮来看看是否能得到一个更棒的结果。

倘若合并的全景照片的水平线参差不齐,我们可以试图将它拉直。首先点击工具栏上的 Preview panorama 按钮。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

然后点击预览窗口中的 Straighten 按钮。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

一旦你对合并的结果感到满意,你可以继续将它导出为图片文件。只需要到 Hugin 主窗口中 Sticher 标签页里进行下面的操作:

调整画布大小,剪切数量。当然,还需要选择输出格式(比如 TIFF,JPEG,PNG)。最后,点击 Stitch!按钮来完成。

Linux:如何在 Linux 中生成全景照片
Linux:如何在 Linux 中生成全景照片

之后会有提示保存当前项目文件(*.pto),设定保存好输出的文件名即可。

导出过程可能会需要花费几秒钟的时间。

本文题图是我利用 Hugin 的实验输出结果。画面中是墨西哥坎昆迷人海滩的全景。:-)

 


via: http://xmodulo.com/2013/12/stitch-photos-together-linux.html

译者:ailurus1991 校对:wxy

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

来源:https://linux.cn/article-2473-1.html

Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令

你有没有感到需要一款Linux下的命令行工具,它可以验证你的拼写?一款可以显示包含特定前缀字符串的行?好的,本篇中,我们会讨论Linux下的 look命令,它满足了上面的这些要求。

Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令
Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令

Linux下的look命令

下面是来自look命令man页面描述的截图:

Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令
Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令

测试环境

  • OS – Ubuntu 13.04
  • Shell – Bash 4.2.45
  • Application – look 2.20.1-5.1ubuntu8

简要教程

现在让我们通过一些特定例子来讨论这个命令。

假设你要验证单词’rendezvous’的拼写。你可以轻松地用look命令做到。

这是个例子 :

$ look rendez
rendezvous
rendezvous's
rendezvoused
rendezvouses
rendezvousing

如你所见,我只传入了单词的前面几个字符作为命令行参数,命令产生了所有的相关单词。这些单词通过look命令从文件 /usr/share/dict/words取回。

另外一种情况是需要打印所有包含特定字符串的行。比如,如果我想要显示c文件中所有的头文件,那么我就用下面的方法:

$ look "#include" efence_test.c
#include
#include

如你所见,它生成了所有的在文件efence_test.c中以”#include”开始的行,因此我知道了原文件中包含的头文件。

默认上,所有look命令的匹配都是大小写敏感的。你可以使用非大小写敏感匹配的选项-f

下面是一些look命令提供了其他一些命令行选项:

Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令
Linux:look: Linux 下验证拼写并显示以某字符串开头的行的命令

想要获取这个命令的更多信息,阅读这个 man 页.

下载/安装/配置

下面是关于look命令的一些链接:

  • 主页 [如果你知道这个工具的主页的话让我知道一下]
  • 下载链接

look命令成了util-linux包的一部分,它在大多数Linux发行版中已经预安装了。

优点

  • 非常容易地在命令行验证拼写。
  • 在大多数Linux发行版中已经预安装。

缺点

  • 依赖于/usr/share/dict/words 来做拼写验证。

总结

一款出色的用来验证拼写的命令行工具。节省了大量时间如果你想要显示以特定字符串为开头的行的话。试一下,你一定会喜欢上它的。


via: http://mylinuxbook.com/look-verify-spellings-and-display-lines/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2475-1.html

Linux:教你在 Debian 和 Ubuntu 上升级 MySQL

系统管理员的日常工作之一就是升级服务,为服务打上补丁包或升级一些花哨的功能。2013年初,最新的 MySQL 5.6发布,目标是提供更好的性能和扩展能力。如果你对此有点兴趣,倒是可以看看我写的这篇 如何在 Debian 和 Ubuntu 上升级 MySQL

在这篇教程中,我会假设你已经通过 apt-get 安装了 MySQL。写这篇文章的时候,大部分 Linux 发行版上部署的都是 MySQL 5.5。这里我将向你们介绍如何从 MySQL 5.5升级到5.6。

步骤1:备份 MySQL 配置文件。

$ sudo mkdir /backup
$ sudo tar cvfvz /backup/mysql_conf.tgz /etc/mysql

步骤2:把数据库导出到一个 .sql 文件,并且把数据存放路径下面的数据也备份起来。

$ sudo sh -c 'mysqldump -u root -p -A --events > /backup/backup_db.sql
$ sudo tar cvfvz /backup/mysql_data.tgz /var/lib/mysql

注意:如果你为你的在线 MySQL 系统提供了持续备份,强烈建议你在执行上面步骤时使用单事务选项,或显式使用锁(以保证数据一致性 —— 译注),详见这个教程

步骤3:停止 MySQL 服务

$ sudo service mysql stop

步骤4:卸载 MySQL 软件包

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean

使用 apt-get 卸载时不要用 purge 选项,这会删除 MySQL 配置文件和其它一些以后要用到的数据。

步骤5: 安装 MySQL 依赖包(内核异步 IO 访问库),MySQL 5.5以及之后的版本都依赖它。

$ sudo apt-get install libaio1

步骤6:从官网下载 Debian 版的 MySQL 软件包

32位系统:

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-i686.deb

64位系统:

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-x86_64.deb

步骤7:安装 MySQL 软件包

$ sudo dpkg -i mysql-5.6.15-debian6.0-*.deb

这个软件包会被安装在 /opt/mysql 目录下面。

步骤8:将 MySQL 命令所在的路径添加到系统环境变量 PATH 内。

Debian 上:

$ sudo sh -c 'echo "PATH=$PATH:/opt/mysql/server-5.6/bin" >> /etc/profile'
$ source /etc/profile

Ubuntu 或 Linux Mint 上:

$ sudo sh -c 'echo "PATH=${PATH}:/opt/mysql/server-5.6/bin" >> /etc/environment'
$ source /etc/environment

步骤9:进入 MySQL 配置文件,修改下面两行配置。

$ sudo vi /etc/mysql/my.cnf

basedir = /opt/mysql/server-5.6

lc-messages-dir = /opt/mysql/server-5.6/share

步骤10:设置启动脚本

复制 MySQL 启动脚本到 /etc/init.d 目录下,并且将脚本设置为开机启动,这样一来 MySQL 就能在系统启动的时候自动启动了。

$ sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql
$ sudo update-rc.d mysql defaults

步骤11:(仅限 Ubuntu) 编辑AppArmor配置

MySQL 的上个版本安装时会为 AppArmor 服务创建一个配置文件,这个文件在 MySQL 卸载后会保留在系统中,但是它与现在安装好的 MySQL 版本不兼容。你需要重新编辑下这个配置文件,然后 MySQL 服务才能正常启动。

首先,建一个软链接。

$ sudo ln -s /opt/mysql/server-5.6/bin/mysqld /usr/sbin/mysqld

然后编辑 MySQL AppArmor 配置文件。

$ sudo vi /etc/apparmor.d/usr.sbin.mysqld

/opt/mysql/server-5.6/lib/plugin/ r,

/opt/mysql/server-5.6/lib/plugin/.so mr,

/opt/mysql/server-5.6/share/** r,

最后重启 AppArmor 服务。

$ sudo service apparmor restart

步骤12:(还是仅限 Ubuntu)删除上个 MySQL 版本留下的自启动配置文件。

这个版本的 MySQL 使用 SysVinit (就是 /etc/init.d/mysql)来代替。

$ sudo rm /etc/init/mysql.conf

步骤13:启动 MySQL 服务。

$ sudo service mysql start

步骤14:恢复 MySQL 数据库。

$ sudo mysql -u root -p < /backup/backup_db.sql

步骤15:最后,升级 MySQL 系统表。

$ sudo /opt/mysql/server-5.6/bin/mysql_upgrade -v -u root -p

解决 MySQL 升级过程中产生的问题

如果 Ubuntu 下的 MySQL 服务启动时出现如下错误,就是由于旧版 MySQL AppArmor 配置文件禁止其运行而引起。你需要参考步骤11来更新 AppArmor 的配置文件。

Dec 20 19:57:48 ubuntu kernel: [ 5856.960592] type=1400 audit(1387598268.807:39): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=25216 comm="apparmor_parser"

via: http://xmodulo.com/2013/12/upgrade-mysql-server-debian-ubuntu.html

译者:bazz2 校对:Caroline

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

来源:https://linux.cn/article-2476-1.html

Linux:实例学习 Linux 的 cd 命令,及对内部命令的解释

在 *nix 的世界里,cd 命令是最为基础的命令,它所做的是改变当前的工作目录。 本文将深入讲解关于 cd 的技术细节。

cd 命令:一个内部命令

绝大多数的 Linux 发行版都将 Bash Shell 用作默认的 Shell。Bash 有一些自己内部的命令,cd 就是其中一个。我将会解释究竟什么是内部命令,以及为什么 cd 会是一个内部命令。

那么首先,请检查确认你的当前 shell 以及环境变量:

现在继续使用 which 命令来检查 cd 所在的路径:

我们发现没有输出。因为在我们的系统中 cd 命令其实并没有对应某个 binary,但是我们却又仍然可以执行这个命令,这就是因为 cd 其实是 BASH 的一个内部命令。内部命令都是被整合进入 shell 里面的。接下来我们可以继续使用 type 命令来查看 cd 这个内部命令的更多信息。

如果你尝试去查看内部命令的手册,会发现并没有为它们单独设置手册。

对于这些内部命令来说,并没有创建单独的进程,因此它们执行起来非常快。

我们可以使用 help 命令来查看所有的内部命令(help 命令本身也是一个内部命令):

为什么 cd 会是一个内部命令

让我们从简单的开始聊起吧。我不会说太多繁琐细节,但是想要弄明白这个问题,还是需要对 Unix 进程有一点了解。

不管 BASH 什么时候创建了一个进程,这个进程事实上都是在 BASH 的一个子 shell 中运行(也就是当前 BASH 进程的子进程)。这些新的进程会做一些改变,或是显示一些东西(如果需要的话),以及当这个进程死亡的时候,子 shell 并不会向当前 BASH 返回信息。请注意,cd 所做的是改变 shell 的 PWD。 因此倘若 cd 是一个外部命令,那么它改变的将会是子 shell 的 PWD,也不会向父 shell 返回任何东西。所以,当前 shell 的 PWD 就不会做任何改变。所有能对当前 shell的环境作出改变的命令都必须是内部命令。 因此如果我们将 cd 做成外部命令,就无法像原来一样改变当前目录了。

好了,现在让我们再来聊聊 cd 命令的用法。

cd 命令的用法:

如果你不加任何参数地来使用 cd 命令,不管你现在在哪,都会把你带到你的 home 目录下。

其实波浪线符号(~)代表的也是 home 目录,我们同样可以用它回到 home(译注:通常用~配合其下的子目录名,来切换到自己home下的子目录,如:cd ~/Desktop)。

如果你是 root 用户,你可以通过使用波浪号加任何一个用户名来切换到该用户的 home 目录下。在一些 Linux 发行版中,没有特权的用户默认是没有权限访问其他用户的 home 目录的。

再来看,. 目录代表的是当前目录,而 .. 代表的是上级目录。所以我们可以使用 .. 来回到上级目录。

大部分情况下,cd . 是不会改变你的 PWD。举例来看:

但是如果你的当前目录已经被重命名了,那么你的 PWD 就会发生改变:

在 BASH 和大部分其他的 shell 中,你可以提供两种不同的路径:绝对路径和相对路径。绝对路径以 / 开始,并且和你的 PWD 无关。而相对路径不会以 / 开始,并且和你的 PWD 相关。

使用绝对路径来改变 PWD:

使用相对路径来改变 PWD:

我们可以在两个目录切换:

cd – 命令可以返回上一次的工作目录,我们可以使用它在两个不同的目录中快速切换。

我们上一次的工作目录会被储存在 OLDPWD 这个变量中。但是如果你在一个新开启的终端中来使用的话,会报出下面的错误:

你可以配合 cd 命令来使用一些 bash 小技巧。

比如,不妨使用 ? 这个万能药:

使用 *:


via: http://linoxide.com/linux-command/linux-cd-command-examples/

译者:ailurus1991 校对:wxy

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

来源:https://linux.cn/article-2479-1.html

Linux:每日Ubuntu小技巧:合上笔记本,系统不睡眠

Ubuntu 是一个处在牛 A 和牛 C 之间的现代操作系统,全世界数百万用户和公司都在使用它。无论是充当工作台还是高级工程机器,Ubuntu 都游刃有余。

如果你是 Ubuntu 初学者,使用过程还需要高手指导,那就关注本站吧。我们已经写了数百篇 Ubuntu 教程,足以带你入门。从安装 Ubuntu 到系统基本设置,我们都有涉猎。

这篇简单的教程为你介绍当笔记本盖子合上时该干嘛还是干嘛,而不是进入睡眠模式或者直接关机。

大多数现代操作系统(包括 Windows)会在笔记本合上时进入睡眠状态。Ubuntu 也是如此。如果你想让你的笔记本盖子合上时不睡眠,就跟着我们学习吧。

要达到这个目的,Ubuntu 有两种方法。第一种是打开 System Settings –> Power(中文版是打开 系统设置 -> 电源),然后进行设置。一些用户设置后不会生效。

另一个方法是直接编辑 Login Manager 的配置文件(logind.conf)。这个方法基本能生效,建议使用这个。

要开始了,按下 Ctrl – Alt – T 组合键,打开终端。然后运行下面的命令打开 logind.conf 文件。你的所有修改都在这个文件内。

sudo gedit /etc/systemd/logind.conf

打开文件后修改下面这行:

#HandleLidSwitch=suspend

改成这样:

HandleLidSwitch=ignore

保存文件,重启 Login Manager 服务:

sudo restart systemd-logind

工作完成!

配置文件的 “ignore” 值告诉 Ubuntu 当笔记本合上后不要睡眠或挂起。不要改动其它设置然后保存文件。

Linux:每日Ubuntu小技巧:合上笔记本,系统不睡眠
Linux:每日Ubuntu小技巧:合上笔记本,系统不睡眠

via: http://www.liberiangeek.net/2013/12/daily-ubuntu-tips-do-nothing-when-laptop-lid-is-closed/

译者:bazz2 校对:Caroline

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

来源:https://linux.cn/article-2485-1.html

Linux:在Debian 7/Ubuntu 13.10 上使用隧道封装SSH连接

隧道 被设计用于远端客户端和本地(可通过inetd启动)或远端服务器间的SSL加密封装。它可以用于为inetd进程增加SSL功能,像POP2(译注:厄,POP2这个服务还有人用么?),POP3和IMAP服务而不必改变程序代码。隧道使用OpenSSL库用于加密,因此它支持任何被编译进库的加密算法。简而言之,隧道可以使任何一个不安全的端口变得安全加密。

Linux:在Debian 7/Ubuntu 13.10 上使用隧道封装SSH连接
Linux:在Debian 7/Ubuntu 13.10 上使用隧道封装SSH连接

在本篇中,我会描述如何通过SSL水稻封装SSH。这个步骤非常简单。你需要在你的客户端PC和远程PC都已经安装运行了sshd。

我正在使用下面提到的两个系统。

远程系统:

操作系统: Debian 7
IP 地址: 192.168.1.200/24

客户端(本地) 系统:

操作系统: Ubuntu 13.04 desktop
IP 地址: 192.168.1.100/24

配置远程系统

让我们在远程Debian 7服务器上安装stunnel包。

# apt-get install stunnel4

现在让我们像下面那样创建一个SSL证书。

# openssl genrsa 1024 > stunnel.key

示例输出:

Generating RSA private key, 1024 bit long modulus
............................................++++++
...................++++++
e is 65537 (0x10001)
# openssl req -new -key stunnel.key -x509 -days 1000 -out stunnel.crt

你会被询问若干个问题如国家、州、公司细节等。

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Tamilnadu
Locality Name (eg, city) []:Erode
Organization Name (eg, company) [Internet Widgits Pty Ltd]:unixmen
Organizational Unit Name (eg, section) []:Technical
Common Name (e.g. server FQDN or YOUR name) []:server.unixmen.com
Email Address []:sk@unixmen.com
# cat stunnel.crt stunnel.key > stunnel.pem
# mv stunnel.pem /etc/stunnel/

现在我们需要配置stunnel来将 443(https)隧道到22(ssh)。这可以通过在/etc/stunnel/目录下创建stunnel.conf文件来实现:

 # vi /etc/stunnel/stunnel.conf

并加入下面的行:

pid = /var/run/stunnel.pid
cert = /etc/stunnel/stunnel.pem
[ssh]
accept = 192.168.1.200:443
connect = 127.0.0.1:22

上面的几行说明了stunnel在哪里寻找证书文件和哪里接收和转发ssh链接。在本例中,stunnel会接收来自443端口的流量并会转发给22端口。

保存并关闭文件。

现在让我们启用stunnel服务。要这么做,编辑文件 /etc/default/stunnel4:

# vi /etc/default/stunnel4

改变行从 ENABLED = 01

# /etc/default/stunnel
# Julien LEMOINE 
# September 2003
# Change to one to enable stunnel automatic startup
ENABLED=1
FILES="/etc/stunnel/*.conf"
OPTIONS=""
# Change to one to enable ppp restart scripts
PPP_RESTART=0

接着使用命令启用stunnel服务:

# service stunnel4 start

配置本地系统

用这个命令安装stunnel:

$ sudo apt-get install stunnel4

我们需要远程系统上相同的证书文件(stunnel.pem)。复制远程系统上的 stunnel.pem文件到我们本地系统中并在相同的位置保存(也就是 /etc/stunnel)。

/etc/stunnel/目录下创建新的文件stunnel.conf

$ sudo vi /etc/stunnel/stunnel.conf

加入下面的行:

pid = /var/run/stunnel.pid
cert = /etc/stunnel/stunnel.pem
client=yes
[ssh]
accept=443
connect=192.168.1.200:443

保存并关闭文件。这里的192.168.1.200是我们的远程系统IP。

现在让我们启用stunnel服务。要这么做,编辑文件/etc/default/stunnel4:

$ sudo vi /etc/default/stunnel4

改变行从 ENABLED = 01.

# /etc/default/stunnel
# Julien LEMOINE 
# September 2003
# Change to one to enable stunnel automatic startup
ENABLED=1
FILES="/etc/stunnel/*.conf"
OPTIONS=""
# Change to one to enable ppp restart scripts
PPP_RESTART=0

接着使用命令启用stunnel服务:

$ sudo service stunnel4 start

测试SSH连接

现在这样已经很好了,你可以使用命令连接到你的远程机器上了:

$ ssh sk@localhost -v -p 443

示例输出:

OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 443.
debug1: Connection established.
debug1: identity file /home/sk/.ssh/id_rsa type -1
debug1: identity file /home/sk/.ssh/id_rsa-cert type -1
debug1: identity file /home/sk/.ssh/id_dsa type -1
debug1: identity file /home/sk/.ssh/id_dsa-cert type -1
debug1: identity file /home/sk/.ssh/id_ecdsa type -1
debug1: identity file /home/sk/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-4
debug1: match: OpenSSH_6.0p1 Debian-4 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.1p1 Debian-4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 78:05:ba:1b:73:02:75:86:10:33:8c:0f:21:61:d4:de
debug1: Host '[localhost]:443' is known and matches the ECDSA host key.
debug1: Found key in /home/sk/.ssh/known_hosts:12
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/sk/.ssh/id_rsa
debug1: Trying private key: /home/sk/.ssh/id_dsa
debug1: Trying private key: /home/sk/.ssh/id_ecdsa
debug1: Next authentication method: password
sk@localhost's password: #   ## Enter your remote system user password
debug1: Authentication succeeded (password).
Authenticated to localhost ([127.0.0.1]:443).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_PAPER = en_IN.UTF-8
debug1: Sending env LC_ADDRESS = en_IN.UTF-8
debug1: Sending env LC_MONETARY = en_IN.UTF-8
debug1: Sending env LC_NUMERIC = en_IN.UTF-8
debug1: Sending env LC_TELEPHONE = en_IN.UTF-8
debug1: Sending env LC_IDENTIFICATION = en_IN.UTF-8
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending env LC_MEASUREMENT = en_IN.UTF-8
debug1: Sending env LC_TIME = en_IN.UTF-8
debug1: Sending env LC_NAME = en_IN.UTF-8
Linux server 3.2.0-4-486 #1 Debian 3.2.51-1 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Mon Dec 30 15:12:22 2013 from localhost
sk@server:~$

或者你可以简单地使用下面的命令:

$ ssh -p 443 sk@localhost

示例输出:

sk@localhost's password:
Linux server 3.2.0-4-486 #1 Debian 3.2.51-1 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Mon Dec 30 15:22:08 2013 from localhost
sk@server:~$

现在你可以用ssh连接到你的远程机器上了,但是所有的流量通过SSL隧道。

你已经完成了!即使ssh的默认端口被防火墙阻止了,你仍然可以使用SSH到你的远程系统。

参考链接:


via: http://www.unixmen.com/tunnel-ssh-connections-ssl-using-stunnel-debian-7-ubuntu-13-10/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2487-1.html

Linux:Debian/Ubuntu系统中安装和配置UFW-简单的防火墙

自从计算机互连后,各种服务迅速发展。用户使用的电子邮件、社交媒体、在线商城、即时聊天甚至网络会议等服务如雨后春笋般涌现。但从另一方面来说,这些连接服务也具有双刃剑,比如它们当中的病毒、恶意软件、特洛伊木马等会向计算机发送恶意消息。

Linux:Debian/Ubuntu系统中安装和配置UFW-简单的防火墙
Linux:Debian/Ubuntu系统中安装和配置UFW-简单的防火墙

安装 UFW 防火墙

作为最大的计算机网络,互联网上可并不都是善意的用户。因此,为了确保我们的计算机或服务器安全,我们需要进行保护。

在你的计算机或服务器上一个必须有的组件就是防火墙。在维基百科中,其定义是:

防火墙是计算机中一款应用软件或基于硬件的网络安全系统。它根据应用配置的规则,分析数据包,然后决定是否允许此数据包通过,来控制整个系统的网络数据进出访问权限。

iptables 是一款广泛使用于服务器的防火墙。它是一款应用程序,它会根据一系列规则来管理服务器上的进出数据流。一般来说,只有可信任的连接才允许进入服务器。但 iptables 是在控制台模式下运行,它非常的复杂。不熟悉 iptables 配置规则和命令的用户可以读读下面的文章,它描述了如何使用iptables防火墙。

Debian/Ubuntu 系统中安装 UFW 防火墙

为了降低 iptables 设置的复杂度,有许多对应的前端应用。如果你运行的是 Ubuntu linux 系统的话, UFW 就是一款默认的防火墙工具。我们开始来探讨 UFW 防火墙吧。

什么是 UFW

UFW (简单的防火墙) 是广泛使用的 iptables 防火墙 的前端应用,这是非常适合于基于主机的防火墙。UFW 即提供了一套管理网络过滤器的框架,又提供了控制防火墙的命令行界面接口。它给那些不熟悉防火墙概念的 Linux 新用户提供了友好、易使用的用户界面。

同时,另一方面,它也提供了命令行界面,为系统管理员准备了一套复杂的命令,用来设置复杂的防火墙规则。UFW 对像 Debian、UbuntuLinux Mint 这些发布版本来说也是上上之选。

UFW 基本用法

首先,用如下命令来检查下系统上是否已经安装了 UFW

$ sudo dpkg --get-selections | grep ufw

如还没有安装,可以使用 apt 命令来安装,如下所示:

$ sudo apt-get install ufw

在使用前,你应该检查下 UFW 是否已经在运行。用下面的命令来检查。

$ sudo ufw status

如果你发现状态是: inactive , 意思是没有被激活或不起作用。

启用/禁用 UFW

要启用它,你只需在终端下键入如下命令:

$ sudo ufw enable

在系统启动时启用和激活防火墙

要禁用,只需输入:

$ sudo ufw disable

列出当前UFW规则

在防火墙被激活后,你可以向里面添加你自己的规则。如果你想看看默认的规则,可以输入。

$ sudo ufw status verbose

输出样例:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

添加UFW规则

如你所见,默认是不允许所有外部访问连接的。如果你想远程连接你的机器,就得开放相应的端口。例如,你想用 ssh 来连接,下面是添加的命令。

允许访问

$ sudo ufw allow ssh
[sudo] password for pungki :
Rule added
Rule added (v6)
$

再一次检查状态,会看到如下的一些输出。

$ sudo ufw status
To      Action          From
--      -----------         ------
22      ALLOW           Anywhere
22      ALLOW           Anywhere (v6)

如果你有很多条规则,想快速的在每条规则上加个序号数字的话,请使用 numbered 参数。

$ sudo ufw status numbered
To      Action          From
------      -----------         ------
[1] 22      ALLOW           Anywhere
[2] 22      ALLOW           Anywhere (v6)

第一条规则的意思是所有通过22端口访问机器的 tcpudp 数据包都是允许的。如果你希望仅允许 tcp 数据包访问应该怎么办?可以在服务端口后加个 tcp 参数。下面的示例及相应的输出。

$ sudo ufw allow ssh/tcp
To      Action          From
------      -----------         ------
22/tcp      ALLOW           Anywhere
22/tcp      ALLOW           Anywhere (v6)

拒绝访问

添加拒绝规则也是同样的招数。我们假设你想拒绝 ftp 访问, 你只需输入

$ sudo ufw deny ftp
To      Action          From
------      -----------         ------
21/tcp      DENY            Anywhere
21/tcp      DENY            Anywhere (v6)

添加特定端口

有时候,我们会自定义一个端口而不是使用标准提供的。让我们试着把机器上 ssh22 端口换成 2290 端口,然后允许从 2290 端口访问,我们像这样添加:

$ sudo ufw allow 2290/ssh (译者注:些处演示例子有问题)
To      Action          From
--      -----------         ------
2290        ALLOW           Anywhere
2290        ALLOW           Anywhere (v6)

你也可以把端口范围添加进规则。如果我们想打开从 2290到2300 的端口以供 tcp 协议使用,命令如下示:

$ sudo ufw allow 2290:2300/tcp
To          Action          From
------          -----------         ------
2290:2300/tcp       ALLOW           Anywhere
2290:2300/tcp       ALLOW           Anywhere (v6)

同样你想使用 udp 的话,如下操作。

$ sudo ufw allow 2290:2300/udp
To          Action          From
------          -----------         ------
2290:2300/udp       ALLOW           Anywhere
2290:2300/udp       ALLOW           Anywhere (v6)

请注意你得明确的指定是 ‘tcp’ 或 ‘udp’,否则会出现跟下面类似的错误信息。

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

添加特定 IP

前面我们添加的规则都是基于 服务程序端口 的,UFW 也可以添加基于 IP 地址的规则。下面是命令样例。

$ sudo ufw allow from 192.168.0.104

你也可以使用子网掩码来扩宽范围。

$ sudo ufw allow form 192.168.0.0/24
To      Action          From
--      -----------         ------
Anywhere    ALLOW           192.168.0.104
Anywhere    ALLOW           192.168.0.0/24

如你所见, from 参数仅仅限制连接的来源,而目的(用 To 列表示)是所有地方。让我们看看允许访问 22端口(ssh)的例子。

$ sudo ufw allow to any port 22

上面的命令会允许从任何地方以及任何协议都可以访问22端口

组合参数

对于更具体的规则,你也可以把 IP 地址协议端口这些组合在一起用。我们想创建一条规则,限制仅仅来自于 192.168.0.104 的 IP ,而且只能使用 tcp 协议和通过 22端口 来访问本地资源。我们可以用如下所示的命令。

$ sudo ufw allow from 192.168.0.104 proto tcp to any port 22

创建拒绝规则的命令和允许的规则类似,仅需要把 allow 参数换成 deny 参数就可以。

删除规则

某些时候需要删除现有的规则。再一次使用 UFW 删除规则是很简单的。在上面的示例中,已经创建了如下的规则,现在你想删除它们。

To      Action          From
--      -----------         ------
22/tcp      ALLOW           192.168.0.104
21/tcp      ALLOW           Anywhere
21/tcp      ALLOW           Anywhere (v6)

删除规则有两个方法。

方法1

下面的命令将会 删除ftp 相关的规则。所以像 21/tcp 这条 ftp 默认访问端口的规则将会被删除掉。

$ sudo ufw delete allow ftp

方法2

但当你使用如下命令来删除上面例子中的规则时,

$ sudo ufw delete allow ssh
或者
$ sudo ufw delete allow 22/tcp

会出现如下所示的一些错误

Could not delete non-existent rule
Could not delete non-existent rule (v6)

我们还有一招。上面已经提到过,可以序列数字来代替你想删除的规则。让我们试试。

$ sudo ufw status numbered
To      Action          From
--      -----------         ------
[1] 22/tcp      ALLOW           192.168.0.104
[2] 21/tcp      ALLOW           Anywhere
[3] 21/tcp      ALLOW           Anywhere (v6)

然后我们删除正在使用的第一条规则。按 “ y ” 就会永久的删除这条规则。

$ sudo ufw delete 1
Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

从这些用法中你就可以发现它们的不同。 方法2 在删除前需要 用户确认 ,而 方法1 不需要。

重置所有规则

某些情况下,你也许需要 删除/重置 所有的规则。可以输入。

$ sudo ufw reset
Resetting all rules to installed defaults. Proceed with operation (y|n)? y

如果你输入“ y ”, UFW 在重置你的 ufw 前会备份所有已经存在规则,然后重置。重置操作也会使你的防火墙处于不可用状态,如果你想使用得再一次启用它。

高级功能

正如我上面所说,UFW防火墙能够做到iptables可以做到的一切。这是通过一些规则文件来完成的,他们只不过是 iptables-restore 所对应的文本文件而已。是否可以通过 ufw 命令微调 UFW 的与/或逻辑来增加 iptables 命令其实就是编辑几个文本文件的事。

  • /etc/default/ufw: 默认策略的主配置文件,支持 IPv6 和 内核模块。
  • /etc/ufw/before[6].rules: 通过 ufw 命令添加进规则之前里面存在的规则会首先计算。
  • /etc/ufw/after[6].rules: 通过 ufw 命令添加进规则之后里面存在的规则会进行计算。
  • /etc/ufw/sysctl.conf: 内核网络可调参数。
  • /etc/ufw/ufw.conf: 设置系统启动时 UFW 是否可用,和设置日志级别。

结论

UFW 作为 iptables 的前端应用,给用户提供了简单的接口界面。使用着不需要去记非常复杂的 iptables 语法。UFW 也使用了‘ 简单英语 ’作为它的参数。

Allow、deny、reset 就是他们当中的一部分。我相信有很多很多 iptables 前端应用,但 UFW 绝对是那些想要快速、简单的就建立自己的防火墙,而且还很安全的用户的最佳替代品之一。请输入 man ufw 查看 ufw 用户手册,来了解更多详情。


via: http://www.tecmint.com/how-to-install-and-configure-ufw-firewall/

译者:runningwater 校对:Caroline

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

来源:https://linux.cn/article-2489-1.html

Linux:如何在Linux下统计高速网络中的流量


Linux:如何在Linux下统计高速网络中的流量
Linux:如何在Linux下统计高速网络中的流量

在Linux中有很多的流量监控工具,它们可以监控、分类网络流量,以花哨的图形用户界面提供实时流量分析报告。大多数这些工具(例如:ntopng  iftop )都是基于libpcap 库的 ,这个函数库是用来截取流经网卡的数据包的,可在用户空间用来监视分析网络流量。尽管这些工具功能齐全,然而基于libpcap库的流量监控工具无法处理高速(Gb以上)的网络接口,原因是由于在用户空间做数据包截取的系统开销过高所致。

在本文中我们介绍一种简单的Shell 脚本,它可以监控网络流量而且不依赖于缓慢的libpcap库。这些脚本支持Gb以上规模的高速网络接口,如果你对“汇聚型”的网络流量感兴趣的话,它们可统计每个网络接口上的流量。

脚本主要是基于sysfs虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net//statistics”输出。

举个例子,eth0的网口上分析报告会输出到这些文件中:

  • /sys/class/net/eth0/statistics/rx_packets: 收到的数据包数据
  • /sys/class/net/eth0/statistics/tx_packets: 传输的数据包数量
  • /sys/class/net/eth0/statistics/rx_bytes: 接收的字节数
  • /sys/class/net/eth0/statistics/tx_bytes: 传输的字节数
  • /sys/class/net/eth0/statistics/rx_dropped: 当收到包数据包下降的数据量
  • /sys/class/net/eth0/statistics/tx_dropped: 传输包数据包下降的数据量

这些数据会根据内核数据发生变更的时候自动刷新。因此,你可以编写一系列的脚本进行分析并计算流量统计。下面就是这样的脚本(感谢 joemiller 提供)。第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。

测量网口每秒数据包:

网络带宽测量

下面的屏幕截图显示了上面的两个脚本的输出。

Linux:如何在Linux下统计高速网络中的流量
Linux:如何在Linux下统计高速网络中的流量

 原文链接: Dan Nanni 翻译: 极客范 – 彭秦进译文链接: http://www.geekfan.net/5558/

Linux:使用ownCloud在Linux安装你的个人云服务

ownCloud是一个免费开源的软件,用于为分享文件,日历,联系人,书签和个人音频/视频。非常容易安装和管理。

Linux:使用ownCloud在Linux安装你的个人云服务
Linux:使用ownCloud在Linux安装你的个人云服务

前提

在这篇教程里我使用CentOS 6.5 minimal server来安装ownCloud。下面是我测试机的资料。

Operating system: CentOS 6.5 Minimal Installation
IP Address: 192.168.1.101/24

在CentOS 6.5上测试了一段时间,ownCloud适用于所有基于RPM的发行版。

你的服务应该工作在LAMP上。参考下面链接去安装LAMP服务。

安装一下必要的PHP扩展:

# yum install php-mysql php-json php-xml php-mbstring php-zip php-gd curl php-curl php-pdo

为ownCloud设置数据库

让我们来创建一个名为’ownclouddb’和数据库用户’ownclouduser’以及密码是’centos’的数据库。

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 66
Server version: 5.5.34-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE ownclouddb;
Query OK, 1 row affected (0.04 sec)
MariaDB [(none)]> GRANT ALL ON ownclouddb.* TO ownclouduser@localhost IDENTIFIED BY 'centos';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> exit
Bye

获取ownCloud

切换到你的apache root目录并下载ownCloud最新版

转到Apache root文件目录并下载最新版ownCloud。

# wget http://download.owncloud.org/community/owncloud-6.0.0a.tar.bz2

用命令解压tar压缩包:

# tar xvf owncloud-6.0.0a.tar.bz2

移动解压后的目录到你的apache root目录 (例如 /var/www/html/)

# mv owncloud/ /var/www/html/

设置一下目录的所有权和权限:

# chown -R apache:apache /var/www/html/owncloud/
# chmod 777 /var/www/html/owncloud/config/

启用apache重写模式。

编辑文件 “/etc/httpd/conf/httpd.conf”,

# vi /etc/httpd/conf/httpd.conf

查找并修改 AllowOverride NoneAllowoverride All.

[...]
     AllowOverride All
[...]

最后,重启apachehttpd和mysql服务。

# service mysql restart
# service httpd restart

开始安装ownCloud

通过你的网页浏览器导航到 http://ip-address/owncloudhttp://domain-name/owncloud

注意:如果遇到任何权限错误,禁用SELinux并再试一次。

自己的云的主页将出现。你将被要求创建一个新的管理员账户。输入管理员账户信息。

然后点击 Advanced 下拉按钮,选择mysql并输入mysql数据库名,数据库用户和密码。最后点击 Finish setup 来完成安装。

Linux:使用ownCloud在Linux安装你的个人云服务
Linux:使用ownCloud在Linux安装你的个人云服务

这是我的ownCloud界面的样子:

Linux:使用ownCloud在Linux安装你的个人云服务
Linux:使用ownCloud在Linux安装你的个人云服务

就是这样。我们的云服务已经准备好了。现在,你可以从你任何网络的客户端来上传/下载你的图片,文件,音频,视频以及访问它们。


via: http://www.unixmen.com/setup-your-personal-cloud-server-in-minutes-using-owncloud/

译者:Vito 校对:wxy

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

来源:https://linux.cn/article-2494-1.html

Linux:戴文的Linux内核专题:14 配置内核 (10)

Linux:戴文的Linux内核专题:14 配置内核 (10)
Linux:戴文的Linux内核专题:14 配置内核 (10)

使用WiMAX协议的无线宽频设备可以启用这个(WiMAX Wireless Broadband support)。这个类型的无线连接通常需由服务供应商提供的连接服务才能工作(这与3G/4G的概念相同)。WiMAX代表”Worldwide Interoperability for Microwave Access”(微波存取全球互通)。WiMAX的目的是代替DSL。宽频指的是宽的带宽和大量信号的传输。

射频开关被用于许多Wifi和蓝牙卡中(RF switch subsystem support)。”RF”代表”Radio Frequency”。RF开关路由高频信号。

RF开关输入支持同样也在内核中支持(RF switch input support)。

内核可以控制并请求无线传输(Generic rfkill regulator driver)。启用这个生成一个设备文件(/dev/rfkill)。这个设备文件作为无线设备的接口。

Linux内核支持9P2000协议(Plan 9 Resource Sharing Support (9P2000))。这个网络协议有时称作Styx。Plan 9的窗口系统(Rio)的Styx和Linux的X11都使用Unix网络套接字。Linux系统可能使用Styx在Styx网络中。Plan 9和Linux可以在一个网络中使用Styx

“9P Virtio Transport”(9P 虚拟io传输)系统提供了在虚拟系统上客户机和主机分区间的传输。

内核同样支持RDMA传输(9P RDMA Transport (Experimental))。RDMA代表的是”Remote Direct Memory Access”(远程内存直接访问)。这个Plan9上访问远程计算机内存的协议。

9P系统与其他内核组件一样有调试特性(Debug information)。

“CAIF support”支持同样可以在内核中启用。CAIF代表” Communication CPU to Application CPU Interface”(通信CPU到应用CPU接口)。这是一个使用数据包的多路复用(MUX)协议并被用于ST-Ericsson(意法爱立信)调制解调器中。ST-Ericsson是开发这个协议的公司(是的,MeeGo和Android是Linux系统,并且我正在讨论Google的Andorid)。MUX协议就是多路复用(multiplexing)协议。多路复用在前面的文章中已经提到过。

下面,cephlib可以加入内核,它可以用于rados块设备(rbd)h和Ceph文件系统(Ceph核心库)(译注:Ceph是一种分布式文件系统)。cephlib是是Ceph的完整核心库。Ceph是存储平台。CephFs(Ceph文件系统)是运行在另外一个文件系统的顶部。通常,CephFs运行在EXT2、ZFS、XFS或者BTRFS上面。Rados设备是使用CephFs的块存储单元。

ceph的调试特性会损害内核性能,所以只在需要的时候启用(Include file:line in ceph debug output)。 当启用这个选项(Use in-kernel support for DNS lookup),CONFIGDNSRESOLVER设施会执行DNS查询。

近场通信(Near Field Communication (NFC))设备在Linux内核中也被支持(NFC subsystem support)。

如果上面的特性被启用,那么NFC控制器接口(NFC Controller Interface (NCI))也应该启用(NCI protocol support)。这允许主机和NFC控制器相互通信。

NFC要处理HCI帧需要启用下面一个特性(NFC HCI implementation)。

一些HCI驱动需要一个SHDLC链路层(SHDLC link layer)(SHDLC link layer for HCI based NFC drivers)。SHDLC是检测完整性和管理HCI帧顺序的协议。

如果NFC特性启用了,那么通常也启用”NFC LLCP support”(就像上面那样)。

接下来有一些为特别的NFC设备的驱动。第一个是”NXP PN533 USB driver”。

下一个NFC驱动支持TI的BT/FM/GPS/NFC设备(Texas Instruments NFC WiLink driver)。

下面的是”NXP PN544 NFC driver”。

对于Inside Secure(译注:法国一家非接触半导体芯片厂商)生产的microread NFC芯片驱动同样在内核中支持(Inside Secure microread NFC driver)。

现在,我们将继续配置与网络无关的驱动。首先我们可以选择uevent帮助程序的路径(path to uevent helper)。如今许多计算机不在需要这个特性因为一个uevent帮助程序会在每次执行时fork一个进程处理。这回很快地消耗资源。

在启动时,内核会创建一个tmpfs/ramfs 文件系统(Maintain a devtmpfs filesystem to mount at /dev)。这个提供了完整的/dev目录系统。在这两个文件系统中(tmpfs和ramfs),ramfs两者中最简单。”tmpfs”代表”temporary filesystem”(临时文件系统),而”ramfs”代表”ram filesystem”(内存文件系统)。

下一个设置是devtmpfs文件系统的代码,它同样挂载在/dev下(Automount devtmpfs at /dev, after the kernel mounted the rootfs)。

下面的特性允许模块加载到用户空间(Userspace firmware loading support)。

为了”Include in-kernel firmware blobs in kernel binary”(译注:将固件编译进内核)(这会增加专有固件到内核中),就启用这个特性。

一些二进制专有驱动需要在启动时使用。这个特性允许这类软件这么做(External firmware blobs to build into the kernel binary)。一些计算机有些引导设备需要只包含专有二进制文件的特殊固件。这个特性不启用,系统将无法引导。

启用”Fallback user-helper invocation for firmware loading”,允许user-helper(用户助手) (udev)作为内核加载固件驱动失败的后备手段加载固件。udev可以加载驻留在非标准路径的固件。

管理驱动的不跟内核如果被允许就可以生成调试信息(Driver Core verbose debug messages)。

下一步,如果启用这个特性(Managed device resources verbose debug messages),devres.log文件就可以使用。这是一个用于设备资源的调试系统。

下面一个特性会通过netlink套接字生成一条用户空间和内核空间的连接(Connector – unified userspace kernelspace linker)。这个套接字使用netlink协议。这是另外一个Linux系统即使在没有物理网络情况下仍需要网络特性的例子。

用户空间可以通过套接字得到进城时间的通知(Report process events to userspace)。一些报告事件包含了ID改变、fork、和退出状态。一些先前启用的内核特性可能需要这个。最好按配置工具建议的那样设置。

使用固态硬盘的系统需要MTD的支持(Memory Technology Device (MTD) support)。MTD设备是固态存储设备。典型的存储设备与固态硬盘(SSD)不同。用于磁盘单元的标准常规不适用于SSD(读、写、擦除)。

大多数会桌面电脑带有并口(一个有25个洞的连接器),所以他们需要这个特性(Parallel port support)。并口在其他许多鲜为人知的应用中通常用于打印机和ZIP驱动器。并口有25针。

对IBM兼容计算机启用这个特性(PC-style hardware)。它们是不同类型的计算机。除了IBM计算机(通常运行Windows),还有苹果计算机。Linxu可以运行在几乎所有类型的计算机上。

Linux同样支持Multi-IO PCI卡(Multi-IO cards (parallel and serial))。Multi-IO PCI卡同时拥有并口和串口。串口每次发送或接收1位数据。

下一个特性允许内核”Use FIFO/DMA if available”。这用于特定的并口卡来加速打印。FIFO代表”First In, First Out”(先入先出)。DMA是先前提过的直接内存访问(Direct Memory Access)。

下面一个特性用于探测Super-IO卡(SuperIO chipset support)。这些探针会发信中断号、DMA通道和其他类型设备的地址/数量。Super-IO是一种集成IO控制器类型。

PCMCIA的并口支持可以启用(Support for PCMCIA management for PC-style ports)。

注意:对于许多特性来说,你最好按照配置工具的建议除非你有特别的理由不这么做。通常地,如果你是交叉编译或者编译一个通用内核,那么你应该熟悉你想要支持的并做出相应的选择。

在AX88796网络控制器的并口需要这个支持(AX88796 Parallel Port)。

“IEEE 1284 transfer modes”在并口上支持增强型并口(Enhanced Parallel Port (EPP))和增强功能口(Enhanced Capability Port (ECP))并支持打印机状态回读。状态回读是检索打印机的状态。

即插即用(“Plug and Play support” (PnP))应该启用。这允许用户在系统开机状态下插入设备并能马上使用它们。没有这个特性,用户不能使用USB设备、打印机或者其他没有执行特殊任务的设备。系统会自动管理复位(译注:原文是 “The system will manage the rest automatically”)。

下面,用户可以启用块设备(Block devices)。这是一个应该启用的特性,因为块设备很常见。

软驱也是可以启用的块设备(Normal floppy disk support)。

连接到并口的IDE设备也同样支持(Parallel port IDE device support)。一些外部CD-ROM设备也能通过并口连接。

外部IDE存储设备单元同样可以连接到并口(Parallel port IDE disks)。

连接到并口的ATA包接口(ATA Packet Interface (ATAPI)) CD-ROM需要这个驱动(Parallel port ATAPI CD-ROMs)。ATAPI是用于并行ATA(PATA)设备的ATA协议扩展。

还有一个ATAPI磁盘设备可以插到并口中(Parallel port ATAPI disks)。这个驱动会除了支持CD-ROM外还支持其他类型的磁盘。

内核同样支持通过并口连接ATAPI磁带设备(Parallel port ATAPI tapes)。

还有许多其他的ATAPI设备可以连接到并口中。结果就是,一个通用驱动被用于管理前面提到过的驱动不支持的设备(Parallel port generic ATAPI devices)。

连接到并口上的IDE设备需要一个特殊的协议用于通信。有很多这样的协议,其中一个是”ATEN EH-100 protocol”。

一个可选的用于并行IDE设备的协议是”MicroSolutions backpack (Series 5) protocol”。

这里仍有另外一个并口IDE设备协议(DataStor Commuter protocol)和另一个(DataStor EP-2000 protocol)还有(FIT TD-2000 protocol)。

再提一次,这里有另外一个协议,但是这个强烈建议用在更新的插在并口上的CD-ROM和PD/CD设备(FIT TD-3000 protocol)。

下面的协议主要用于SyQuest、Avatar、Imation和HP生产的并口设备(Shuttle EPAT/EPEZ protocol)。

Imation SuperDisks需要Shuttle EP1284芯片的支持(Support c7/c8 chips)。

一些其他的并行IDE协议可以启用,包括:

  • Shuttle EPIA protocol
  • Freecom IQ ASIC-2 protocol – (用于Maxell Superdisks)
  • FreeCom power protocol
  • KingByte KBIC-951A/971A protocols
  • KT PHd protocol – (用于2.5英寸外置并口硬盘)
  • OnSpec 90c20 protocol
  • OnSpec 90c26 protocol

注意:这些协议以及支持的插入并口的设备意味着这些都类似于热插拔设备,就像USB设备插入USB端口一样。USB和火线人仍旧是使用最流行的端口,因为它们的大小和速度。一个并口设备单元大于USB闪存因为并口大于USB端口。

下一步,我们有一个对于Micron PCIe的SSD驱动(Block Device Driver for Micron PCIe SSDs)。

你可能已经猜到了- 下面的文章会讨论更多的配置.


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-10.4613/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2495-1.html

Linux:戴文的Linux内核专题:15 配置内核 (11)

Linux:戴文的Linux内核专题:15 配置内核 (11)
Linux:戴文的Linux内核专题:15 配置内核 (11)

准备好配置更多的驱动了么?还有很多要做。

Linux支持两种不同的康柏智能阵列控制器:(Compaq SMART2 support)和(Compaq Smart Array 5xxx support)。阵列控制器是将物理存储单元表现为逻辑单元的设备。这些控制可能同样实现了基于硬件的RAID。硬件和软件RIAD的不同是简单的。Linux管理并见到软件RIAD。Linux将硬件RAID视为另外的存储单元。这意味着Linux没有意识到设备就是RAID驱动器。硬件(阵列控制器)独立于内核管理着RAID系统。这对于系统的性能更好因为内核不必配置或者管理RAID。注意,不同的阵列控制器有不同的RAID能力。

上面提到的阵列控制器可以通过这个驱动访问SCSI磁带(SCSI tape drive support for Smart Array 5xxx)。SCSI磁带是使用SCSI协议的磁带机。

PCI RAID控制器Mylex DAC960、AcceleRAID和eXtremeRAID在这个驱动中支持(Mylex DAC960/DAC1100 PCI RAID Controller support)。PCI RAID控制器是一个连接到PCI卡的阵列控制器。RAID控制器是拥有RAID功能的阵列控制器。

带电源备份的MM5415内存芯片在这个驱动中支持(Micro Memory MM5415 Battery Backed RAM support)。带后备电源内存芯片允许数据在切断电源后继续保存在内存设备中。这有助于保护数据。不然,当电源断开后,当前的计算机会话就会丢失。

当启用这个特性后,可以将典型的文件(比如ISO文件)作为一个块设备并挂载它Loopback device support)。这对于从镜像文件中检索文件而不必把文件烧录到光盘或者解压出来。想像一下你从因特网上得到了一份包含了很多文件的ISO文件。如果你只需要包中的一个文件并且用户不希望烧写ISO到光盘上或者不想知道如何打开一个ISO文件。用户可以用挂载ISO来替代。

Linux内核在初始化阶段会创建一些回路设备,所以一些回环设备已经准备好并创建了(Number of loop devices to pre-create at init time)。当一个文件(像ISO)或者虚拟设备(就像虚拟磁盘驱动器[vhd])被作为回环设备挂载时会节约一些时间。这个设定允许开发者选择内核可以预 创建多少回环设备。

当”Cryptoloop Support”启用后就可以CryptoAPI创建密码。这个用于硬件驱动器加密。然而,并不是所有的文件系统都支持。

下面用户可以启用”DRBD Distributed Replicated Block Device support”(译注:Linux上的分布存储系统)。这个就像网络RAID1。这些设备拥有设备文件/dev/drbdx。这些设备通常被用于集群,这里集群中的每台计算机都有一个从主单元镜像过来的存储单元。这意味着每台计算机的硬盘是位于组中心计算机硬盘的镜像拷贝。集群是一组计算机扮演着一台大型强力单元的角色。然而,每个集群都有一台控制计算机称为主节点。余下的计算机是从节点。

DRBD支持用于测试IO错误处理的故障注射(DRBD fault injection)。记住,故障注射就是使设备/软件认为发生了一个错误,因此开发者可以测试硬件/软件如何处理错误

如果内核要成为网络块设备的客户端,那么启用这个特性(Network block device support)。第一个设备文件是/dev/nd0。网络块设备是通过网络访问的远程存储单元。

直接连接SSD到PCI或者PCIe需要这个驱动(NVM Express block device)。

用这个特性允许将单独的SCSI OSD(object-based storage,基于对象的存储)对象作为块设备(OSD object-as-blkdev support)。

下一个驱动是”Promise SATA SX8 support”。这个驱动用于Promise公司(Promise Technology Inc.)生产的SATA控制器。

Linux允许将一部分内存作为块设备(RAM block device support)。这通常见与完全运行于内存上的Linux的live发行版。Linux的live发行版会卸载光盘并接着加载到内存中,所以在尝试一个新的操作系统或者修复另一个系统时不会伤害到已安装的系统。

下一个选项允许用户输入”Default number of RAM disks”(默认RAM磁盘数量)。

“Default RAM disk size”(默认RAM磁盘大小)可以以KB设置大小。

内核可以支持在内存设备的XIP文件系统作为块设备(Support XIP filesystems on RAM block device)。这个特性会增大内核的大小。 XIP (eXecute In Place)文件系统是一个允许可执行文件在相同的文件系统上存储数据而不必像其他应用一样利用内存。在一个驻留在内存上的live版linux系统上运行可执行文件时需要这个文件系统。

下面,内核可以支持”Packet writing on CD/DVD media”。(CD/DVD刻录机支持.)

内核开发者可以设置最大活跃并发包数量(Free buffers for data gathering)。大的数字会以内存的消耗为代价加速写入性能。一个包会消耗大约64KB。

Linux内核可以使用可擦写光盘作为缓存空间(Enable write caching)。这个特性仍然是试验性质。

下面的特性允许通过以太网线缆使用ATA规范(ATA over Ethernet support)。

下面的驱动允许虚拟块设备创建为virtio(Virtio block driver)。virtio是IO虚拟化平台。

一些非常老的硬盘还要一个特殊的驱动(Very old hard disk (MFM/RLL/IDE) driver)。

这里有一个驱动用于先前提到的Rados设备(Rados block device (RBD))。

下面是一个特殊的设备驱动(IBM FlashSystem 70/80 PCIe SSD Device Driver)。

现在,我们可以进入杂项设备。第一个设定是启用/禁用电位器(Analog Devices Digital Potentiometers )。

如果电位器在I2C总线上,那么就启用这个(support I2C bus connection)。

如果电位器是连接到SPI总线,那么需要这个驱动(support SPI bus connection)。

注意:Linux内核支持很多传感器因为Linux内核经常用于天气设备和机器人。

这个驱动用于IBM RSA(Condor)服务处理器(Device driver for IBM RSA service processor)。

内核同样支持PCI Sensable PHANToM设备驱动(Sensable PHANToM (PCI))。

这个驱动指引不同来自并行追踪接口(Parallel Trace Interface (PTI))的追踪数据发往Intel Penwell PTI口 (Parallel Trace Interface for MIPI P1149.7 cJTAG standard)。这个被指领的数据用于调试目的。

一些带有IOC4芯片的SGI IO控制器需要这个驱动(SGI IOC4 Base IO support)。SGI IO是由SCI管理的输入/输出设备。IOC4芯片控制着许多由这些设备执行的任务。这是一个基础驱动。其他对这些设备的驱动依赖于这个驱动。

这里有很少的TI闪存媒体适配器驱动在Linux内核中,(TI Flash Media interface support) 和(TI Flash Media PCI74xx/PCI76xx host adapter support)。

这个驱动(“Integrated Circuits ICS932S401”)用于ICS932S401时钟控制芯片。

Atmel同步串行通信外设(Synchronized Serial Communication peripheral (SSC))有一个驱动在内核中(Device driver for Atmel SSC peripheral)。这个设备提供点对点的设备间的串行连接。

“Enclosure Services”特性支持硬盘托架。

这是对于CS5535/CS5536芯片的定时器驱动(CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support)。

这个驱动让应用可以与HP工业标准服务器中的iLO管理处理器通信(Channel interface driver for the HP iLO processor)。”iLO”代表的是”Integrity Integrated Lights-Out”.iLO允许远程服务器管理。

Linux内核支持ALS APDS9802光敏传感器(Medfield Avago APDS9802 ALS Sensor module)。一些其他支持的传感器包括:

  • Intersil ISL29003 ambient light sensor
  • Intersil ISL29020 ambient light sensor
  • Taos TSL2550 ambient light sensor
  • ROHM BH1780GLI ambient light sensor
  • BH1770GLC / SFH7770 combined ALS – Proximity sensor
  • APDS990X combined als and proximity sensors

注意:如果内核是为广泛的计算机编译的话,大多数驱动应该以模块形式加入。

Linux甚至可以使用”Honeywell HMC6352 compass”(一种电子罗盘)。

内核同样支持”Dallas DS1682 Total Elapsed Time Recorder with Alarm”。(一种运行时间记录仪)

16位的数模转换器通过这个驱动支持(Texas Instruments DAC7512)。

“VMware Balloon Driver”将客户机操作系统不需要的物理内存页交给需要那些需要的。

这里有两个不同的压力传感器(BMP085 digital pressure sensor on I2C) 和 (BMP085 digital pressure sensor on SPI)。

Intel输入/输出集线器(Intel Input/Output Hub (IOH))同样在内核中支持(Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB)。具体地说,这个是Intel Topcliff芯片组的PCH PHUB(Platform Controller Hub Packet Hub)

“FSA9480 USB Switch”是检测设备何时插入的检测器。

下一个选项允许比特流配置(Lattice ECP3 FPGA bitstream configuration via SPI)。

Silicon微控制器使用Silicon实验室C2端口,这需要一个特殊的驱动(Silicon Labs C2 port support)。

再说一次,继续留意下一篇文章因为我们还有更多的要做。


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-11.4640/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2496-1.html

Linux:淺談Raid Cache Memory上應用的問題和實踐

作者:Michael Zhang

$1, Raid和Cache Memory

通常,出於二個目標:安全和性能,我們在生產環境的服務器上會設置Raid功能。最常見的場景是,我們會由於安全性的考慮將磁盤設置成Raid 1 或Raid 5、Raid6等模式保障在一塊或多塊硬盤故障時數據不丟失。或者是由於Dis IO性能上的考慮將硬盤設置成Raid 0或Raid 10來擴展有限的IO。

無論DELL/HP/IBM等服務器廠商,都會OEM一些Raid控制器在實現Raid功能,而為了保障和提升讀寫性能,Raid控制卡裏都會內置128MB 至 1GB不等的Cache Memory,而我們對磁盤的讀和寫操作都會通過事先在Cache Memory中Hit或緩存,這樣一來就可以大大提高了實際IO性能。

Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐

OS也認為只要讀或寫到Cache Memory以後即算操作成功,而Cache Memory中的數據如何Flush到物理磁盤中的Policy控制則由Raid控制器來解決。這種通過寫入Cache Memory的Policy我們稱為WriteBack,而如果不通過Cache Memory直接寫入磁盤的Policy我們稱為WriteThrough。

任何一條數據寫入Memory和寫入磁盤的性能差別之巨大,不用比較都可想像得到是天壤之別。特別是當我們遇到MySQL等數據庫或其他IO要求壓力非常大的環境,這是我們實際生產環境中不得不要考慮的因素。

$2, BBU,TBBU在實際應用中的問題和運維

什麼是BBU/TBBU呢?其實BBU就是Raid卡中的一個電池備用模塊,因為之前我們說到在Raid的環境下很多情況下數據都是通過Cache Memory和磁盤交換的,而Memory本身並無法保障數據持久性,萬一電源中斷,而數據沒來得及flush到物理磁盤上,就會造成數據丟失的悲劇。為此硬件廠商提供了BBU和TBBU,其中包含了一塊鋰電池來保障萬一電源中斷的情況下,Cache Memory中的數據不至於丟失,直至電源恢復。TBBU的不同區別是Cache Memory和電池是做成一個模塊,以防止Raid控制器如果硬件故障的時候,在更換Raid控制卡過程中可以不更換TBBU及其中的Cache Memory,防止這一過程中的數據不丟失。

就是這麼樣的一個模塊,如圖:

Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐
 
Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐
 
Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐
 
Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐
 
正是由於使用電池做為持續Memory是數據的可靠性,而存在一個尷尬的隱患。以目前的技術水平,電池是不可以長期不充放電的,否則會造成電池損壞而無法起到保護數據的特性。所以Raid卡廠商在設計BBU/TBBU中加入了一個自動充放電的維護過程,每過一段時間(通常是數個月左右)會自動對電池放電,然後再自動充電,以保證電池的可用性。
Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐

而在電池放電的時候,出於數據安全性的考慮,Cache Policy默認從WriteBack改成WriteThrough。這段時間會持續數小時或更久,IO性能會因此大幅下降,如果正好這個時間你有數據庫或其他大量IO壓力的服務,性能會急劇下降,如果系統沒有足夠的Capacity的話,嚴重的話會導致服務可用性的賁潰。

為了防止出現這種情況,通常業內大家會使用各種想法:

a) 給系統留出足夠的Capacity,即使WriteThrough的時候也可以保障服務的性能是可接受的

b) 自動或半自動的地設定在系統負載最低的時候提前去觸發電池的充放電過程

c) 將Cache Policy設置為CachedBadBBU,也就是即使在充放電過程中,還是使用寫入Cache的WriteBack,而不是默認的WriteThrough,這存在的風險是這一過程中的服務器電源中斷會造成數據丟失,這不是一個最安全的選擇,但如果業務上可以接受這個風險,如果Data Center的供電足夠安全,如果服務器有冗餘的電源的話,未必不是一個好的選擇。

d) 當A服務器發生這一情況時能自動或半自動地切換到Backup的節點上,必竟二臺服務器同時發生這一自動維護過程是不太可能的,但同一批次的服務器是有可能的,並且這可以從時間和過程中去人工調節。

e) 從軟件、業務程序上來保障對數據持久性或一致性的取捨。

目前國內大家常用的DELL和HP服務器多數都已經集成了LSI公司的Raid控制器,以上的這些狀態和Policy的調整在Linux中都可以通過其MegaCLI工具包操作:

Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐

$3, ZMCP,CacheCade技術的原理和應用

單從硬件運維角度來看,BBU和TBBU帶來的Cache Policy問題如果在幾百臺或上千臺服務器環境下維護將會是一個非常繁瑣的過程,除非從軟件上來對安全性和數據一致性的取捨。

所以新的一代的Raid控制器出現了另一種選擇。其中Adaptec公司提供了ZMCP模塊,而LSI公司提供了CacheCade的軟件支持。

ZMCP就是Zero-Maintenance Cache Protection的意思,在支持ZMCP的Raid控制器上加裝一個ZMCP模塊將不再依賴電池對Cache Memory的保護,而是通過SLC的Flash NAND和電容來保證在電力中斷時數據的可靠性:

Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐

而LSI的CacheCade是一個軟件的License,可以支持通過SSD來持久化Cache Memory,而不是通過不能持久化的Memory。優點是可以讓Cache Memory更大,並缺點也顯而易見。

Linux:淺談Raid Cache Memory上應用的問題和實踐
Linux:淺談Raid Cache Memory上應用的問題和實踐

從性能上的測試來看明顯ZMCP會占有優勢,但同時也是成本上的劣勢。而且無論是哪種新的技術都暫時性地會帶來相對BBU/TBBU技術的成本增加,出於成本上的考慮,所以目前大部分DELL/HP服務器依舊會OEM原有的方案。

但是從更專業的業務環境下去定制的服務器上,在軟件、性能、硬件等方面做更合適自己的取舎將是給每個人更自由的選擇範圍。在此希望我在實踐和看到的information希望能給到大家有益的幫助。

$4, 引用和參考資料

来源:https://linux.cn/article-2504-1.html

Linux:Linux id 命令 – 显示用户id和组id信息

要登入一台计算机,我们需要一个用户名。用户名是一个可以被计算机识别的身份。基于此,计算机会对使用这个用户名的登陆的人应用一系列的规则。在Linux系统下,我们可以使用 id 命令。

Linux:Linux id 命令 - 显示用户id和组id信息
Linux:Linux id 命令 – 显示用户id和组id信息

什么是 id 命令

id 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID)。UID 是对一个用户的单一身份标识。组 ID(GID)则对应多个UID。

如何使用 id 命令

id 命令已经默认预装在大多数 Linux 系统中。要使用它,只需要在你的控制台输入id。不带选项输入 id 会显示如下。结果会使用活跃用户。

$ id

id默认输出

如何读取输出:

  • 用户 pungkiUID 号码= 1000, GID 号码= 1000
  • 用户 pungki 是下面的组成员 :

    pungki 的 GID 号码= 1000 adm 的 GID 号码= 4 cdrom 的 GID 号码= 24 sudo 的 GID 号码= 27 dip 的 GID 号码= 30 plugdev 的 GID 号码= 46 lpadmin 的 GID 号码= 108 sambashare 的 GID 号码= 124

带选项使用id

id 命令可以使用一些选项。下面有一些在日常使用中有用的选项。

打印用户名、UID 和该用户所属的所有组

要这么做,我们可以使用 -a 选项

$ id -a

-a 选项

输出所有不同的组ID (有效的,真实的和补充的)

我们可以使用 -G 选项来实现。

$ id -G

-G 选项

结果只会显示 GID 号。你可以和 /etc/group 文件比较。下面是 /etc/group 文件的示例内容:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pungki
fax:x:21:
voice:x:22:
cdrom:x:24:pungki
floppy:x:25:
tape:x:26:
sudo:x:27:pungki
audio:x:29:pulse
dip:x:30:pungki
www-data:x:33:
backup:x:34:
operator:x:37:
sasl:x:45:
plugdev:x:46:pungki
ssl-cert:x:107:
lpadmin:x:108:pungki
saned:x:123:
sambashare:x:124:pungki
winbindd_priv:x:125:

只输出有效的组ID

通过使用 -g 选项来只输出有效组ID。

$ id -g

-g 选项

输出特定用户信息

我们可以输出特定的用户信息相关的 UID 和 GID。只需要在 id 命令后跟上用户名。

$ id leni

leni 用户

上面的命令会打印用户 leni 的 UID 和 GID。

总结

当我们想知道某个用户的 UID 和 GID 时 id 命令是非常有用的。一些程序可能需要 UID/GID 来运行。id 使我们更加容易地找出用户的 UID 以 GID 而不必在 /etc/group 文件中搜寻。如往常一样,你可以在控制台输入 man id 进入 id 的手册页来获取更多的详情。


via: http://linoxide.com/linux-command/linux-id-command/

译者:geekpi 校对:Caroline

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

来源:https://linux.cn/article-2512-1.html

Linux:十大顶级的黑客级Linux发行版!

黑客和安全研究员需要在他们手边随时都有那些黑客工具。它们很多都是基于流行的Ubuntu和Debain操作系统,并且其中已经安装了许多黑客工具。

Linux:十大顶级的黑客级Linux发行版!
Linux:十大顶级的黑客级Linux发行版!
  1. BackTrack 5r3:这是一个最受欢迎和广为人知的基于Linux的黑客发行版。它是基于Canonical的Ubuntu操作系统的,它的logo的意思是,”如果你更安静,你将听到的更多。”在版本5中,除了以前的KDE桌面外,还增加了GNOME桌面环境。

  2. Nodezero:这是另外一个基于Ubuntu的黑客版,它用于渗透测试。它会跟着Ubuntu同步更新的。

  3. BackBox Linux: 这也是一个基于Ubuntu的黑客工具。根据开发者称,它被设计来创建一个渗透测试发行版,并且快速而易用。它还可以通过软件仓库来更新那些白帽渗透测试工具。

  4. Blackbuntu:Ubuntu自己虽然不是一个黑客工具,但是有许多基于它的黑客版本。这个发行版带来了诸如网络扫描、信息获取、渗透、漏洞识别,权限提升,无线网络分析、VoIP分析等各类工具。

  5. Samurai Web Testing Framework:这个发行版主要关注在对网站的攻击方面,它使用最好的免费开源的工具攻击和入侵网站。开发者已经把包括侦查、映射、探索和利用的攻击的四个步骤都集成到了发行版中。

  6. Knoppix STD:从Ubuntu迁移到了Debian,Knoppix STD现在是一个基于Debian的黑客发行版,可以运行GNOME、KDE、LXDE和Openbox等桌面环境。它已经出现了很长一段时间,并且是它们之中最早的live发行版。

  7. Pentoo:这是一个基于Gentoo的针对安全测试的live CD。它带来了大量的自定义工具和内核。包括Backported WiFi stack, XFCE4等等。

  8. Weakerthan:这个发行版使用Flufbox桌面环境,它包含了很多无线工具,最适合用于WiFi攻击。它基于Debian Squeeze发行版,具有WiFi攻击、Cisco漏洞利用、SQL入侵、Web入侵、蓝牙及其他功能。

  9. Matriux Krypton:这也许是第一个直接基于Debian OS的发行版。它是一个有300个安全工具的兵工厂,是白帽测试、渗透测试、安全测试、系统和网络管理、网络取证的一个好选择。

  10. DEFT:一款带有DART(Digital Advanced Response Toolkit,高级数字响应工具)的基于Linux Kernel 3 的操作系统。它使用WINE来在Linux上运行Windows工具,并主要运行LXDE桌面环境。


via: http://www.efytimes.com/e1/fullnews.asp?edid=125775

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2513-1.html

Linux:十个鲜为人知的Linux命令 – Part 5

在前四篇 “鲜为人知的Linux命令” 系列文章受到高度赞赏之后,我们将为广大读者呈上此系列的最后一篇文章,虽然是最后一篇,但是其重要性毫不逊于前几篇。

Linux:十个鲜为人知的Linux命令 - Part 5
Linux:十个鲜为人知的Linux命令 – Part 5

前几篇文章的地址如下:

42. lsb_release

‘lsb_release’ 命令会打印特殊发行版的信息。如果 lsb_release 还没安装,你可以在基于 Debain 的发行版中用命令 apt 安装,在基于 Red Hat 系统下用 yum 来安装包。

# lsb_release -a
LSB Version:    :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:
Distributor ID: CentOS
Description:    CentOS release 6.3 (Final)
Release:        6.3
Codename:       Final

注意:选项‘-a’,会显示有关版本、ID、详情、发行号研发代号的全部可用信息。

43. nc -zv localhost 80

检查 80 端口是否被打开。我们可以用任何其他端口号替换‘80’来检查端口是否被打开或关闭。

$ nc -zv localhost 80
Connection to localhost 80 port [tcp/http] succeeded!

(译注:出现该信息表示80端口已被打开。)

检查 8080 端口是否启用

$ nc -zv localhost 8080
nc: connect to localhost port 8080 (tcp) failed: Connection refused

(译注:该信息显示了8080端口并未打开。)

44. curl ipinfo.io

该命令会输出并提供 IP 地址‘地理位置’

$ curl ipinfo.io

“ip”: “xx.xx.xx.xx”, “hostname”: “triband-del-aa.bbb.cc.ddd.bol.net.in”, “city”: “null”, “region”: “null”, “country”: “IN”, “loc”: “20,77”, “org”: “AS17813 Mahanagar Telephone Nigam Ltd”.

45. find . -user root

该命令会输出当前目录下( root )用户所拥有的文件(译注:即owner为root)。下面是在当前目录下列出的所有 ‘root’用户拥有的文件。

# find . -user root
./.recently-used.xbel
./.mysql_history
./.aptitude
./.aptitude/config
./.aptitude/cache
./.bluefish
./.bluefish/session-2.0
./.bluefish/autosave
./.bash_history

在当前路径下列出所有 ‘avi’ 用户拥有的文件

# find . -user avi
./.cache/chromium/Cache/f_002b66
./.cache/chromium/Cache/f_001719
./.cache/chromium/Cache/f_001262
./.cache/chromium/Cache/f_000544
./.cache/chromium/Cache/f_002e40
./.cache/chromium/Cache/f_00119a
./.cache/chromium/Cache/f_0014fc
./.cache/chromium/Cache/f_001b52
./.cache/chromium/Cache/f_00198d
./.cache/chromium/Cache/f_003680

46. sudo apt-get build-dep ffmpeg

该命令会在相应的包安装时自动构建依赖关系。因此包安装的过程将非常流畅,也是非常容易的。

# apt-get build-dep ffmpeg
libxinerama-dev libxml-namespacesupport-perl libxml-sax-expat-perl
libxml-sax-perl libxml-simple-perl libxrandr-dev libxrender-dev
x11proto-render-dev x11proto-xinerama-dev xulrunner-dev
The following packages will be upgraded:
libpixman-1-0
1 upgraded, 143 newly installed, 0 to remove and 6 not upgraded.
Need to get 205 MB of archives.
After this operation, 448 MB of additional disk space will be used.
Do you want to continue [Y/n]?

47. lsof -iTCP:80 -sTCP:LISTEN

该命令会输出所用正在使用 80 端口的 进程/服务 的名称。在 80 端口运行下列命令会更好理解这个命令,它会列出所用运行在该端口的 进程/服务

root@localhost:/home/avi# lsof -iTCP:80 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 1566 root 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1664 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1665 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1666 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1667 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1668 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

同样,你可以检查运行在端口 22 的进程/服务。

root@localhost:/home/avi# lsof -iTCP:22 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2261 root 3u IPv4 8366 0t0 TCP *:ssh (LISTEN)
sshd 2261 root 4u IPv6 8369 0t0 TCP *:ssh (LISTEN)

48. find -size +100M

这条find命令会在当前目录下列出所有超过指定大小的文件(这里指定为100 MB),递归查询。

# find -size +100M
./.local/share/Trash/files/linuxmint-15-cinnamon-dvd-32bit.iso
./Downloads/Fedora-Live-Desktop-i686-19-1.iso
./Downloads/Ant Videos/shakira 2.avi
./Downloads/Deewar.avi
./Desktop/101MSDCF/MOV02224.AVI
./Desktop/101MSDCF/MOV02020.AVI
./Desktop/101MSDCF/MOV00406.MP4
./Desktop/squeeze.iso

在当前目录递归的列出所用大于 1000 MB 的文件。

root@localhost:/home/avi# find -size +1000M
./Downloads/The Dark Knight 2008 hindi BRRip 720p/The Dark Knight.mkv.part
./Downloads/Saudagar - (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR]/Saudagar
- (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR].mkv
./Downloads/Deewar.avi
./Desktop/squeeze.iso

49. pdftk

pdftk命令用来合并几个pdf文件。你必须安装有 pdftk 程序。如果还没有,请用apt或yum来获取相应的包。

$ pdftk 1.pdf 2.pdf 3.pdf …. 10.pdf cat output merged.pdf

50. ps -LF -u user_name

该命令会输出一个用户的进程和线程。选项“L”(列出线程),选项“-F”(完整格式化)

$ ps -LF -u avi
avi 21645 3717 21766 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/
avi 21645 3717 21768 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/
avi 22314 3717 22314 0 2 42797 50332 0 19:00 ? 00:00:40 /usr/
avi 22314 3717 22316 0 2 42797 50332 1 19:00 ? 00:00:00 /usr/
avi 22678 24621 22678 0 1 969 1060 1 21:05 pts/1 00:00:00 ps -L
avi 23051 3717 23051 0 2 37583 45444 1 19:03 ? 00:00:52 /usr/
avi 23051 3717 23053 0 2 37583 45444 0 19:03 ? 00:00:03 /usr/
avi 23652 1 23652 0 2 22092 12520 0 19:06 ? 00:00:22 gnome
avi 23652 1 23655 0 2 22092 12520 0 19:06 ? 00:00:00 gnome

51. startx – :1

分享 X 会话。如果你需要频繁的(以不同用户身份)登入或登出桌面时,那就需要 startx 来救场。这个命令建立了一个新的会话从而避免了在一个会话中反复的登入和登出。为了在X会话间进行交换,我们可以通过‘ctrl+Alt+F7’和‘ctrl+Alt+F8’的组合键来完成。

注意:快捷键“ctrl+Alt+F1~F6“是为了控制台会话准备的,而“ctrl+Alt+F7~F12”则为X会话服务。因此我们有6个控制台会话和6个X会话,不需要频繁的登入登出。上面的顺序适用于大多数的发行版,然而不同发行版可能会有不同的实现。我在Debian中尝试过,运行的很好。

以上就是今天的所有内容。我们如有需要会在以后的文章中继续发布“鲜为人知的命令”,不要忘记留下你对我们文章和‘ 鲜为人知的Linux命令 ’系列的宝贵意见。我会很快带来我的新文章,敬请期待,记得常回来看看哦。


via: http://www.tecmint.com/10-lesser-known-useful-linux-commands-part-v/

译者:Luoxcat 校对:Caroline

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

来源:https://linux.cn/article-2514-1.html

Linux:每日Ubuntu小技巧:Ubuntu下一款和Windows磁盘管理一样的工具

对于一些用惯了Windows的用户来说,刚开始接触Ubuntu的时候会面临这样的一个问题,这个问题在很多论坛里面也经常出现,前段时间也有位读者问到相同的问题:

在 Ubuntu 中有和 Windows 下的磁盘管理一样的工具么?

对于那些不太清楚磁盘管理的用户,下面有个简单介绍。

磁盘管理是一个从 Windows XP 起就有的默认工具,其主要负责磁盘相关的任务,比如:创建和格式化磁盘、初始化磁盘,重新划分磁盘大小和指定分区号以及删除分区。

在 Windows 下用户使用和磁盘分区管理相关的命令行工具进行磁盘操作,这个工具很高大上。

问题是在 Ubuntu 系统下有这样的工具么,答案是肯定滴。

Ubuntu 下有个很相似的软件叫做 GNOME Disk Utility ,这个工具同样能尽心查看/管理你的磁盘分区,以及创建和恢复分区。你同样可以用它进行创建和格式化分区,挂载和卸载卷组以及其它相关的磁盘操作。

尽管这和Windows下的管理工具相似,但是它不允许用户重新定义分区和卷组大小,因为 ubuntu 不支持驱动器号。

所以,想在 Ubuntu 系统下使用类似 windows 下的磁盘管理工具,那就试试 GNOME Disk Utility 吧。

你可以在 Unity Dash 中搜索 硬盘 ,打开时,它会自己识别你电脑上的外部硬盘和额外的硬盘驱动器。

Linux:每日Ubuntu小技巧:Ubuntu下一款和Windows磁盘管理一样的工具
Linux:每日Ubuntu小技巧:Ubuntu下一款和Windows磁盘管理一样的工具

一旦驱动器被选择你就可以进行磁盘相关的操作了,比如:格式化、创建分区,管理驱动器。另外在磁盘访问超时情况下一些待机模式的操作。

需要注意的是,当你格式化一个磁盘让它既可以在 Windows 下又可以在 Ubuntu 下使用时,一定要选择 NTFS 文件系统。

那么,在 Ubuntu 下使用磁盘配置你的驱动器吧。

慢慢享用,新年快乐!


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-windows-disk-management-equivalent-in-ubuntu/

译者:Timeszoro 校对:Caroline

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

来源:https://linux.cn/article-2515-1.html

Linux:如何在 Linux 上设置密码策略

用户帐号管理是系统管理员最重要的工作之一。而密码安全是系统安全中最受关注的一块。在本教程中,我将为大家介绍如何在 Linux 上设置密码策略

Linux:如何在 Linux 上设置密码策略
Linux:如何在 Linux 上设置密码策略

假设你已经在你的 Linux 系统上使用了 PAM (Pluggable Authentication Modules,插入式验证模块),因为这些年所有的 Linux 发行版都在使用它。

准备工作

安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检查能力。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo apt-get install libpam-cracklib

CentOS、Fedora、RHEL 系统已经默认安装了 cracklib PAM 模块,所以在这些系统上无需执行上面的操作。

为了强制实施密码策略,我们需要修改 /etc/pam.d 目录下的 PAM 配置文件。一旦修改,策略会马上生效。

注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。

禁止使用旧密码

找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo vi /etc/pam.d/common-password

password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5

CentOS、Fedora、RHEL 系统上:

$ sudo vi /etc/pam.d/system-auth

password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5

设置最短密码长度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 – 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这4种类型的符号,并且你的 minlen 设为10,那么最短的密码长度允许是6个字符。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo vi /etc/pam.d/common-password

password requisite pam_cracklib.so retry=3 minlen=10 difok=3

CentOS、Fedora、RHEL 系统上:

$ sudo vi /etc/pam.d/system-auth

password requisite pam_cracklib.so retry=3 difok=3 minlen=10

设置密码复杂度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo vi /etc/pam.d/common-password

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

CentOS、Fedora、RHEL 系统上:

$ sudo vi /etc/pam.d/system-auth

password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

设置密码过期期限

编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

$ sudo vi /etc/login.defs

PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7

这些设置要求用户每6个月改变他们的密码,并且会提前7天提醒用户密码快到期了。

如果你想为每个用户设置不同的密码期限,使用 chage 命令。下面的命令可以查看某个用户的密码限期:

$ sudo chage -l xmodulo

Last password change : Dec 30, 2013 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7

默认情况下,用户的密码永不过期。

下面的命令用于修改 xmodulo 用户的密码期限:

$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo

上面的命令将密码期限设为2014年6月3日。另外,修改密码的最短周期为5天,最长周期为90天。密码过期前14天会发送消息提醒用户,过期后帐号会被锁住30天。

Linux:如何在 Linux 上设置密码策略
Linux:如何在 Linux 上设置密码策略

via: http://xmodulo.com/2013/12/set-password-policy-linux.html

译者:bazz2 校对:Caroline

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

来源:https://linux.cn/article-2518-1.html

Linux:Ubuntu 每日小贴士 – 在Ubuntu下用桌面图形界面挂载分区

如果在之前你询问过经验丰富的 Linux 用户如何在 Ubuntu 下挂载磁盘分区,他们可能会告诉你使用在 /etc 目录里的fstab文件。这似乎是 Linux 系统包括 Ubuntu 挂载分区的唯一方式。

呵呵,幸亏有了GNOME Disk Utility,让挂载分区变得更加多样化。使用这个磁盘工具,你就可以在图形界面下轻松的挂载分区,不需要再在命令行下修改 fstab 文件。fstab 文件是一个用来列出可用磁盘和分区的 Linux 文件,同时指示出他们的挂载情况。

mount 命令查找 fstab 文件中的配置,它决定了设备挂载的方式和位置。这只能通过系统管理员或 root 来修改。

这个简短的教程将会展示给你如何在 Ubuntu 下轻松的挂载分区,在不主动修改 fstab 文件的前提下。对于新手和那些刚开始使用 Ubuntu 的用户,他们会发现这个方法易于挂载额外的分区和设备。

虽然有一些工具也许能帮助你构建 fstab 文件,但是在 Ubuntu 下很少有像这个磁盘工具那么高效的。

如果你在 Ubuntu 下打开了fstab 文件, 你会看到类似下面的内容。

#
/dev/fd0      /media/floppy0    vfat    rw,user,noauto    0   0

上列只是 Ubuntu 分区挂载的一个样例。每一个设备都有它自己的文件类型和挂载点。对于刚接触 Ubuntu 的用户,可能会感到生畏。

对于经验丰富的 Linux 用户来说,管理 fstab 并不困难。如果你已经做过一次了,那么下次会更加的轻松。

所以,接下来动手吧。在 fstab 文件中添加一个条目或挂载一个分区,打开 Unity Dash 搜索Disk app并打开。当程序打开后,选择你想要挂载和格式化的驱动器。在格式完后,选择选项 -> 编辑挂载选项

Linux:Ubuntu 每日小贴士 - 在Ubuntu下用桌面图形界面挂载分区
Linux:Ubuntu 每日小贴士 – 在Ubuntu下用桌面图形界面挂载分区

最后,关闭自动挂载选项并手动指定你的挂载选项。磁盘会自动的将这些选项写入到 fstab 文件中,这样 mount 命令才可以读取挂载的分区。

Linux:Ubuntu 每日小贴士 - 在Ubuntu下用桌面图形界面挂载分区
Linux:Ubuntu 每日小贴士 – 在Ubuntu下用桌面图形界面挂载分区

保存你的设置并重启,或用 mount 命令挂载分区。

上面的选项在 fstab 文件中会像这样显示。

/dev/sdb /media/richard/ExtPartition ntfs-3g rw,auto,user,fmask=0111,dmask=0000 0 0

好了,这些就是今天全部内容!每当你启动你的机子是新分区将会自动挂载上。

Enjoy!

好好享受吧!


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-mount-partitions-in-ubuntu-from-your-desktop-gui/

译者:Luoxcat 校对:wxy

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

来源:https://linux.cn/article-2520-1.html

Linux:Linux 服务器管理员的12个有用的命令

我们已经读了很多教程和看了很多视频了,你现在是一名Linux高级用户了。好的,恭喜你。但是还有一些需要学习!下面一些命令在你成为全能的管理员时会派上用场!

Linux:Linux 服务器管理员的12个有用的命令
Linux:Linux 服务器管理员的12个有用的命令
  1. ifconfig: 在修改内核中已有的网络接口时,你会用到ifconfig命令。这个命令通常用于系统调校和调试,但同时也可以用于在启动过程中设置接口。

  2. netstat: 对于Linux用户来说这是一个用于显示网络相关信息的高级命令。它包括路由表、网络连接、伪装连接、接口统计等丰富信息。

  3. nslookup: 在你需要找出关于网络服务的信息时可以用到这个命令。它能帮你找到用于查询DNS域的名称服务器信息。

  4. dig: dig工具用于请求DNS域名服务器。如果你要找出主机地址、邮件交换、名称服务器和其他相关信息,那么这个工具就是最佳选择。你可以在Linux和Mac OS X操作系统上使用这个命令。

  5. uptime: uptime命令用于验证服务器在无人照看下发生了什么。当你需要坐在服务器前查找错误的时候,这个命令尤其有用。

  6. wall: 这个命令用于给所有已登录的用户发送消息。你可以只给那些消息权限设置成了’是’的用户发消息。消息是作为wall命令的参数给出的。

  7. mesg: 用户可以使用’write’命令给你发送消息。但是作为服务器管理员,你可以使用mesg命令来决定他们是否能够使用write命令。你可以选择’n’和’y’,分别用于控制在屏幕上不弹出或者弹出消息。

  8. write: 如果对于一个用户的’mesg’命令的状态设置为’y’,那么write命令就允许你发送消息给那个用户。

  9. talk: 当上面所说的“消息”不够用时,使用talk命令与登陆的用户进行“会话”。

  10. w: 这个命令是uptime和who命令的结合,其显示结果就好像连续先后执行了这两个命令一样。

  11. rename:当你需要重命名特定的文件时,rename命令会派上用场。这个命令可以通过匹配替换来为多个文件批量重命名。

  12. top:这个命令可以显示运行在CPU上的进程。命令会自动刷新并持续显示进程直到你使用中断命令停止它。


via: http://www.efytimes.com/e1/fullnews.asp?edid=125990

译者:geekpi 校对:Mr小眼儿

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

来源:https://linux.cn/article-2524-1.html

Linux:如何正确双启动Ubuntu和Windows双系统

尽管微软想让你信任Windows,但一个Linux操作系统和一个Windows操作系统可以在同一台PC上和平共存。这个文章会指导你如何让一个Ubuntu系统和Windows操作系统并行运行。

Linux:如何正确双启动Ubuntu和Windows双系统
Linux:如何正确双启动Ubuntu和Windows双系统

你必须考虑两种场景,同时你也必须决定哪一种适合你。这里必须要考虑安装顺序。在你已经安装好Ubuntu操作系统后再安装Windows会有一点问题,因为微软似乎不太在意其他小伙伴。

如果你是在已经安装好Windows后安装Ubuntu,那么事情会变得简单多了,几乎没有任何工作和准备是必需的。

让我们开始处理更加困难的问题。如果你已经有一个Ubuntu系统,想安装Windows,你会丢掉GRUB,它是默认的引导程序。Windows不会在意它,并会擦除它。

如果你已经犯了这个错误,但你并没有重写Linux分区,请别沮丧。数据仍然在那里,你需要的是一个含有Ubuntu(最新到13.10版本)的可启动live CD。你需要安装一个名为Boot-Repair的应用程序,使用PPA来安装它。

记住,如果你使用U盘,安装应用会相当简单,因为Ubuntu安装镜像是混合镜像。用Live CD启动一个Ubuntu会话,打开终端,然后输入下列指令:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

打开应用程序,点击推荐修复,然后等待。在这个步骤完成后,重启机器,你就会重新看到GRUB,实现双启动。

在另一方面,如果你已经安装好Windows,想要安装Ubuntu,事情会更加简单。启动Ubuntu安装,选择安装到一个非Windows分区,格式化为EXT4,选择引导程序的位置,然后就搞定了。

如果你选择将引导程序安装在和Windows安装的同一块硬盘上,它会擦除微软的引导程序。这样没有问题,因为GRUB会识别出WIndows操作系统,你不会丢掉它。如果你把它安装在其它地方,譬如在另一块硬盘上,当你选择从不同的硬盘启动时,你会看到它们两个。

开始享受你的Ubuntu和Windows双系统启动的乐趣吧!


via: http://news.softpedia.com/news/How-to-Dual-Boot-Ubuntu-and-Windows-Properly-415377.shtml

译者:KayGuoWhu 校对:wxy

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

来源:https://linux.cn/article-2525-1.html

Linux:PHP里10个鲜为人知但却非常有用的函数

PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用。这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数。

Linux:PHP里10个鲜为人知但却非常有用的函数
Linux:PHP里10个鲜为人知但却非常有用的函数

levenshtein()

你有没有经历过需要知道两个单词有多大的不同的时候,这个函数就是来帮你解决这个问题的。它能比较出两个字符串的不同程度。

用法:

 

 

Source: http://php.net/manual/en/function.levenshtein.php

get_defined_vars()

这是一个在debug调试时非常有用的函数。这个函数返回一个多维数组,里面包含了所有定义过的变量。

用法:

 

Source: http://php.net/manual/en/function.get-defined-vars.php

php_check_syntax()

这个函数非常的有用,可以用来检查PHP的语法是否正确。出于技术上的原因,从PHP 5.05开始,这个函数被删除了。

用法:

 

Source: http://www.php.net/manual/en/function.php-check-syntax.php

ignore_user_abort()

这个函数用来拒绝浏览器端用户终止执行脚本的请求。正常情况下客户端的退出会导致服务器端脚本停止运行。

用法:

 

Source: http://www.php.net/manual/en/function.ignore-user-abort.php

highlight_string()

当你想把PHP代码显示到页面上时,highlight_string()函数就会显得非常有用。这个函数会把你提供的PHP代码用内置的PHP语 法突出显示定义的颜色高亮显示。这个函数有两个参数,第一个参数是一个字符串,表示这个字符串需要被突出显示。第二个参数如果设置成TRUE,这个函数就 会把高亮后的代码当成返回值返回。

用法:

 ');
?>

 

Source: http://php.net/manual/en/function.highlight-string.php

highlight_file

这是一个非常有用的PHP函数,它能返回指定的PHP文件,并按照语法语义用高亮颜色突出显示文件内容。其中的突出显示的代码都是用HTML标记处理过的。

用法:

 

Source: http://www.php.net/manual/en/function.highlight-file.php

php_strip_whitespace

这个函数也跟前面的show_source()函数相似,但它会删除文件里的注释和空格符。

用法:

 

Source: http://www.php.net/manual/en/function.php-strip-whitespace.php

get_browser

这个函数会读取browscap.ini文件,返回浏览器兼容信息。

用法:

 

Source: http://www.php.net/manual/en/function.get-browser.php

memory_get_usage(),memory_get_peak_usage(),getrusage()

这些函数用来获取内存和CPU使用情况,memory_get_usage()函数返回内存使用 量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况,在调试PHP代码性能时,这些函 数会给你提供一些有用信息。但有一点请注意,在这些函数中Window上无效。

用法:

 

 

gzcompress(), gzuncompress()

这两个函数用来压缩和解压字符串数据。它们的压缩率能达到50% 左右。另外的函数 gzencode() 和 gzdecode() 也能达到类似结果,但使用了不同的压缩算法。

用法:

 

 

你是否也想到了还有其它很有用的函数?请在评论里分享出来!

 
[英文原文:10 little known but useful PHP functions ] 
via: http://www.aqee.net/10-little-known-but-useful-php-functions/

Linux:戴文的Linux内核专题:17 配置内核 (13)

Linux:戴文的Linux内核专题:17 配置内核 (13)
Linux:戴文的Linux内核专题:17 配置内核 (13)

你好!这是Linux内核系列的下一篇,我们仍将配置ATA设备并将进入逻辑卷/存储。

“ATA SFF support (for legacy IDE and PATA)”应该启用,因为这扩展了ATA的能力。

为了支持Pacific Digital的ADMA控制器,应该启用”Pacific Digital ADMA support”。

“Pacific Digital Serial ATA QStor support”(串口ATA支持)在下一个驱动中支持

Promise的SATA SX4设备在内核中支持(Promise SATA SX4 support (Experimental))。

可以BMDMA的SFF ATA控制器需要这个驱动(ATA BMDMA support)。BMDMA代表总线主控直接内存访问(BMDMA stands for Bus-Master Direct Memory Access)。

下面,这个驱动对不同的SATA和PATA控制器提供支持Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support)。

这里有其他的特定设备驱动(Calxeda Highbank SATA support)、(Marvell SATA support)、(NVIDIA SATA support)、(Promise SATA TX2/TX4 support)、(Silicon Image SATA support)还有(SiS 964/965/966/180 SATA support)、(ServerWorks Frodo / Apple K2 SATA support)、(ULi Electronics SATA support)、(VIA SATA support)。。。由于有很多SATA/PATA控制器设计不同,一个通用驱动无法使用在这些设备上。

接下来,这个驱动支持PC卡上的ATA设备除非有特定设备管理硬件的驱动(PCMCIA PATA support)。

在这之后,有一个通用PATA驱动用于管理其他不被先前驱动支持的PATA设备 (Generic platform device PATA support)。

PATA设备的电源消耗由这个ACPI驱动管理(ACPI firmware driver for PATA)。强烈建议对系统上所有的硬件启用ACPI。虽然这会增加内核的大小,但是ACPI会增强性能。

“Generic ATA support”(通用ATA支持)由这个驱动提供。

古老的ISA、VLB和PCI总线PATA设备可以通过这个驱动支持(Legacy ISA PATA support (Experimental))。这个古老支持使用新的ATA层。

这组特性包含了许多对于RAID和LVM能力,可见下面的特性选项(Multiple devices driver support (RAID and LVM))。

有趣的事实:内核是由C和汇编写成的。

这个驱动允许RAID和LVM组合在一起。这用于使几个LVM卷使用RAID。分区被组合成逻辑块设备,然后形成RAID设备。

许多用户会希望RAID可以在启动时侦测到(Autodetect RAID arrays during kernel boot)。如果你没有RAID,那么不要启用这个特性。不然,启动处理会比原先希望的慢上几秒。

注意:当配置Linux内核时,最好按照”use it or lose it”(非用即失)的原则。那就是,如果你不用它,那就禁用这个特性。

硬盘分区可以通过这个驱动加在一起(Linear (append) mode)。

下面的驱动加入RAID-0支持带逻辑块设备中(RAID-0 (striping) mode)。接着还有 (RAID-1 (mirroring) mode)、(RAID-10 (mirrored striping) mode)和(RAID-4/RAID-5/RAID-6 mode)。

MD框架需要多路径支持(Multipath I/O support)。MD框架就是多设备(Multi Device)框架,它将多台设备作为一个单元管理。举例来说,将许多存储单元的分区组合起来可以使多个设备就像一个那样。多路径支持是用于使用处理虚拟的有多个地址的”单个设备”。因为单存储单元物理上有多件物理设备,所以它有多个硬件地址。

使用这个调试驱动,可以测试更大的多磁盘存储单元的bug(Faulty test module for MD)。

“Device mapper support”是一个用来映射逻辑扇区的卷管理器。LVM使用扇区映射。

如果启用的话,设备映射器可以有调试特性(Device mapper debugging support)。

如果需要,逻辑设备可以设置加密数据(Crypt target support)。这个特性允许用户将来加密那些存储设备。

只有启用了这个特性,才能使用逻辑存储单元的快照功能(Snapshot target)。

“Thin provisioning”(自动精简配置)允许逻辑卷设置成比组成逻辑卷的物理设备拥有更大的存储容量(Thin provisioning target)。这个特性同样为这类设备提供了快照功能。这额外的虚拟数据空间无法马上使用。这个特性的意义是允许用户在将来增加物理存储单元并且节约了配置逻辑块设备的时间。

用这个可以调试”Thin provisioning” (Keep stack trace of thin provisioning block lock holders)。

块设备性能的提升可以通过移动更多的常用数据到更快的存储单元中(Cache target (EXPERIMENTAL))。

卷管理器可以制成镜像逻辑卷(Mirror target)。

设备映射器(Device-mapper (dm))单元支持映射RAID1、RAID10、 RAID4、RAID5和RAID6(RAID 1/4/5/6/10 target)。

设备映射器(device-mapper)日志可以镜像到用户空间(Mirror userspace logging)。

“Zero target”是一个忽视写入并返回读取为零的设备。

接下来,卷管理器应该对硬件有多路径支持(Multipath target)。

这个驱动会发现最有效的到存储设备的路径来读取和写入(I/O Path Selector based on the number of in-flight I/Os)。

下面的一个驱动和以上相同,但是会寻找最快路径(I/O Path Selector based on the service time)。

如果一个逻辑卷上的物理存储单元正忙,如果可能的话,这个特性会允许读取/写入到另一个物理卷上。

udev可以生成设备管理器操作事件DM uevents)。udev是/dev的设备管理器。

为了测试软件/硬件对偶尔失败的输入/输出任务的逻辑设备如何反映,启用这个调试特性(Flakey target)。

逻辑卷可以创建为一个用于验证另一个逻辑分区数据的只读存储单元(Verity target support)。

注意:如果你喜欢我的文章,并且如果你有Linux.org的账号,请在我的文章上点击”Like”。同样,再次分享这篇文章在Google、Twitter和/或者Facebook上。

ConfigFS和TCM存储引擎可以通过这个设置启用(Generic Target Core Mod (TCM) and ConfigFS Infrastructure)。ConfigFS是一个基于内存的文件系统。

有趣的事实:Linux内核没有”main()”函数。在程序中,main()被依赖于kernel的libc调用。内核没有main()函数是因为libc将无法启动内核。如果内核的确有main()函数,那么我们就有一个”鸡或者蛋”的问题-谁先来?另外,内核的入口点用汇编写成,这并不使用main()函数。

下面,”TCM/IBLOCK Subsystem Plugin for Linux/BLOCK”可以禁用或者启用。

接着”TCM/FILEIO Subsystem Plugin for Linux/VFS”可以启用/禁用。

再次,还有两个TCM特性 – (TCM/pSCSI Subsystem Plugin for Linux/SCSI) 和 (TCM Virtual SAS target and Linux/SCSI LDD fabric loopback module)

对于ConfigFS的”Linux-iSCSI.org iSCSI Target Mode Stack”在这个驱动中支持(Linux-iSCSI.org iSCSI Target Mode Stack)。

下一步,可以启用/禁用”FireWire SBP-2 fabric module”。这允许一台计算机作为一个硬盘连接到另一台计算机上。

在这之后,我们可以配置”Fusion Message Passing Technology (MPT) device support”。

在那个标题下的第一个选项是一个用于并口适配器的SCSI支持的驱动(Fusion MPT ScsiHost drivers for SPI)。

SCSI同样也可以支持光纤通道主机适配器(Fusion MPT ScsiHost drivers for FC)和/或SAS适配器(Fusion MPT ScsiHost drivers for SAS)。

下一步,用户可以设置”Maximum number of scatter gather entries”。一个低的数值可以减少每个控制器实例的内存消耗。

下一个驱动提供了ioctl系统调用来管理MPT适配器(Fusion MPT misc device (ioctl) driver)。

光纤通道端口可以用这个驱动支持IP LAN的流量(Fusion MPT LAN driver)。

我可以读到你们的想法-你们会想到对于这个还有另外一篇文章。是的,你们想对了。请继续关注这个系列的下一篇文章。

如果你喜欢这个系列,请在Linux.org和/或者Google+上发表评论告诉我你有多喜欢这个系列,并且告诉我你想在今后的文章中希望看到的方面。或者给我发邮件DevynCJohnson@Gmail.com)。谢谢!

想要更多地了解作者,请检查下面的签名栏中的链接(译注:原文所在论坛有)

如果你已经完整地阅读了这篇文章,那么你应该已经看到单词”Facebook”三次了。如果没有,你没有阅读全部文章。

单词”Facebook”在这段中,上一段,和一个注解中。我打赌你阅读了上面的段落而没有通读文章来试图寻找第三个单词实例。


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-13.4714/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2526-1.html

Linux:戴文的Linux内核专题:18 配置内核 (14)

Linux:戴文的Linux内核专题:18 配置内核 (14)
Linux:戴文的Linux内核专题:18 配置内核 (14)

你好! 准备好读另一篇很酷的Linux内核文章了么?

接下来,在这个任务中,我们可以启用/禁用”Fusion MPT logging facility”。MPT代表”Message Passing Technology”(消息传递技术)。Fusion驱动是由LSI Logic公司开发。MPT一种进程间使用的特定消息策略。这个技术是同步的意味着进程将会等待所需的消息。

在这之后,如果计算机处理拥有火线端口就应该启用”FireWire driver stack”。如果没有,那么就没有必要去启动一个不会使用到的火线驱动。火线很像USB。不过在协议、速度、物理形状和端口布局上不同。通常上,苹果设备使用火线和USB。一些PC有火线端口,但是不像USB口那样普及。

一些火线控制器使用OHCI-1394规范(OHCI-1394 controllers)。如果是这样,启用这个驱动。

为了使用火线存储设备,启用下一个驱动(Storage devices (SBP-2 protocol))。这个驱动提供了火线存储单元与火线总线通信的协议(the card with the attached FireWire ports)。一些火线扫描仪同样需要这个驱动。

IPv4可以用在火线端口(IP networking over 1394)。IEEE 1394或者简单的”1394″就是火线。使用IPv4在火线多播有局限。

“Nosy”是”FireWire PCILynx”卡上的流量监控(Nosy – a FireWire traffic sniffer for PCILynx cards)。

下一步,可以支持I2O设备(I2O device support)。”Intelligent Input/Output (I2O)”(智能输入/输出)总线使用硬件和操作系统层的驱动。硬件驱动(hardware drivers (HDM))并不特定与任何操作系统而OS驱动(OS drivers (OSM))必须在目标操作系统上使用。OSM可以与任何HDM通信。I2O卡/总线有一个IOP- 输入/输出处理器(Input/Output Processor)。由于主CPU处理更少的数据,所以加速了系统。

只在缺乏SUN I2O控制器的系统上启用”Enable LCT notification”。I2C SUN固件不支持LCT通知。 如果目标是RAID,Adaptec I2O控制器需要下一个驱动(Enable Adaptec extensions)。

64位的直接内存访问可以在Adaptec I2O控制器上启用(Enable 64-bit DMA)。

如果允许,可以配置I2O设备(I2O Configuration support)。这个特性主要用在RAID设定中。

可以为I2O启用支持老的输入/输出控制(Enable ioctls (OBSOLETE))。

可以启用I2O总线适配器的OSM软件(I2O Bus Adapter OSM)。这组OSM被用来寻找新的在其他适配器末端的I2O设备。

下面,可以启用I2O块设备上的OSM(I2O Block OSM)。I2O硬件上的RAID控制器需要这个OSM。

下面的OSM用于I2O控制器上的SCSI或者光纤通道设备。

如果启用了(I2O /proc support),可以通过/proc读取I2O设备的信息。

在启用/禁用了I2O特性,我们可以继续其他的内核特性。下面,我们看到”Macintosh device drivers”。这只对苹果设备有用。PC的Linux内核不应该有任何这些驱动启用。然而,正如许多说法都有例外一样。一些PC用户可能会使用苹果鼠标、键盘和/或者一些其他的苹果设备。再说一次,最好彻底地理解需求和正在开发的内核。

下一步,我们有一个用于网络的驱动(Network device support)。X11和其他的Linux软件不依赖于这个驱动,所以如果内核不会连接到另一台计算机、因特网、内联网或者网络,那么这个特性可以安全地禁用。

下面的驱动就像上面,但是特定于核心驱动(Network core driver support)。

这个驱动支持Etherchannel(Bonding driver support)。”bonding”是两条或者更多的以太网通道的融合。这也成为中继。

使用这个驱动(Dummy net driver support),可以在Linux中设置一个虚拟网络。虚拟网络(dummy network)就像网络中的/dev/null。任何发送给虚拟网络的数据都会永久消失,因为它会发往/dev/null。IP地址没有设置。用户可以定义他们的网络相当于/dev/null。

下一步,可以支持和EQL(EQL (serial line load balancing) support)。这允许两台计算机使用SLIP或者PPP协议在两条串行连接上通信。

光纤通道是一种用于连接存储设备到计算机的快速串行协议(Fibre Channel driver support)。

TMII收发器需要这个驱动(Generic Media Independent Interface device support)。MII是一种用于最高速度为100Mbit/s以太网的接口。以太网线缆用于连接到PHYceiver,这是一种以太网收发器。

为了通过虚拟接口组织许多以太网设备,需要”Ethernet team driver support”。

“MAC-VLAN support”允许用户在特定的MAC地址和某个接口上映射数据包。

TAP字符设备可以由MAC-VLAN接口生成(MAC-VLAN based tap driver)。TAP设备从内核中获取数据包,这样它们就可以被送往其他地方。

下一个特性允许虚拟vxvlan接口在3层网络上创建2层网络(Virtual eXtensible Local Area Network (VXLAN))。这通常用于隧道虚拟网络。

内核发送给网络的消息可任意通过这个特性记录下来(Network console logging support)。除非记录网络信息对你很重要时才启用它。禁用这个特性会增强性能。

这个特性允许不同参数被改变(Dynamic reconfiguration of logging targets)。这些参数包括端口号、MAC地址、IP地址和其他一些设定。

如果用户空间程序希望使用TAP设备,那么启用这个特性可以允许这样的活动(Universal TUN/TAP device driver support)。

这个驱动用于本地以太网隧道(Virtual ethernet pair device)。

“Virtio network driver”用于QEMU、Xen、KVM和其他虚拟机。

下一步,可以启用”ARCnet support”。ARCnet是一种类似令牌环本地局域网络(Local-Area-Network (LAN)协议。ARCnet代表”Attached Resource Computer Network”(附加资源计算器网络)。

现在,我们进入到”ATM drivers”。ATM代表”Asynchronous Transfer Mode”(异步传输模式)。ATM用于电信。

Marevell以太网交换机芯片需要这个驱动(Marvell 88E6060 ethernet switch chip support)。同样,这类交换机的芯片同样需要依赖模型(Marvell 88E6085/6095/6095F/6131 ethernet switch chip support)和(Marvell 88E6123/6161/6165 ethernet switch chip support)。

现在,我们可以学习关于”Ethernet driver support”。

首先我们可以启用/禁用”3Com devices”。接下来允许内核开发者选择支持哪些3Com设备。

下一组选项是对于不同的”Adaptec devices”和接下来的”Alteon devices”。

这些只是特定设备/供应商驱动。通常地,这些驱动被作为模块加入。

在设置了这两组选项后,接下来还有”AMD devices”和”Atheros devices”。

注意:请记住内核会运行在哪类硬件上。对于大量不同的设备,或许最好把它们作为模块加入

这里有不同特定供货商的设备驱动-“Cadence devices”、”Broadcom devices”、”Brocade devices”、”Chelsio devices”、”Cisco devices”、”Digital Equipment devices”。一些其他的特定设备/供应商驱动遵循它们。

接下来的驱动并不是特定设备/供应商的 “SLIP (serial line) support”。这个驱动支持SLIP和CSLIP。SLIP(Serial Line Internet Protocol)是一种用于调制解调器和串口的因特网驱动。PPP现在用来代替SLIP。CSLIP是压缩的SLIP。

下面,”CSLIP compressed headers”可以启用用来压缩TCP/IP头。CSLIP快于SLIP,但是想要启用CSLIP,传输和接收的计算机都必须理解CSLIP。

当在恶劣的模拟线路上使用SLIP时,最好启用”Keepalive and linefill”,这会帮助保持连接。

对于质量差的网络或者7bit网络中运行IP而言,最好启用”Six bit SLIP encapsulation”。

现在我们可以进入流行的USB系统,但是这些是用于网络的USB驱动。

第一个启用/禁用的USB网络设备是”USB CATC NetMate-based Ethernet device support”。这是用于10Mbps的USB以太网EL1210A芯片设备。USB设备将会扮演和成为一个以太网设备即使硬件是USB。

接下来,除了设备是KLSI KL5KUSB101B芯片组(USB KLSI KL5USB101-based ethernet device support),其他与上面的驱动一样。

Pegasus USB是USB转以太网的适配器/转换器(USB Pegasus/Pegasus-II based ethernet device support)。

接下来是另外一个USB转以太网驱动(USB RTL8150 based ethernet device support)。

下一篇文章中,我们将继续配置USB网络系统。


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-14.4765/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2528-1.html

Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor

Tor, The Onion Router (洋葱路由),是一种虚拟通道网络,它可使用户安全以及匿名的进行互联网通信。Tor 可以让组织及个人通过公共网络分享信息而不用担心隐私会泄露。我们可以用 Tor 来避免网站追踪我们及我们家人的信息,也可以用来连接新闻网站、即时通讯服务或者那些被网络提供商和网络管理员封锁的网站。

Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor
Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor

Tor 最初是当做第三代美国海军研究实验室的洋葱路由项目而设计、实现及发展起来的。在美国海军心中,最初设计Tor的目的是为了政府的通信安全,但到了今天,出于各种各样的目的,Tor正在供普通人、军队、记者、执法人员、活动家以及其他更多的人每天使用。

这篇快速教程中,我们会学到怎么在浏览器上使用 Tor。下面所示的操作步骤是 Ubuntu 13.04 桌面系统中测试的,但它在所有的 Debian/Ubuntu 系统及它们的衍生系统中应该也适用。

在 Ubuntu / Debian / Linux Mint 上安装 Tor 和 Vidalia

Tor 在 Debian/Ubuntu 系统的默认源库中已经存在,但它们有点过时了。所以得把 Tor 源库加入你发行版的源列表中。

编辑 /etc/apt/sources.list 文件,

$ sudo nano /etc/apt/sources.list

根据你系统的发行版本添加如下的一行。因为在我的 Ubuntu 13.04 桌面系统上做测试,所以我添加了如下的一行。

[...]
deb     http://deb.torproject.org/torproject.org raring main

保存并关闭文件。如果你使用的是 buntu 13.10 系统,添加行应该是,

deb     http://deb.torproject.org/torproject.org saucy main

Debian 7 Wheezy 如下:

deb     http://deb.torproject.org/torproject.org wheezy main

用如下命令添加 gpg 密钥:

$ gpg --keyserver keys.gnupg.net --recv 886DDD89
$ gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

用下面命令更新源库列表及安装 vidalia:

$ sudo apt-get update
$ sudo apt-get install tor vidalia deb.torproject.org-keyring

在安装期间,你会被问到要用哪一个用户来负责 Tor 服务,选择一个用户然后点击 OK。

Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor
Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor

现在 Vidalia 已经安装运行了。

配置火狐浏览器

打开浏览器。进入 编辑 -> 首选项 -> 高级 -> 网络 ->设置。如下截图所示,选择手动配置代理,在 SOCKS Host 一栏,输入 localhost 或者 127.0.0.1,在端口一栏输入 9050

Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor
Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor

现在,在浏览器上输入网址 https://check.torproject.org/。你会看到一个绿色的讯息:“恭喜。这个浏览器配置为可以使用Tor“。红色的消息表明 Tor 还没有设置。请参考下面的截图。

Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor
Linux:Ubuntu/Debian/Linux Mint 系统中使用 Tor

相同的设置适用于所有浏览器,只要打开浏览器设置/首选项窗口,找到网络设置,在代理服务器栏中输入 127.0.0.1,在端口选项框中输入9050。要禁用 Tor,在浏览器设置中选择使用系统代理设置

注意: 如果你想使用 Tor 匿名浏览网页,请阅读我们有关Tor浏览器套件的文章,它提供了易于配置的Tor以及浏览器补丁包,以使匿名访问更方便。要直接使用SOCKS(即时通讯,Jabber,IRC等),你可以直接在 Tor(本地端口9050)配置里指向你的应用程序,但需要先看看这些FAQ条目来了解这么做的风险。

就这么多。好运吧!保持安全!


via: http://www.unixmen.com/configure-browser-use-tor-ubuntu-debian-linux-mint/

译者:runningwater 校对:Mr小眼儿

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

来源:https://linux.cn/article-2531-1.html

Linux:8个有趣的Linux提示与技巧!

我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提示和技巧。我们希望你喜欢它。请继续读下去。。。

Linux:8个有趣的Linux提示与技巧!
Linux:8个有趣的Linux提示与技巧!

以它们的大小列出文件

如果你想要一个基于它们大小排序的文件列表,你可以使用下面的命令。

它会以递减顺序排列文件。

# ls -l | grep ^- | sort -nr -k 5 | more

如果你想要递归地做相同的事,你可以使用下面的第二个命令。

# ls -lR | grep ^- | sort -nr -k 5 | more

—Sumedh Gajbhiye, sumedh.gajbhiye1985@gmail.com

重置奇怪的终端

如果感觉你的bash终端错误地显示垃圾的提示字符信息,并无论你输入任何命令都显示非ASCII字符-下面的命令可以让事情回到正轨。

在终端盲打输入(译注:因为你其实看不到你输入的这些字符的正确显示,不过尽管输入好了!)下面的命令并按回车:

# reset

如果那个不能修复这个问题,试一下下面的:

# stty sane

—Sudheer Divakaran, cdsudheer@gmail.com

记录并回放终端会话

下面是一个简单的贴士来记录并回放终端回放。它通过使用命令script和scriptreplay。

这在使用终端制作教程时非常方便。

要开始记录你的终端会话,使用下面的命令:

$ script -t 2> timing.log -a output.session

接着输入:

$ ls
$touch test
.....
$ exit

这里,script命令取两个文件作为参数timing.log(它记录了每个命令执行的时间信息)和output.session(存储了命令的输出)。

现在,要回访记录的会话,使用下面所示的scriptplay。

$ scriptreplay timing.log output.session

注:timing.log和output.session可以被任何想要在自己的终端上重放会话的人使用。

—Abhishek Singh, abhishekkumarsingh.cse@gmail.com

使用shell脚本生成随机数

有时当你想要用shell脚本编程时,可能需要生成一个随机数来用于脚本。

这里是获得一个3位随机数的代码。

var=$(dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d” “ | cut -c 3-5);

这回存储随机生成的数字在名为var的变量中。

—Arpan Chavda, 09bce006@nirmauni.ac.in

以root用户运行Linux上的软件

作为一名root用户,为了让某些不能在root身份运行的软件运行(译注:典型的是google chrome),你需要在软件的二进制文件中改变geteuid调用为getppid。

这个技术在操作系统中非常有用,比如backtrack,这里的大多数安装工作都以root用户完成。

比如:为了以root用户运行Google Chrome,使用下面的命令:

# hexedit /opt/google/chome/chrome

接着按下Ctrl+S并在16进制转储文件中搜寻geteuid字符串。用字符串getppid代替。按下Ctrl+X来保存并退出编辑器。

现在浏览器就可以以root用户运行了。

# google-chrome

—Mayank Bhanderi, mbhanderi24@gmail.com

用gzip压缩优化你的站点

压缩是一种简单、有效的方法来节约带宽和加速你的站点。在压缩的帮助下,多数站点的主页面会从100KB变成10KB。

为了在Apache Web服务器中启用这个特性,你需要在httpd.conf中包含deflate_module,并且在Apache配置文件中加入下面的行 (/etc/httpd/conf/httpd.conf)来压缩text、html、 javascript、 css 和 xml 文件:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

—Munish Kumar, munishtotech@gmail.com

在登陆时检查服务器负载信息

这里有一个贴士来在你登陆服务器的时候检查服务器平均负载。创建一个sload.sh的文本文件,内容如下:

#!/bin/bash
gh=$(uptime | awk -F, ‘{print $3}’)
echo -e “Server$ghn”

现在,为了在登陆时检查服务器负载,通过/root/.bashrc调用sload.sh脚本。

记住如下设置脚本权限:

# chmod 755 /root/sload.sh

要调用sload.sh脚本,如下在/root/.bashrc后追加

/root/sload.sh

或者你还可以这样追加sload.sh的内容到.bashrc中。

$echo “/root/sload.sh” >> /root/.bashrc

当你完成上面的步骤后,你可以登出并再次登陆来查看服务器负载。

—Ranjith Kumar T, ranjith.stc@gmail.com

在特定时间开始你的任务

你可以使用下面的命令来在特定时间调度你的作业:

# at 2015
> >vlc /music/rockstar.mp3

这个命令会在2015小时后使用vlc播放器播放rockstar.mp3。你可以在at命令后跟上-l选项来检查挂起的作业:

# at -l

更多at命令的信息可以在man页找到。

—Manas Pradhan, acmeofmanas@gmail.com


via: http://www.efytimes.com/e1/fullnews.asp?edid=127250

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2532-1.html

Linux:安装完 MySQL 后必须调整的 10 项配置

当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议。许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项。这篇文章的目的在于给你一份非常重要的配置项清单。

我们曾在几年前在博客里给出了这样的建议,但是MySQL的世界变化实在太快了!

Linux:安装完 MySQL 后必须调整的 10 项配置
Linux:安装完 MySQL 后必须调整的 10 项配置

写在开始前…

即使是经验老道的人也会犯错,会引起很多麻烦。所以在盲目的运用这些推荐之前,请记住下面的内容:

  • 一次只改变一个设置!这是测试改变是否有益的唯一方法。

  • 大多数配置能在运行时使用SET GLOBAL改变。这是非常便捷的方法它能使你在出问题后快速撤销变更。但是,要永久生效你需要在配置文件里做出改动。

  • 一个变更即使重启了MySQL也没起作用?请确定你使用了正确的配置文件。请确定你把配置放在了正确的区域内(所有这篇文章提到的配置都属于 [mysqld])

  • 服务器在改动一个配置后启不来了:请确定你使用了正确的单位。例如,innodb_buffer_pool_size的单位是MB而max_connection是没有单位的。

  • 不要在一个配置文件里出现重复的配置项。如果你想追踪改动,请使用版本控制。

  • 不要用天真的计算方法,例如”现在我的服务器的内存是之前的2倍,所以我得把所有数值都改成之前的2倍“。

基本配置

你需要经常察看以下3个配置项。不然,可能很快就会出问题。

innodb_buffer_pool_size:这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。典型的值是5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存)。

innodb_log_file_size这是redo日志的大小。redo日志被用于确保写操作快速而可靠并且在崩溃时恢复。一直到MySQL 5.1,它都难于调整,因为一方面你想让它更大来提高性能,另一方面你想让它更小来使得崩溃后更快恢复。幸运的是从MySQL 5.5之后,崩溃恢复的性能的到了很大提升,这样你就可以同时拥有较高的写入性能和崩溃恢复性能了。一直到MySQL 5.5,redo日志的总尺寸被限定在4GB(默认可以有2个log文件)。这在MySQL 5.6里被提高。

一开始就把innodb_log_file_size设置成512M(这样有1GB的redo日志)会使你有充裕的写操作空间。如果你知道你的应用程序需要频繁的写入数据并且你使用的时MySQL 5.6,你可以一开始就把它这是成4G。

max_connections:如果你经常看到‘Too many connections’错误,是因为max_connections的值太低了。这非常常见因为应用程序没有正确的关闭数据库连接,你需要比默认的151连接数更大的值。max_connection值被设高了(例如1000或更高)之后一个主要缺陷是当服务器运行1000个或更高的活动事务时会变的没有响应。在应用程序里使用连接池或者在MySQL里使用进程池有助于解决这一问题。

InnoDB配置

从MySQL 5.5版本开始,InnoDB就是默认的存储引擎并且它比任何其他存储引擎的使用都要多得多。那也是为什么它需要小心配置的原因。

innodb_file_per_table:这项设置告知InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF) 或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)。每张表一个文件允许你在drop、truncate或者rebuild表时回收磁盘空间。这对于一些高级特性也是有必要的,比如数据压缩。但是它不会带来任何性能收益。你不想让每张表一个文件的主要场景是:有非常多的表(比如10k+)。

MySQL 5.6中,这个属性默认值是ON,因此大部分情况下你什么都不需要做。对于之前的版本你必需在加载数据之前将这个属性设置为ON,因为它只对新创建的表有影响。

innodb_flush_log_at_trx_commit:默认值为1,表示InnoDB完全支持ACID特性。当你的主要关注点是数据安全的时候这个值是最合适的,比如在一个主节点上。但是对于磁盘(读写)速度较慢的系统,它会带来很巨大的开销,因为每次将改变flush到redo日志都需要额外的fsyncs。将它的值设置为2会导致不太可靠(reliable)因为提交的事务仅仅每秒才flush一次到redo日志,但对于一些场景是可以接受的,比如对于主节点的备份节点这个值是可以接受的。如果值为0速度就更快了,但在系统崩溃时可能丢失一些数据:只适用于备份节点。

innodb_flush_method: 这项配置决定了数据和日志写入硬盘的方式。一般来说,如果你有硬件RAID控制器,并且其独立缓存采用write-back机制,并有着电池断电保护,那么应该设置配置为O_DIRECT;否则,大多数情况下应将其设为fdatasync(默认值)。sysbench是一个可以帮助你决定这个选项的好工具。

innodb_log_buffer_size: 这项配置决定了为尚未执行的事务分配的缓存。其默认值(1MB)一般来说已经够用了,但是如果你的事务中包含有二进制大对象或者大文本字段的话,这点缓存很快就会被填满并触发额外的I/O操作。看看Innodb_log_waits状态变量,如果它不是0,增加innodb_log_buffer_size。

其他设置

query_cache_size: query cache(查询缓存)是一个众所周知的瓶颈,甚至在并发并不多的时候也是如此。 最佳选项是将其从一开始就停用,设置query_cache_size = 0(现在MySQL 5.6的默认值)并利用其他方法加速查询:优化索引、增加拷贝分散负载或者启用额外的缓存(比如memcache或redis)。如果你已经为你的应用启用了query cache并且还没有发现任何问题,query cache可能对你有用。这是如果你想停用它,那就得小心了。

log_bin:如果你想让数据库服务器充当主节点的备份节点,那么开启二进制日志是必须的。如果这么做了之后,还别忘了设置server_id为一个唯一的值。就算只有一个服务器,如果你想做基于时间点的数据恢复,这(开启二进制日志)也是很有用的:从你最近的备份中恢复(全量备份),并应用二进制日志中的修改(增量备份)。二进制日志一旦创建就将永久保存。所以如果你不想让磁盘空间耗尽,你可以用 PURGE BINARY LOGS 来清除旧文件,或者设置expire_logs_days 来指定过多少天日志将被自动清除。

记录二进制日志不是没有开销的,所以如果你在一个非主节点的复制节点上不需要它的话,那么建议关闭这个选项。

skip_name_resolve:当客户端连接数据库服务器时,服务器会进行主机名解析,并且当DNS很慢时,建立连接也会很慢。因此建议在启动服务器时关闭skip_name_resolve选项而不进行DNS查找。唯一的局限是之后GRANT语句中只能使用IP地址了,因此在添加这项设置到一个已有系统中必须格外小心。

总结

当然还有其他的设置可以起作用,取决于你的负载或硬件:在慢内存和快磁盘、高并发和写密集型负载情况下,你将需要特殊的调整。然而这里的目标是使得你可以快速地获得一个稳健的MySQL配置,而不用花费太多时间在调整一些无关紧要的MySQL设置或读文档找出哪些设置对你来说很重要上。

英文原文:10 MySQL settings to tune after installation

参与翻译(3人):BoydWang美好的2014DrZ

via : http://www.oschina.net/translate/10-mysql-settings-to-tune-after-installation 

 

Linux:如何在Linux Mint 16中正确安装Ubuntu One

Linux:如何在Linux Mint 16中正确安装Ubuntu One
Linux:如何在Linux Mint 16中正确安装Ubuntu One

由于Linux Mint是基于 Ubuntu 的,所以我认为 Ubuntu One 应该是预装程序之一。不过我错了。我自行从 Software Manager 安装了 Ubuntu One,令我惊讶的是,它居然无法正常运行。在这篇教程中我们会告诉你如何在 Linux Mint 16中安装 Ubuntu One 以及如何正常运行它。

在Linux Mint 16 中安装 Ubuntu One:

当你通过 Software Manager 安装 Ubuntu One 客户端以后,你准备打开并配置它时,你甚至都无法在菜单搜索里面找到它。就像是完全没有安装过一样。但你查看 Software Manager,又显示它已经安装完成了。问题到底出在哪了?

问题的关键是 Ubuntu One installer 需要 ubuntuone-control-panel-qt 包。这个包没有安装,你的 Ubuntu One 的安装过程就无法运行。要解决这个问题,打开终端 (Ctrl+Alt+T)并运行下面的命令:

sudo apt-get install ubuntuone-control-panel-qt

现在你在菜单里面搜索,你会发现 Ubuntu One 已经存在了。现在你可以配置账户,选择哪些同步和哪些不同步。现在你可能觉得你已经解决了所有的问题,这时你会发现 Ubuntu One 指示器并没出现在面板上

在 Linux Mint 16 中安装 Ubuntu One indicator:

你可以通过添加以下的 PPA 在 Linux Mint 中获取 Ubuntu One indicator 程序:

sudo add-apt-repository ppa:rye/ubuntuone-extras
sudo apt-get update
sudo apt-get install indicator-ubuntuone

注销并重新登录后,你会看到这个指示器已经出现在面板中。与此同时,你的 Ubuntu One 也全部安装完成了。我希望这篇 在 Linux Mint 中安装 Ubuntu One 会对你有所帮助。欢迎提出问题和建议。


via: http://itsfoss.com/ubuntu-one-linux-mint-16/

译者:乌龙茶 校对:Caroline

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

来源:https://linux.cn/article-2534-1.html

Linux:ls命令的20个实用范例

Linux中一个基本命令是ls。没有这个命令,我们会在浏览目录条目时会遇到困难。这个命令必须被每个学习Linux的人知道。

ls是什么

ls命令用于列出文件和目录。默认上,他会列出当前目录的内容。带上参数后,我们可以用ls做更多的事情。这里是一些在日常操作中使用到的ls用法的示例。

1. 不带参数运行ls

不带参数运行ls会只列出文件或者目录。看不到其他信息输出(译注:有时候你发现无参数的ls命令和这里描述的不同,那有可能是你的ls命令实际上带参数的ls别名)。

$ ls

2. 使用长清单模式

使用-l字符(小写L字符),会显示当前目录内容的长列表。在接下来的例子中,我们会结合-l参数(这个参数经常使用)来得到更好的结果。

$ ls -l

这里是如何读取输出 :

  • 第1列

    • 第一个字母d意味着内容是目录或者文件。在上面的截图中,Desktop、 Documents、 Downloads 和 lynis-1.3.8是目录。如果是’-‘(减号),这意味着它的内容是文件。当它是l(小写l字符),意味这内容是链接文件。
    • 下面的9个字符是关于文件权限。前3个rwx字符是文件的拥有者的权限,第二组3rwx是文件的所有组的权限,最后的rwx是对其他人访问文件的权限。
  • 第2列 这行告诉我们有多少链接指向这个文件。

  • 第3列 这行告诉我们谁是这个文件/文件夹的所有者。

  • 第4列 这行告诉我们谁是这个文件/文件夹的所有组。

  • 第5列 这行告诉我们这个文件/文件夹的以字节为单位的大小。 目录的大小总是4096字节。

  • 第6列 这告诉我们文件最后的修改时间。

  • 第7列 这告诉我们文件名或者目录名。

3. 显示文件大小

以字节为单位看大小可能会不方便。6.5M读起来比6727680字节更简单。要这么做,我们可以使用-h与-l结合的参数。-h参数意味着便于人识别

$ ls -lh

另外一个可以这么做的参数是–si。这个参数和-h参数类似,但是-si以1000为单位,而-h以1024为单位

$ ls -si

4. 排序文件大小

在我们可以显示文件大小之后,我们希望以文件大小排序。我们可以使用-S参数来这么做。这列表会从大到校排序。

$ ls -lhS

5. 测量大小

ls可以通过使用-block-size=SIZE改单位大小。这里的SIZE是:

K = Kilobyte
M = Megabyte
G = Gigabyte
T = Terabyte
P = Petabyte
E = Exabyte
Z = Zettabyte
Y = Yottabyte

比如,我们希望使用MB作为单位大小。所以语法就会像这样:

$ ls -l –block-size=M

6. 显示隐藏文件

在Linux中,以”.”(点号)开头的文件是隐藏文件。为了在ls命令中显示它,我们可以使用-a选项。

$ ls -a

7. 只列出目录条目

如果我们希望只列出目录,我们可以使用-d选项。

$ ls -d */

8. 不打印所有者信息

要这么做,我们使用-g选项。

$ ls -g

9. 不打印组信息

-g隐藏了拥有者信息,—G会隐藏组信息。

$ ls -lG

10. 打印UID和GID

如果你想以数字方式列出项的所有者和所有组(即UID和GID),我们可以带-n选项使用ls命令。这里是个例子。

$ ls -n

从上面的例子中,我们知道用户pungki的UID是100,GID是1000,而root组的GID是0

11. 不带颜色打印

一些Linux发行版已经对ls命令启用彩色。这会使ls以各种颜色打印列表。如果你不想要这样,你可以使用 –color=never 参数。

$ ls –color=never

12. 打印每个文件的索引号

为了打印索引或者大家俗称的inode号,我们可以使用-i选项。索引号会显示在第一列。

$ ls -li

13. 增加 / (斜线) 标记目录

要这么做,使用-p选项

$ ls -p

14. 排序时反转顺序

你或许需要在列出条目时反转顺序。要这么做,你可以使用-r选项。

$ ls -r

15. 递归列出子目录

-R参数后,你可以列出包含它子目录的目录。

$ ls -R

16. 扩展名排序

你可以使用-X参数或者–sort=extension来通过扩展名来排序(译注:这样对于筛选不同类型的文件很有用)。

$ ls -lX

$ ls –sort=extension

17. 通过修改时间列出

使用-t选项会按修改时间排序,新的文件在前。

$ ls -lt

18. 列出你的主目录

要列出你的主目录,你可以用”~”(波浪号)来代表它。这样你就不必输入完整的目录名。让我们假设家文件名为/home/pungki,那么波浪号就对/home/pungki有意义了。

$ ls ~

19. 列出父目录

无论你在那个目录,你可以列出父目录而不必输入完整路径。这是个例子。

$ ls ../

这回列出1层之上的目录内容。

$ ls ../../

这回列出2层之上的目录内容(译注:可不支持“…”来代表2层之上)。

20. 打印ls命令版本

使用–version参数打印它。

$ ls –version

总结

这些是在日常操作中会使用到的参数。当然你总可以输入man ls 或者 ls –help 来查询ls的手册页


via: http://linoxide.com/linux-command/linux-ls-command/

译者:geekpi 校对:wxy

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

来源:https://linux.cn/article-2535-1.html

Linux:在Arch上使用Syslinux替代GRUB

这个教程用于教授Arch Linux用户如何在Arch下安装Syslinux——一个轻量级、快速并且现代感十足的系统引导程序,用来替换掉系统自带的GRUB引导程序。

Linux:在Arch上使用Syslinux替代GRUB
Linux:在Arch上使用Syslinux替代GRUB

实际上,Syslinux不是一个简单的开机启动装载程序,它支持多种启动引导方式,本地载入,通过PXE网络载入,以及通过可移动媒体载入。并且,它还同时支持MBR和GPT磁盘,以及RAID设置。

在开始你实际操作之前,你应该知道Syslinux支持如下文件系统:FAT,EXT2,EXT3,EXT4和Btrfs,而且Syslinux能够运行在支持UEFI或BIOS的机器上。到目前为止,Syslinux还不能访问自己所在的分区之外的文件。

在你替换GRUB启动之前,请认真考虑,这只是一个可选的尝试,这个尝试有可能会给你带来一些麻烦。如果说你只是想感受一下新鲜的事物,或是已经厌倦了GRUB的界面,没问题来尝试尝试Syslinux吧。

在Arch box 中安装Syslinux

该说的都说完了,下面我们来开始安装Syslinux,准备替换掉已有的GRUB或者GRUB2启动程序。打开一个终端,输入如下命令来安装Syslinux

sudo pacman -S syslinux

安装完成后,你应该注意到一条消息,将指导您如何分别在BIOS或UEFI机器上部署Syslinux引导装载程序。BIOS用户比较幸运,因为他们只需要运行syslinux-install_update 脚本就行了,这个脚本是Matthew Gyurgyik编写的,用来在BIOS机器上成功的部署Syslinux。

在Arch box上部署Syslinux

如果你拥有的是一个单独的/boot分区,你要保证你是在/boot分区上执行的这个脚本。在终端中输入如下命令:

sudo syslinux-install_update -i -a -m

这个脚本会安装必需的文件,并且用启动标记标记分区,同时会安装MBR引导代码。

配置Syslinux

这是非常非常重要的一步,任何人都不能忽略它,因为如果你的Syslinux没有正确的配置,你的电脑将不能启动。请再次注意。

目前,Syslinux能通过/boot/syslinux/syslinux.cfg文件进行配置。在the official Arch Linux page of Syslinux 中查看详细的配置指令。当你配置成功后,重启你的系统然后来看看新的启动引导程序效果如何!

如果你有任何的问题,请毫不犹豫的在评论中提出!


via: http://news.softpedia.com/news/How-to-Replace-GRUB-with-Syslinux-on-Arch-Linux-415394.shtml

译者:dy2009 校对:Mr小眼儿

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

来源:https://linux.cn/article-2539-1.html

Linux:Linux 安全新闻: Linux 3.13、SystemRescueCD 4和BackBox 3.13

1) Linux 3.13

Linus Torvalds 前一段时间释出了 Linux Kernel 3.13 作为2014年的开门红。按照惯例,此版本更新了大量驱动。

并且,Linux Kernel 3.13 包含了 nftable,这个软件是大名鼎鼎的 iptables 的继任者。从提交的代码来看,nftables 继续使用现存的网络过滤钩子(netfilter hooks)、连接追踪系统、NAT 子系统、透明代理引擎、日志基础架构和用户空间包排列设施。

“简而言之,nftables 提供4个128位的普通寄存器和1个特殊寄存器用于保存结论”,代码提交的注释上说道,“并且 nftables 继承了 iptables 的“table/chain/rule 对象”这些概念,但提供了更灵活的配置方式,它也包含原先映射支持的未知数据类型架构。”

值得注意的是这次还支持 NFC(近场通信)支付协议。

“使用 NFCCMDSEIO 命令发送 ISO07816 应用协议数据单元到 NFC 嵌入式安全设备,”Intel 开发人员 Samuel Ortiz 在他的提交信息中写道:“反馈信息也是通过 NFCCMDSEIO 返回到用户空间的。”

2) System Rescue CD 4.0.0

Linux:Linux 安全新闻: Linux 3.13、SystemRescueCD 4和BackBox 3.13
Linux:Linux 安全新闻: Linux 3.13、SystemRescueCD 4和BackBox 3.13

大多数人都会使用 Linux 作为服务器或桌面系统,其实我们还可以把一个 Linux 系统拿来救援一个非 *nix 系统。

用于恢复系统和数据的 Linux 发行版中,比较流行的一个是“SystemRescueCd”,它在上周更新到了4.0.0版。

以下是它的更新记录

  • 标准内核:长期支持(LTS)版 linux-3.10.25(内核镜像包含32位的 rescue32 和 64位的 rescue64)
  • 备用内核:最新稳定版 linux-3.12.7(内核镜像包含32位的 altker32 和 64位的 altker64)
  • XOrg 图形环境和驱动更新到 xorg-server-1.14.3
  • GParted 更新到 0.17.0(添加在线重新分区的功能)
  • btrfs 工具集更新到 sys-fs/btrfs-progs-3.12

3) BackBox 3.13

Linux 也是那些安全专家们手中的强大武器,而 BackBox 就是一个专注于安全的 Linux 发行版(BackBox 主要面对安全评估和渗透测试 —— 译者注)。最新版的 BackBox 更新了大量组件,有一点很奇怪,它没有使用最新的 Linux 3.13 内核,而用了 Linux 3.11 内核。

现在的 BackBox 发行版可以在匿名模式下更新安全工具。


via: http://www.linuxplanet.com/news/linux-top-3-linux-3.13-system-rescue-4-and-backbox-3.13.html

译者:bazz2 校对:wxy

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

来源:https://linux.cn/article-2543-1.html