标签 教程 下的文章

这篇指南介绍了怎么样在 RedHat、 CentOS、 FedoraDebianUbuntuLinux MintXubuntu 等这些系统中安装 Teamviewer 9Teamviewer 是一款流行的应用软件,用于远程辅助、桌面共享、计算机之间互传文件、网络会议及在线会议等方面,并且它是一款专业应用程序。而且,个人用户可以免费使用。Teamviewer可以运行在 Windows、Linux、Mac OS、Android 系统以及 iPhone 设备上,它使用它自己集成的 WINE 环境来运行,所以我们用的时候不需单独安装 WINE 程序了。 Teamviewer 并不是原生的 Linux 应用程序。

最新的稳定版本 TeamViewer 9 近期已经发布了,有了些新的功能和性能的改进。在 TeamViewer 9 中增加的一些新功能特性,其要点如下:

Windows、Linux 和 Mac 系统下的功能特性

  • 在不同的选项卡中打开多个链接
  • 支持局域网唤醒
  • 支持为 TeamViewer 帐户添加双因子身份验证
  • 支持 Windows 8.1 和 Mac OS X Mavericks 系统
  • 能保存自定义模块,如uickSupport、QuickJoin等等
  • 集成了应用程序编程接口(API)
  • 更强的 Teamviewer 账户安全
  • 通过桌面快捷方式快速连接
  • 可视化通知信息
  • 不同计算机间复制和粘贴文件和文本
  • 不同计算机间的初始化文件传输
  • 视频传输更快

在 RedHat、 CentOS、 Fedora 上安装 Teamviewer 9

你可以在 teamviewer\_linux.rpm 上下载到基于 Linux 发行版本的 rpm 包。

# wget http://www.teamviewer.com/download/teamviewer_linux.rpm 

然后开始安装。进入你的下载包所在的目录,执行如下的 yum 命令来安装,它将会自动安装需要的依赖包。

# yum install teamviewer_linux.rpm

如果出现公钥缺失错误,你可以用如下命令来下载,并导入之。

# wget http://www.teamviewer.com/link/?url=354858
# rpm --import TeamViewer_Linux_PubKey.asc

在导入公钥后,请再一次运行 “ yum install ” 命令来安装 Teamviewer rpm 包。

要启动运行 Teamviewer 应用,从终端中运行如下命令。

# teamviewer

Teamviewer 应用程序正运行在我的 Fedora 18 系统上。

Running TeamViewer in Fedora 18

Fedora 18 系统上运行的 TeamViewer

在 Ubuntu, Linux Mint, Xubuntu 上安装 Teamviewer 9

你可以在 teamviewer linux .deb 上下载到基于 32-位 系统或 64-位 系统的 teamviewer 安装包,或者你可以用如下所示的 wget 命令来下载安装包。

## 32 位系统 ##
$ sudo wget http://www.teamviewer.com/download/teamviewer_linux.deb

## 64 位系统 ##
$ sudo wget http://www.teamviewer.com/download/teamviewer_linux_x64.deb

一旦下载好,就可以进入你下载的 Teamviewer 包所在的目录,然后运行如下命令来安装。

## 32 位系统 ##
$ sudo dpkg -i teamviewer_linux.deb

## 64 位系统 ##
$ sudo dpkg -i teamviewer_linux_x64.deb

如果出现有缺失依赖包错误这种情况,请使用如下命令来安装这些依赖包。

sudo apt-get install -f

一旦全部都安装成功,在 Ubuntu 系统中要启动 Teamviewer,打开 Dash 主窗口,输入 teamviewer ,然后点击出现的 teamviewer 图标,程序就启动运行了。

Running TeamViewer in Ubuntu 13.10

Ubuntu 13.10 系统上运行的 TeamViewer

Teamviewer 应用程序正运行在我的 Ubuntu 13.10 系统上。

TeamViewer 9 Under Ubuntu 13.10

在 Ubuntu 13.10 下的 TeamViewer 9

要在 Linux Mint 上启动,进入 菜单 >> 网络 >> Teamviewer, 并点击 接受许可协议 来启动运行 TeamViewer。

Teamviewer 应用程序正运行在我的 Linux Mint 15 系统上。

Running TeamViewer in Linux Mint 15

Linux Mint 15 系统上运行的 TeamViewer


via: http://www.tecmint.com/how-to-install-teamviewer-on-linux-distributions/

译者:runningwater 校对:Caroline

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

Ubuntu是一个功能强大的现代操作系统,可以执行很多任务。你可以使用Ubuntu创建文档,浏览网页,聆听音乐,以及烧录或拷贝媒体光盘。

就像Windows和Max OS X一样,Ubuntu是无所不能的!

这篇简单的手册将告诉你如何使用Ubuntu拷贝,翻录或烧录一张CD/DVD光盘。如果你有一张包含音频文件(音乐)或视频文件(电影)的光盘,并且你想要复制这张光盘(创建多个副本),使用Ubuntu会使你很容易做到。

如果你已经准备好想要拷贝进一张媒体光盘(CD/DVD)的音频或视频文件,Ubuntu也可以处理它。你可以在Ubuntu上安装很多的免费软件用于烧录或翻录一张CD/DVD光盘,但Ubuntu已经安装好一款默认的相关软件。接下来我们会使用这款默认软件去拷贝或翻录CD/DVD光盘。

Brasero光盘烧录机安装在UBuntu的每一个版本上。它是Ubuntu上默认的光盘烧录机。它被设计得足够简单,拥有诸多独特的特性来使得用户能够快速简便地创建光盘。

下面列出来的是Brasero的一些特性:

  • 创建数据CD/DVD时自动过滤隐藏和损坏的文件
  • 同时支持多个会话,可以执行磁盘文件的完整性检查
  • 可以即时烧录视频CD/DVD
  • 可以镜像CD/DVD内容到硬盘
  • 可以擦除可擦写CD/DVD

还有很多其它的功能。如果你想找一个Ubuntu上简便的磁盘刻录机,在做任何操作前请先看看这个软件。

要开始使用Brasero去烧录CD/DVD光盘,请确保你的电脑安装了CD/DVD烧录机。如果没有,显然你无法烧录。如果你的电脑符合要求,将你想要翻录的数据光盘插入CD/DVD,然后进入Dash,搜索Brasero。

当Brasero打开后,选择磁盘拷贝。这个功能会拷贝一个光盘里的内容,然后将其写入到另一个光盘中。如果这是你想要的,请继续。

如果Ubuntu能够访问你的CD/DVD烧录机,Brasero会打开并自动识别光盘内容。在这里,你可以单击 复制 从源光盘创建一个拷贝。如果你希望创建多个拷贝,单击按钮 创建多个拷贝

当系统提示安装所需的软件包时,单击 安装

安装完成后,Brasero会开始拷贝光盘。如果最终光盘完成拷贝,系统会提示你插入一张空白的可写入的CD/DVD光盘以便写入拷贝。插入它然后等待完成将内容写入光盘的操作。

当你完成以上操作时,移除光盘,就可以使用烧录好的光盘了!

via: http://www.liberiangeek.net/2013/12/daily-ubuntu-tips-copy-cd-dvd-discs-using-ubuntu/

译者:KayGuoWhu 校对:wxy

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

在本篇中,我们将继续配置网络特性。记住,网络是计算机最重要的特性,这篇文章和这之后的网络相关文章都要重点了解。

在我们开启这系列之前,我先要澄清一些事情。配置进程不会编辑你当前系统的内核。这个进程配置的是你编译(或者交叉编译)新内核前的源代码。一旦我完成了配置过程,那么我会讨论读者建议的话题。同样,作为提醒,每个段落中在引号或者括号中的第一句或者第二句(很少)的文本是配置工具中设置的名字。

首先,我们可以启用两个不同的稀疏型独立协议组播路由协议("IP: PIM-SM version 1 support" 和 "IP: PIM-SM version 2 support"),组播有点像广播,但是广播会给所有计算机发送信号而组播只会给选定的组或者计算机发送信号。所有PIM协议都是工作在IP的组播路由协议。

注意:当计算机与另外一台计算机或者服务器通信时,这叫做单播 - 只是以防你们想知道。

下一个要配置的网络特性是"ARP daemon support"。这让内核有一张IP地址表以及它们相应的在内部缓存中的硬件地址。ARP代表的是地址解析协议(Address-Resolution-Protocol)。

为了额外的安全,"TCP syncookie support"应该要启用。这保护计算机免于受到SYN洪水攻击。黑客或者恶意软件可能会发送SYN信息给一台服务器来消耗它的资源,以便让真实的访客无法使用服务器提供的服务。SYN消息会打开一个计算机和服务器之间的连接。Syncookie会阻断不正当的SYN消息。那么,真实的用户可以仍旧访问访问网站,而黑客则没办法浪费你的带宽。服务器应该启用这个特性。

下面的特性是用于 "Virtual (secure) IP: tunneling"。隧道是一个网络协议到另外一个网络协议的封装。当在使用虚拟私人网络(VPN)时需要使用安全隧道。

接下来,启用"AH transformation"增加对IPSec验证头的支持。这是一种管理数据验证的安全措施。

在这之后,启用"ESP transformation"增加对IPSec封装安全协议的支持。这是加密与可选择的数据验证的安全措施。

如果启用了这个特性(IP: IPComp transformation),Linux内核会支持IP负载压缩协议。这是一种无损压缩系统。无损指的是数据仍会保持完整,在解压缩后,数据在压缩前后没有变化。压缩在加密前先执行。由于更少的数据传输,所以这个压缩协议可以加速网络。

下面三个设置用于处理不同的IPsec特性("IP: IPsec transport mode"、"IP: IPsec tunnel mode"和"IP: IPsec BEET mode")。IPSec代表的是因特网安全协议(Internet Protocol SECurity).两台计算机之间并且/或者服务器间的传输模式是默认的IPSec模式。传输模式使用AH或者ESP头并且只加密IP头。在隧道模式下,IP头和负载会被加密。隧道模式通常用于连接网关到服务器/服务器或者服务器到服务器。BEET模式(Bound End-to-End Tunnel)不会在IP地址改变时重连。BEET模式下的连接会仍然存在。BEET模式比其他几种模式使用更少的字节。

下面,内核可以支持收到大量IPv4/TCP包时减轻栈负担(Large Receive Offload (ipv4/tcp))。网卡(NIC)处理TCP/IP栈。这个特性在内核中增加了处理大型栈的代码。

INET套接字可以启用(INET: socket monitoring interface)。INET套接字用于因特网。这个特性(当启用时)会监视来自或者发往因特网的连接与流量。

这里有另外一个套接字监视接口(UDP: socket monitoring interface)。这个用于用户数据报协议(User Datagram Protocol (UDP))。再说一下,这个特性监视UDP的套接字。

以下的设定会启用不同的TCP拥塞控制(TCP: advanced congestion control)。如果网络变得太忙或者带宽已满,那么许多计算机必须等待一些带宽或者它们的数据流会变慢。如果流量被合理管理,这回有助于网络性能提升。

TCP连接可以被MD5保护(TCP: MD5 Signature Option support)。这用于保护核心路由器之间的边界网关协议(Border Gateway Protocol (BGP))连接。核心路由器是网络中主要的路由器;这些路由器有时指的是因特网/网络的骨干。BGP是一种路由决策协议。

下一个设定允许你启用/禁用"The IPv6 protocol"。当你启用它,IPv4仍旧可以很好地工作。

下面的特性是一个特殊的隐私特性(IPv6: Privacy Extensions (RFC 3041) support)。这使得系统在网络接口中生成并使用不同的随即地址。

注意:计算机中没有数据是真正随机的。计算机中随机数和随机字串通常称为伪随机。

在多路由的网络中,这个特性允许系统能够更有效地计算出该使用哪一个(IPv6: Router Preference (RFC 4191))。

在这之后,一个用于处理路由信息的实验性特性可以启用/禁用(IPv6: Route Information (RFC 4191))。记住,在编译一个稳定内核时,除非你确实需要这个问题中特性,才去安装实验性的功能。

有时,当系统自动配置它的IPv6地址时,它可能会得到一个网络中已被使用的IPv6地址。这是一个允许重复地址检测(Duplicate Address Detection (DAD)的实验性特性(IPv6: Enable RFC 4429 Optimistic DAD)。

IPv6可以有不同的IPsecc特性支持("IPv6: AH transformation" 和 "IPv6: ESP transformation")。

IPv6同样可以使用先前讨论过的IP负载压缩协议(IP Payload Compression Protocol)(IPv6: IPComp transformation)。

这里甚至有IPv6移动支持(IPv6: Mobility)。这允许使用IPv6的移动设备在保留同样地址的情况下使用其他的网络。

再说一次,这里同样有一些针对IPv6的IPsec特性("IPv6: IPsec transport mode"、"IPv6: IPsec tunnel mode"、"IPv6: IPsec BEET mode")。

当启用此项后,IPv6可以支持MIPv6路由优化(IPv6: MIPv6 route optimization mode)。这样就可以确保最短和最佳网络路径了。如果消息在更少的路由和网络设备间发送,那么下载和上传速度就可以更快。

如果一个管理员需要连接到两个IPv6网络,但是只能通过IPv4来连接,这时内核使这个变得可能(IPv6: IPv6-in-IPv4 tunnel (SIT driver)。这通过隧道使IPv6报文穿越IPv4网络。

这个隧道特性是用于IPv6-in-IPv6 和 IPv4 tunneled in IPv6 (IPv6: IP-in-IPv6 tunnel (RFC2473))

另外一个隧道特性是(IPv6: GRE tunnel)。他只允许GRE隧道。(GRE:通用路由封装(Generic Routing Encapsulation))

允许支持多重路由表(IPv6: Multiple Routing Tables)。路由表是一张网络位置列表和数据要去目的地的路径。

允许根据源地址或前缀进行路由如果启用了(IPv6: source address based routing)。

"IPv6 Multicast routing"(IPv6组播路由)仍然是实验性质。IPv4和IPv6处理组播的方式不同。

典型的组播路由根据目标地址和源地址来处理组播包(IPv6: multicast policy routing)。启用这个选项会将接口和包的标记(mark)包含到决策中。

下面可以启用IPv6的PIM-SMv2 组播路由协议(IPv6: PIM-SM version 2 support)。这与先前提到的IPv4 PIM相同。因为IPv4和IPv6不同,所以PIM可以被v4/v6同时/分别激活

网络包标签协议(Network packet labeling protocols)(就像CIPSO和RIPSO)可以启用(NetLabel subsystem support)。这些标签包含了安全信息和权限。

网络包可以通过启用安全标记(Security Marking)变得更安全。

这个网络特性增加了一些开销(Time-stamping in PHY devices)。物理层(PHY)设备可以给网络包打上时间戳。PHY代表的是"PHYsical layer"。这些设备管理收到和发送的消息。

可以启用netfilter(Network packet filtering framework)。Netfilters过滤并修改过往的网络包。包过滤器是一种防火墙。如果包满足了一定的条件,包不会被允许通过。

数据报拥塞控制协议(Datagram Congestion Control Protocol)可以启用(The DCCP Protocol)。DCCP允许双向单播连接。DCCP有助于流媒体、网络电话和在线游戏。

下一步,流控制传输协议(Stream Control Transmission Protocol)可以启用(The SCTP Protocol)。SCTP工作在IP顶层并且是一个稳定可靠的协议。

下面的协议是可靠数据报套接字(Reliable Datagram Sockets)协议(The RDS Protocol)。

RDS可以使用Infiniband和iWARP作为一种支持RDMA的传输方式(RDS over Infiniband and iWARP),Infiniband和iWARP都是协议。RDMA代表的是远程直接内存访问(remote direct memory access)。RDMA用于一台远程计算机访问另一台计算机的内存而无需本机计算机操作系统的辅助。这就像直接内存访问(DMA),但是这里远程代替了本地计算机。

RDS同样可以使用TCP传输(RDS over TCP)

接下来,"RDS debugging messages"应该禁用。

下面的网络协议用于集群(The TIPC Protocol)。集群就是一组计算机作为一台计算机。它们需要有一个方式去通信,所以他们使用透明内部进程间通信协议(Transparent Inter Process Communication (TIPC))。

这个高速协议使用固定大小的数据包(Asynchronous Transfer Mode (ATM))。

使用ATM的IP可以与连接到一个ATM网络的IP的系统通信(Classical IP over ATM)。

下一个特性禁用"ICMP host unreachable"(ICMP主机不可达)错误信息(Do NOT send ICMP if no neighbor)。这防止了由于重新校验而移除ATMARP表被移除的问题。ATMARP表管理地址解析。ICMP代表的是因特网控制消息协议(Internet Control Message Protocol)并被常用于通过网络发送错误消息。

LAN仿真(LANE)仿真了ATM网络上的LAN服务(LAN Emulation (LANE) support)。一台LANE计算机可以作为桥接Ethernet和ELAN的代理。

"Multi-Protocol Over ATM (MPOA) support"允许ATM设备通过子网边界发送连接。

在这个特性下,至少在kernel看来ATM PVCs的行为就像Ethernet(RFC1483/2684 Bridged protocols)。PVC代表的是永久虚电路(permanent virtual circuit)。虚拟连接是一种基于包的连接,它伴随着主/原始协议使用其他更高层的协议。

"Layer Two Tunneling Protocol (L2TP)"(二层隧道协议)是隧道对应用透明。虚拟私有网络(Virtual Private Networks (VPNs))使用L2TP

要想使用基于Linux的以太网桥,启用这个桥特性(802.1d Ethernet Bridging)。在网络中,一个桥同时连接两个或者更多的连接。以太网桥是使用以太网端口的硬件桥。

"IGMP/MLD snooping"(IGMP/MLD 探听)是一种以太网桥能够基于IGMP/MLD负载选择性地转发组播信号的能力。禁用这个特性能够明显减少内核的大小。IGMP代表的是因特网组管理协议(Internet Group Management Protocol),这是一种被用于设置组播组的协议。MLD代表多播监听发现(Multicast Listener Discovery)。

下一个过滤特性允许以太网桥选择性地管理在每个数据包中的基于VLAN的信息的流量。禁用这个特性可以减小内核的大小。

通过启用这个特性(802.1Q VLAN Support),VLAN接口可以在以太网上创建。下面"GVRP (GARP VLAN Registration Protocol)"支持GVPR协议被用于在网络设备上注册某些vlan。

在这之后,"MVRP (Multiple VLAN Registration Protocol) support"(多重VLAN注册协议)可以启用。MVRP是GVRP更新的替代品。

"DECnet Support"是一种Digital公司发明的网络协议。这是一中既安全又稳定的协议。

"DECnet router support"允许用户制作基于Linux的支持DRCnet的路由。

注意:Linux可以用于服务器、工作站、路由器、集群、防火墙并支持其他许多用途。

下面的特性用于支持逻辑链路层2(Logical Link Layer type 2)(ANSI/IEEE 802.2 LLC type 2 Support)。这层允许在同一个网络设备上使用多个协议。强烈建议在网络很重要的环境中启用这个特性。最好所有内核都支持这个特性。

在下一篇文章中,我们将讨论更多的关于可以配置的网络设定。


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

译者:geekpi 校对:wxy

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

来享受这个Linux内核系列的下一篇文章。我们将继续配置PCI特性,接着是计算机中最重要的特性-网络。

进程地址空间标识符(Process Address Space Identifiers (PASIDs))允许PCI设备同时访问多个IO地址空间(PCI PASID support)。这个特性需要一个支持PASIDs支持的IOMMU。

下面我们可以启用/禁用"PCI IO-APIC hotplug support"。APIC代表高级可编程中断控制器(Advanced Programmable Interrupt Controllers)。可编程中断控制器(PIC)收集所有来自不同源发给一个或者多个CPU流水线的中断。高级PIC与PIC一样,但是它们有更多的特性像高级中断管理和更多的优先级模型。热插拔是一种在系统在运行时加入一件设备的能力并且不需要重启。这个驱动是为了PCI主板能拥有处理输入/输出APIC热插拔的能力。

在这之后,下面的问题询问的是启用"ISA-style DMA support"。在前文中提到过,DMA是直接内存访问,它是一种设备无需借助CPU直接访问内存的能力。ISA代表的是工业标准架构(Industry Standard Architecture),它是一种像PCI的总线标准。这个特性允许在ISA主板上支持DMA。

现在,我们可以移步到"PC Card (PCMCIA/CardBus) support"。PCMCIA代表的是个人计算机存储卡国际协会(Personal Computer Memory Card International Association)。PC卡、PCMCIA卡和Cardbus卡都是卡片形状的笔记本外设。

下一个PCMCIA选项处理"16-bit PCMCIA support"。一些旧的计算机使用16位PCMCIA卡。

为了从用户空间加载卡式信息结构(Card Information Structure (CIS))以使PCMCIA卡正常工作,这个特性应该启用(Load CIS updates from userspace)。

CardBus是16位PCMCIA的更新32位版本。这个驱动提供对这类设备的支持(32-bit CardBus support)。为了使用32位PC卡,需要一个兼容Cardbus的主机桥。

下面的驱动提供对上面提到的CardBus桥支持(CardBus yenta-compatible bridge support)。这是PCMCIA卡插入的硬件端口。

下面三个选项"Special initialization for O2Micro bridges"、"Special initialization for Ricoh bridges"和"Special initialization for TI and EnE bridges"。它们都是不同类型卡桥。

接下来,提供了"Auto-tune EnE bridges for CB cards"的驱动。

"Special initialization for Toshiba ToPIC bridges"可以在下一个选项中启用/关闭。

下一个提供的设备驱动是"Cirrus PD6729 compatible bridge support"。这在一些老的笔记本上需要。

下一个PCMCIA桥驱动是Itel的"i82092 compatible bridge support"。这也在一些老的笔记本上出现。这是另外一种桥驱动。

在这之后,以下的选项询问关于是否启用"Support for PCI Hotplug"。

下一步,ACPI PCI热插拔可以启用(ACPI PCI Hotplug driver)。这个驱动允许拥有ACPI的PCI设备热插拔(这个特性之前已经讨论过)。

对于IBM系统,为了ACPI热插拔下一个驱动应该启用(ACPI PCI Hotplug driver IBM extensions)。这就像上面的特性但特定与IBM设备。

对于带有支持CompactPCI热插拔支持的CompactPCI卡的系统,启用"CompactPCI Hotplug driver"。

下面,我们有一个选项对于另一种CompactPCI系统卡(Ziatech ZT5550 CompactPCI Hotplug)。

使用#ENUM热插拔信号通过标准IO口作为系统注册位的CompactPCI卡需要这个驱动(Generic port I/O CompactPCI Hotplug)。

使用SHPC PCI热插拔控制器的主板需要下一个驱动(SHPC PCI Hotplug driver)。SHPC代表的是标准热插拔控制器(Standard Hot-Plug Controller)。这对于PCI主板是一个通用热插拔系统。

RapidIO互联设备也需要一个特殊的驱动(RapidIO support)。RapidIO芯片和主板快于PCI和PCIe。

"IDT Tsi721 PCI Express SRIO Controller"是一个特殊类型的RapidIO控制器。

下一个选项允许开发者输入在主机完成枚举前系统发现节点应该等待多久时间(以秒计)。这通常选择默认值

下一个特性会允许RapidIO系统接受除了维护信号外其他流量(Enable RapidIO Input/Output Ports)。

为了使用DMA引擎框架从RIO设备上发送或接收RapidIO数据,启用这个驱动(DMA Engine support for RapidIO)。RIO设备是可重配的输入/输出设备。RapidIO使用NREAD和NWRITE请求来在本地和远程内存间传输数据,因此驱动需要允许RapidIO使用DMA访问RIO设备。DMA控制器需要在内存中完成这个特性。

如果允许,RapidIO可以提供调试信息(RapidIO subsystem debug messages)。如前面所说,调试特性可以禁用,除非你或者其他人使用的内核需要调试特性。

下一个驱动提供"IDT Tsi57x SRIO switches support"。这是一组串口RapidIO开关,下面的四个选项是对于不同串口RapisIO开关驱动-"IDT CPS-xx SRIO switches support"、"Tsi568 SRIO switch support"、"IDT CPS Gen.2 SRIO switch support"和"Tsi500 Parallel RapidIO switch support"。

管理这些驱动后,我们可以继续其他的内核选项。下一个选项提供对ELF的支持(Kernel support for ELF binaries)。可执行与可链接格式(Executable and Linkable Format (ELF))支持是一种可执行文件规范。强烈建议启动这个。

为了执行那些需要解释器的脚本和二进制文件,这个特性必须启用(Kernel support for MISC binaries)。这些可执行文件的类型通常称为包装器驱动的二进制格式。例如包括Python2/3、 .NET、Java、DOS执行程序等等。

当这个选项启用时(Enable core dump support),内核可以生成崩溃文件。这是一个调试特性。除非这个内核是用来调试(无论内核本身还是软件),不然这个并不必要。

64位处理器可以执行32位程序如果启用了"IA32 Emulation"。最好启用这个特性除非开发者确定内核永远不会运行32位代码。

老式的a.out二进制文件也被支持(IA32 a.out support)。就像它称呼的那样,"汇编输出"(Assembler Output),这是一种已编译代码的文件格式。

下一个设置允许32位处理器访问完整的64位寄存器文件和宽数据路径(x32 ABI for 64-bit mode)。然而,仍旧使用32位指针。这些32位进程将比同样的为64位编译的进程使用内存更少,因为他们使用32位指针

下面,我们将讲网络支持。

我们第一个网络设定是启用一般的网络(Networking Support)。很少有开发者会禁用这个特性。如果他们这么做了,内核会变得又小又快,但是它将无法使用Wifi、蓝牙、以太网或者任何由网络设备或协议处理的连接。一些在独立系统上程序也需要这个特性,即使硬件上不存在网络设备。举例来说,X11依赖于网络特性。如果你能提供一个替代方案在屏幕上显示图形,你才能在内核中禁用网络特性。

"Packet socket"允许在没有中介物的情况下,进程与网络设备间进行通信。这个增强了性能。

ss工具需要启用这个特性用来数据包监控(Packet: sockets monitoring interface)。包监控意味着监视相关本地设备的网络流量。

"Unix domain sockets" (Unix域套接字)是用来建立和访问网络连接。X窗口系统需要这个特性;这是一个极好的例子来说明为什么即使系统中不会使用网络但是仍然在内核中启用网络特性。Unix域套接字是运行在同一台机器上的进程间的网络协议。

上面的Unix套接字可以被ss工具监控,但是下面一个特性必须先启用(UNIX: socket monitoring interface)。

转换(Transformation (XFRM))用户配置接口被许多Linux原生工具用到,所以这个特性强烈建议启用(Transformation user configuration)。这个会启用Ipsec-Internet Protocol SECurity(互联网协议安全)。Ipsec控制着验证并且/或者加密IP数据包。

下一个特性允许开发者给予网络数据包第二个政策(称作sub-policy)(Transformation sub policy support)。

IPsec安全联合定位器可以当这个特性启用时(Transformation migrate database)动态更新。使用移动IPv6的设备需要这个特性。当计算机与路由器或者任何形式的网络设备设置了一个网络连接,安全协议会确保两者不会意外地连接到网络上的其他设备上。IP数据包被设定发送到一个特定的设备上。然而,移动设备会使用不同的网络,比如说提供了4G信号,也需要能够使用相同的连接到新的网络点上。即使可能是相同的4G供应商,不同的设备会提供一个4G连接到它的物理位置。当设备处在新的区域时,它仍会使用相同的IP地址。

下一个特性是显示在包处理中的传输错误统计(Transformation statistics)。这对开发者有用。如果不需要,可以禁用掉它。

"PF\_KEY sockets"与KAME套接字兼容且它在使用从KAME移植来的IPsec工具时有用。KAME是IPv4 IPsec、IPv6 IPsec和IPv6的免费协议栈。

这是另外一个需要的移动IPv6特性,它增加了到PF\_KEYv2套接字的PF\_KEY MIGRATE消息(PF\_KEY MIGRATE)。

下面的是最重要的并且是在网络中最著名的需要启用的特性-"TCP/IP networking"。大多数网络(包括因特网)依赖于这个协议。甚至X窗口系统也使用TCP/IP。这个特性甚至允许用户ping它们自己(命令:ping 127.0.0.1)。要使用因特网或者X11,这个必须启用。

为了寻找网络中数个计算机,"IP: multicasting"必须启用。多播是一种给多台计算机但不是全部计算机发送消息的能力。广播会给网络中的所有计算机发送信号。

如果这是一个路由器Linux系统的内核,那就启用这个选项(IP: advanced router)。

如果下面的特性启用了,那么IP地址会在启动时自动配置(IP: kernel level autoconfiguration)。当用户希望不用配置就能连接到一个网络时是很有用的。

启用了DHCP协议支持,那么Linux系统可以通过网络像NFS挂载它的根文件系统并且使用DHCP发现IP地址(IP: DHCP support)。这允许Linux系统通过网络拥有它的远程根文件系统而不必用户在每次系统启动时手动管理进程。

下面的选项和上面的类似除了使用的是BOOTP而不是DHCP(IP: BOOTP support。BOOTP是自举协议;这个协议使用UDP而不是TCP并且只能使用IPv4网络

RARP是一个被BOOTP和DHCP替代了的旧协议,但是它仍可以加到内核中(IP: RARP support)。

网络协议可以在另一个概念中使用,称作"隧道"。这个特性可以用在Linux内核中(IP: tunneling)。安全shell协议(The secure shell protocol (SSH))就是隧道协议的一个例子。SSH需要这个特性。

下面的驱动可以多路复用通用路由封装包(GRE (Generic Routing Encapsulation))(IP: GRE demultiplexer)。多路复用是一个使单个信号进入不同部分的过程(这不会复制消息,只是分解它)。GRE是一种隧道协议。

下面的特性允许GRE通道在IP连接中形成(IP: GRE tunnels over IP)。这允许GRE隧道在IP网络中形成。

当启用这个特性(IP: broadcast GRE over IP),广播可以通过IP使用GRE。

在Linux系统的路由器内,为了让IP包发往多个地址,需要启用这个(IP: multicast routing)。


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

译者:geekpi 校对:wxy

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

Jailkit和jailed Shell

受限shell(Jailed Shell)是一类被限制的shell,它看起来非常像真实的Shell,但是它不允许查看和修改真实的文件系统的任何部分。Shell内的文件系统不同于底层的文件系统。这种功能是通过chroot和其他多种程序实现的。举例来说,给用户建立一个linux shell去让他“玩玩”,或者在一个限定的环境里运行一些程序的所有功能等等。

在这个教程里我们将会探讨在Ubuntu下用jailkit建立一个受限shell。Jailkit是一个让你快速建立一个受限shell的工具,将受限用户放到里面,并配置那些要在受限制环境里运行的程序。

Jailkit 从这里下载:http://olivier.sessink.nl/jailkit/

在Ubuntu/Debian 上安装 jailkit

  1. 因为jaikit需要在系统上编译,首先,我们需要有用于编译的那些工具。所以,安装如下包:
$ sudo apt-get install build-essential autoconf automake libtool flex bison debhelper binutils-gold
  1. 从下述URL下载Jailkit,或者访问它的网站以下载最新版本的,如果有了更新版本的话。http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
$ wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
  1. 解压
$ tar -vxzf jailkit-2.16.tar.gz
  1. 编译并创建deb软件包

Jailkit已经包含了用于编译成deb软件包的代码和配置,可以直接安装在Debian系的Linux上。运行下列命令来完成它。

$ cd jailkit-2.16/
$ sudo ./debian/rules binary
  1. 安装deb软件包

上述命令创建的deb软件包叫做: jailkit2.16-1amd64.deb.

$ cd ..
$ sudo dpkg -i jailkit_2.16-1_amd64.deb

就是这样,现在Jailkit已经安装完成了。Jailkit有许多命令可以用来设置一个基于chroot的受限环境,如下是这些命令:

$ jk_
jk_addjailuser   jk_chrootlaunch  jk_cp            jk_jailuser      jk_lsh           jk_uchroot       
jk_check         jk_chrootsh      jk_init          jk_list          jk_socketd       jk_update

上述命令都有man帮助信息,如果你使用它们时,可以参考。

配置Jailed Shell

  1. 配置受限环境

我们需要建立一个目录来存放所有受限环境的配置。目录随便放在什么地方,比如我们可以创建个/opt/jail的目录。

$ sudo mkdir /opt/jail

这个目录应为Root所有。用chown改变属主。

$ sudo chown root:root /opt/jail
  1. 设置在受限环境中可用的程序

任何程序想要在受限环境中执行则必须用jk\_init命令拷贝到目录中。

例如:

$ sudo jk_init -v /jail basicshell 
$ sudo jk_init -v /jail editors 
$ sudo jk_init -v /jail extendedshell 
$ sudo jk_init -v /jail netutils 
$ sudo jk_init -v /jail ssh 
$ sudo jk_init -v /jail sftp
$ sudo jk_init -v /jail jk_lsh

或一次性解决:

$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

像basicshell, editors, netutils是一些组名,其中包含多个程序。复制到jail shell中的每个组都是可执行文件、库文件等的集合。比如basicshell就在jail提供有bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep等程序。

完整的程序列表设置,你可以在/etc/jailkit/jk\_init.ini中查看。

jk\_lsh (Jailkit limited shell) - 这是一个重要的部分,必须添加到受限环境中。
  1. 创建将被监禁的用户

需要将一个用户放入jail里。可以先创建一个

$ sudo adduser robber
Adding user `robber' ...
Adding new group `robber' (1005) ...
Adding new user `robber' (1006) with group `robber' ...
Creating home directory `/home/robber' ...
Copying files from `/etc/skel' ...  
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for robber
Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] y

注意:目前创建的是一个在实际文件系统中的普通用户,并没有添加到受限环境中。

在下一步这个用户会被放到受限环境里。

这时候如果你查看/etc/passwd文件,你会在文件最后看到跟下面差不多的一个条目。

robber:x:1006:1005:,,,:/home/robber:/bin/bash

这是我们新创建的用户,最后部分的/bin/bash指示了这个用户如果登入了那么它可以在系统上正常的Shell访问

  1. 限制用户

现在是时候将用户限制

$ sudo jk_jailuser -m -j /opt/jail/ robber

执行上列命令后,用户robber将会被限制。

如果你现在再观察/etc/passwd文件,会发现类似下面的最后条目。

robber:x:1006:1005:,,,:/opt/jail/./home/robber:/usr/sbin/jk_chrootsh

注意:最后两部分表明用户主目录和shell类型已经被改变了。现在用户的主目录在/opt/jail(受限环境)中。用户的Shell是一个名叫jk\_chrootsh的特殊程序,会提供Jailed Shell。

jk\_chrootsh这是个特殊的shell,每当用户登入系统时,它都会将用户放入受限环境中。

到目前为止受限配置已经几乎完成了。但是如果你试图用ssh连接,那么注定会失败,像这样:

$ ssh robber@localhost
robber@localhost's password: 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)
* Documentation:  https://help.ubuntu.com/
13 packages can be updated.
0 updates are security updates.
*** /dev/sda7 will be checked for errors at next reboot ***
*** /dev/sda8 will be checked for errors at next reboot ***
Last login: Sat Jun 23 12:45:13 2012 from localhost
Connection to localhost closed.
$

连接会立马关闭,这意味着用户已经活动在一个受限制的shell中。

  1. 给在jail中的用户Bash Shell

下个重要的事情是给用户在限制环境中的一个正确的bash shell。

打开下面的文件

/opt/jail/etc/passwd

这是个jail中的password文件。类似如下

root:x:0:0:root:/root:/bin/bash
robber:x:1006:1005:,,,:/home/robber:/usr/sbin/jk_lsh

将/usr/sbin/jk\_lsh改为/bin/bash

root:x:0:0:root:/root:/bin/bash
robber:x:1006:1005:,,,:/home/robber:/bin/bash

保存文件并退出。

  1. 登入限制环境

现在让我们再次登入受限环境

$ ssh robber@localhost
robber@localhost's password: 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)
 * Documentation:  https://help.ubuntu.com/
13 packages can be updated.
0 updates are security updates.
*** /dev/sda7 will be checked for errors at next reboot ***
*** /dev/sda8 will be checked for errors at next reboot ***
Last login: Sat Jun 23 12:46:01 2012 from localhost
bash: groups: command not found
I have no name!@desktop:~$

受限环境说'I have no name!',哈哈。现在我们在受限环境中有了个完整功能的bash shell。

现在看看实际的环境。受限环境中的根目录实际就是真实文件系统中的/opt/jail。但这只有我们自己知道,受限用户并不知情。

I have no name!@desktop:~$ cd /
I have no name!@desktop:/$ ls
bin  dev  etc  home  lib  lib64  run  usr  var
I have no name!@desktop:/$

也只有我们通过jk\_cp拷贝到jail中的命令能使用。

如果登入失败,请检查一下/var/log/auth.log的错误信息。

现在尝试运行一些网络命令,类似wget的命令。

$ wget http://www.google.com/

如果你获得类似的错误提示:

$ wget http://www.google.com/
--2012-06-23 12:56:43--  http://www.google.com/
Resolving www.google.com (www.google.com)... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'

你可以通过运行下列两条命令来解决这个问题:

$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_dns.so.2

这样才能正确的定位到libnssfiles.so和libnssdns.so

在限制环境中运行程序或服务

现在配置已经完成了。可以在限制/安全的环境里运行程序或服务。要在限制环境中启动一个程序或守护进程可以用jk\_chrootlaunch命令。

$ sudo jk_chrootlaunch -j /opt/jail -u robber -x /some/command/in/jail

jk\_chrootlaunch工具可以在限制环境中启动一个特殊的进程同时指定用户特权。如果守护进程启动失败,请检查/var/log/syslog/错误信息。

在限制环境中运行程序之前,该程序必须已经用jk\_cp命令复制到jail中。

jk\_cp - 将文件包括权限信息和库文件复制到jail的工具 

进一步阅读有关其他jailkit命令信息,可以阅读文档,http://olivier.sessink.nl/jailkit/


via: http://www.binarytides.com/install-jailkit-ubuntu-debian/

via: http://www.binarytides.com/setup-jailed-shell-jailkit-ubuntu/

译者:Luoxcat 校对:wxy

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

问题: 我该如何在 Elemetary OS Luna 上安装Oracle Java 7?

回答: 在 Elementary OS Luna 安装 Java 7 的步骤如下: 由于Elementary OS是基于Ubuntu,所以我们允许使用具有多种Java包的WEPUD8 PPA

  1. 打开终端。
  2. 运行以下指令添加Java的PPA到你的软件仓:
$ sudo add-apt-repository ppa:webupd8team/java

You are about to add the following PPA to your system:
Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK6 / JDK7 / JDK8). There are no actual Java files in this PPA. More info: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
Debian installation instructions: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
More info: https://launchpad.net/~webupd8team/+archive/java
Press [ENTER] to continue or ctrl-c to cancel adding it
  1. 按回车继续
gpg: keyring `/tmp/tmpB5WwDG/secring.gpg' created
gpg: keyring `/tmp/tmpB5WwDG/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpB5WwDG/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
  1. 现在更新你的系统
$ sudo apt-get update
  1. 运行以下命令安装Java 7:
$ sudo apt-get install oracle-java7-installer

[sudo] password for enock:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gir1.2-gstreamer-0.10 libilmbase6 libmagickcore4 libmagickwand4 libcdt4
libmagickcore4-extra liblqr-1-0 imagemagick-common libpathplan4 libopenexr6
rsync netpbm libgvc5 libnetpbm10 libgraph4
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
gsfonts-x11 java-common
Suggested packages:
default-jre equivs binfmt-support visualvm ttf-baekmuk ttf-unfonts
ttf-unfonts-core ttf-kochi-gothic ttf-sazanami-gothic ttf-kochi-mincho
ttf-sazanami-mincho ttf-arphic-uming
The following NEW packages will be installed:
gsfonts-x11 java-common oracle-java7-installer
0 upgraded, 3 newly installed, 0 to remove and 196 not upgraded.
Need to get 88.5 kB of archives.
After this operation, 473 kB of additional disk space will be used.
Do you want to continue [Y/n]?
  1. 输入代表Yes的Y以及回车键继续安装。
  2. 在安装过程中,你需要同意条款才能继续。选择OK

  1. 然后选择Yes继续。

  1. 现在请等待安装包的下载与自动安装:

  1. 安装完成。你可以在终端上查看Java版本:
$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

via: http://www.unixmen.com/install-oracle-java-7-elementary-os-luna-via-ppa/

译者:whatever1992 校对:wxy

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