【51CTO独家特稿】安全对于linux/unix生产服务器而言是至关重要的,也是每一个系统管理员的基本功课。本文是《明明白白你的Linux服务器》系列的第四篇,下面所列的一切是关于Linux服务器的基本设置,力求用最简单的语言来说明Linux服务器的基础安全设置,尤其适用于新手;如果对Linux服务器的安全有更高要求,建议配合硬件防火墙来进行操作。

一、Linux服务器的硬件防护

我在项目实施中和自己的网站架设中,发现防DDOS***及SQL注入、跨站脚本、蠕虫、***扫描和***等***效果不错的方案有:

①华赛三层防火墙+天泰web防火墙;

②Juniper系列防火墙;

如果你的Linux或FreeBSD前端无任何硬件防护,一下要记得开启iptables或ipfw防火墙。虽然它们不能防DDOS***,但在安全防护上或多或少的有所作用;如果是windows2003服务器,建议开启它自带的系统防火墙,并禁ping。

建议采用64位的Linux操作系统,如CentOS 5.4;如果是UNIX,建议采用FreeBSD 8.0(也采用64位的)。多关注下服务器的内核漏洞,现在linux很多***都是针对内核的,保证内核版本为2.6.9以上。

二、远程连接你的Linux服务器

对于远程连接,建议只允许在内网进行ssh操作,而拒绝外网控制,这样做是比较安全的(此步操作可能要配合公司的网络工程师来操作)。

如果非要从外网进行ssh操作,建议正确配置x-shell、Putty等远程连接工具的公钥和私钥。root密码我一般设置为28位以上,建议用字母+数字的组合,如p@sSw0rdyuhongchun027nagios,而且某些重要的服务器必须只有几个人知道root密码,这个根据公司权限来设置,如果有公司的系统管理员离职,root密码一定要更改;玩linux久了的人都应该知道,更改root密码不会影响linux的crontab计划任务(这个在windows2003就不一样了,如果随意更改administrator密码,会直接影响其计划任务运行)。

三、Linux服务器如何防ssh暴力破解

我的Nagios外网监控服务器,刚开始测试时取的密码是redhat,放进公网一天就被人改了,郁闷死了;后来环境部署成熟以后发现仍然有不少外网ip在扫描和试探,看来不用点工具不行啊;呵呵,我尝试使用大家都推荐使用的DenyHosts,它是用Python2.3写的一个程序,它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。DenyHosts官方网站为:http://denyhosts.sourceforge.net

①检查安装条件

1、首先判断系统安装的sshd是否支持tcp_wrappers(默认都支持)

# ldd /usr/sbin/sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)

2、判断默认安装的Python版本

# python -V
Python 2.3.4

3、已安装Python2.3以上版本的情况可以直接安装DenyHosts

# cd /usr/local/src
# wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
# tar zxf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install 

程序脚本自动安装到/usr/share/denyhosts

库文件自动安装到/usr/lib/python2.3/site-packages/DenyHosts

denyhosts.py自动安装到/usr/bin

②设置启动脚本

# cd /usr/share/denyhosts/
# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
# grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
# vi denyhosts.cfg

根据自己需要进行相应的修改

denyhosts.cfg

SECURE_LOG = /var/log/secure
#RedHat/Fedora Core分析该日志文件
#其它版本linux根据denyhosts.cfg-dist内提示选择。
PURGE_DENY = 30m
#过多久后清除
DENY_THRESHOLD_INVALID = 1
#允许无效用户(/etc/passwd未列出)登录失败的次数
DENY_THRESHOLD_VALID = 5
#允许有效(普通)用户登录失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登录失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解

如果需要DenyHosts随系统重启而自动启动,还需做如下设置:

# vi /etc/rc.local

加入下面这条命令

/usr/share/denyhosts/daemon-control start

③启动

# /usr/share/denyhosts/daemon-control start

如果要使DenyHosts每次重起后自动启动还需做如下设置:

# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 345 denyhosts on

然后就可以启动了:

service denyhosts start

DenyHosts配置文件:

vi /etc/denyhosts.cfg
SECURE_LOG = /var/log/secure #ssh日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = 5m#过多久后清除已经禁止的
BLOCK_SERVICE   = sshd#禁止的服务名
DENY_THRESHOLD_INVALID = 1#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO#是否做域名反解
DAEMON_LOG = /var/log/denyhosts#自己的日志文件
ADMIN_EMAIL = yuhongchun027@163.com#管理员邮件地址,它会给管理员发邮件

下面这个是全自动下载安装的小脚本(推荐),当然安装后还得手动调整配置文件。install_denyhosts.sh脚本内容如下:

#!/bin/bash
cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar zxf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
echo "/usr/share/denyhosts/daemon-control start" >>/etc/rc.local
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts
chkconfig --level 345 denyhosts on
service denyhosts start

下面是hostsdeny的示例:

Connection to 192.168.0.154 closed.
[root@autolemp ~]# ssh 192.168.0.154
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied (publickey,gssapi-with-mic,password)

出现最后这行表示生效。

===========================================================

运维人员应该时刻谨记的十条安全法则(1)

【51CTO独家特稿】网站安全问题可以说是现在最引人关注的问题,有关服务器安全、用户隐私安全、企业数据安全的文章和争论从来没有停息过。系统管理员作为网站安全的第一道哨岗,既要确保网站服务器系统的安全,也要考虑到网站应用的一些基本安全防护。

在之前《明明白白你的Linux服务器——安全篇》中,抚琴煮酒列举了一些Linux/Unix服务器系统最基本的一些安全防护措施,这篇总结对于服务器端的安全防护思路介绍的相当详细。但是要保护网站的安全运作,仅仅针对服务器系统本身的防护是不够的,还需要有一个更全局的视角和防范思路。本文中介绍的十条措施虽然涉及到用户身份验证、数据加密传输、子网划分、灾难备份等多个方面的内容,但所有这些其实都是维护网站安全最低限度需要做到的事情。文章并没有深入的介绍每一个方面应如何实施,主要是给大家提供思路,为广大运维人员提供参考。

作者简介:李洋,博士毕业于中科院计算所。10多年来一直从事计算机网络信息安全研发工作,曾主持和参与多项国家重点项目以及信息安全系统和企业信息安全系统的研发工作。具有Linux系统应用、管理、安全及内核的研发经验,擅长网络安全技术、协议分析、Linux系统安全技术、Linux系统及网络管理、Linux内核开发等。

网站前端防护

措施1:网站用户的身份认证

一般可以采用用户名+密码验证,确认用户登录身份,并根据数据库中预设的权限,向用户展示相应的界面。

对于重要的网站应用,需要根据PKI机制,验证用户提供的证书,从而对用户身份认证(服务器对客户端认证),并确保交易的不可抵赖性。证书的提供可以采用两种方式:文件证书或是USB设备存储的证书。文件证书保存在用户磁盘和文件系统上,有一定的安全风险,但是可以免费;USB证书安全性高,但是一般需要向用户收费。

有关身份认证的具体操作,编辑推荐读者们关注51CTO安全频道的身份认证技术专题

措施2:网站数据的加密传输

对于使用Web浏览器的网上系统应用,采用SSL+数字证书结合的方式(即HTTPS协议),保证通信数据的加密传输,同时也保证了用户端对服务器端的认证,避免用户被冒充合法网站的“钓鱼网站”欺骗,从而泄露机密信息(用户名和密码等),造成不可挽回的经济损失。

如何建立SSL(HTTPS)网站?鸟哥的私房菜里面有一章进行了简单的介绍

措施3:用户账号使用行为的日志记录及其审计

系统服务器侧应根据账号,对用户的使用行为进行详细的日志记录和审计,通过上述因素的日志记录,进行阶段性的审计(时间间隔应该比较小),从而做到发现用户账号的盗用、恶意使用等问题,尽早进行处理。

措施4:恶意用户流量的检测、过滤及阻断

系统服务器侧应部署IDS***检测系统、IPS***防护系统、防火墙等设备,或者部署目前高效、流行的UTM(统一威胁管理)设备,对恶意用户采用的各种***手段进行检测和防护,重点过滤恶意流量、突发流量等。

相关阅读:

  1. 51CTO安全频道的IDS***检测专题
  2. ***防护系统(IPS)初探
  3. 了解统一威胁管理(UTM)技术

措施5:对非正常应用请求的过滤和处理

系统的服务器端,尤其是数据库服务器端,应该通过配置和增加对用户非常长应用请求的过滤和处理模块,以避免由于数据库的自身漏洞未及时打上补丁而遭受目前流行的SQL注入***等。

网站服务器侧

措施6:合理的子网划分及流量分割

系统服务器侧包括大量的服务器类型,包括数据库服务器、Web服务器、FTP服务器、邮件服务器等,为了避免由于恶意流量造成的某种服务器崩溃,而引起的***后果扩散,并最终导致其他服务器也发生“雪崩效应”,则需要通过子网隔离(比如VLAN划分)、DMZ区域的设定等方式来将这些服务器放置在不同的安全域当中,做到流量和数据的安全隔离,从而将服务器端在遭受***后对整个业务系统及其他内网资源和数据造成的影响尽量控制在最低的范围内。

参考阅读:VLAN的划分方法

措施7:负载均衡及负载保护机制

系统面临着巨大的服务量,服务器端的设备基本上都需要有多台服务器进行业务分担,这样才能提高性能,避免处理瓶颈的出现,因此,需要采用合理的负载均衡和负载保护机制:

◆对各服务器的业务流量进行有效地分担,可按照Round Robin、LRU等方式来进行负载均衡

◆负载保护机制需要实时地对每台服务器的CPU资源、内存资源等进行评估,如果一旦超过设定的阈值(80%或者以上),将马上进行过载保护,从而保证服务器自身的安全

负载均衡相关推荐阅读:

  1. 负载均衡技术全攻略
  2. 揭秘企业级web负载均衡完美架构(图)
  3. 负载均衡实例:如何解放昼夜不眠的网管?

措施8:灾难备份及恢复

任何系统都不能说100%的安全,都需要考虑在遭受***或者是经受自然灾害后的备份恢复工作,需要着重考虑如下几点:

  1. 选择合适的备份策略,做好提前备份,包括全备份、差分备份、增量备份等等
  2. 选择合适的备份介质,包括磁带、光盘、RAID磁盘阵列等
  3. 选择合适的备份地点,包括本地备份、远程备份等等
  4. 选择合适的备份技术,包括NAS、SAN、DAS等等
  5. 作好备份的后期维护和安全审计跟踪

Linux系统的备份手段和工具可以参考51CTO系统频道的Linux 系统备份——操作实践与工具介绍专题。更多有关灾难备份和恢复的信息可以在51CTO的存储子站WatchStor.com获取。

措施9:管理规范化

系统功能复杂,业务数据敏感,保密级别比较高,并且对不同管理人员的权限、角色要求都不尽相同,为了保证安全管理,避免内部管理中出现安全问题,建议作如下要求:

  1. 严格划分管理人员的角色及其对应的权限,避免一权独揽,引起安全隐患;
  2. 作好服务器机房的物理条件管理,避免电子泄露、避免由于静电等引起的故障;
  3. 应作好服务器管理员的帐号/口令管理,要求使用强口令,避免内部人员盗用;
  4. 作好服务器的端口最小化管理,避免内部人员扫描得出服务器的不必要的开放端口及其漏洞,实行内部***;
  5. 作好服务器系统软件、应用软件的日志管理和补丁管理工作,便于审计和避免由于安全漏洞而遭受到内部人员的***;
  6. 根据业务和数据的机密等级需求,严格划分服务器的安全域,避免信息泄露。

措施10:网站漏洞自我挖掘及防护

采用漏洞扫描和挖掘设备,对内网各服务器进行阶段性的扫描,并根据扫描所得的风险和漏洞进行及时地修补,以实现该漏洞为***使用之前进行自行修复的目的。

这方面的工具服务很多,比如五大著名的免费SQL注入漏洞扫描工具十大Web服务器漏洞扫描程序等等。

==========================================

系统管理员应该定期完成的九件事

51CTO精选译文】今天,Linux的发行版非常地容易安装也非常容易入门。就算是一个缺乏经验的系统管理员,建立必须的服务并完成可运行的程序通常也可以在几小时内完成。

很不幸,容易入门反而掩盖了需要做的维护工作,这些工作是保持系统稳定和使系统长期处于一个良好的工作次序中所必需的。一个单一的服务器通常可以在没有人工干预的情况下运行很长时间。但是前提是所有其他的位和块必需被提前配置。

关于这个列表,最糟糕的事情是你可能已经几个月或几年没有做这些事情了。你忽略这些事情中的任何一件,它们都会在最糟糕的时候回来作祟:比如流量高峰期,硬盘驱动器崩溃,或******的时候。Linux系统管理员每天都应该做一些什么工作?我们这就为您来总结一下。

系统管理员应该定期完成的九件事——配置管理

我用配置管理来开始,是因为它和这个列表中的其余项有很大的不同。这一项对单一的服务器并不重要,但是如果你有许多系统,这一项就至关重要了。PuppetChef这样的配置管理工具允许你编写‘recipes’来定义服务器应该如何的被放置在一起。那些‘recipes’可以在每个服务器上运行产生一个一致的、容易复制的安装程序。这可以让你立即启动一个系统的新拷贝,可以给你的安装提供极大的自由度。

配置管理是做了,但是,却给服务器安装程序添加了一定的初始化复杂性,所以如果你胆子小,不用也罢。不过,即使只有两个或三个服务器,好处也是相当巨大的。

系统管理员应该定期完成的九件事——备份

这一项是显而易见的,大多数的系统管理员都会在这方面做点工作的。如果你没有一个可靠的备份策略,你现在需要马上调整它。哪怕只等一天,后果很可能就是是灾难性的。同时请确保你正确的做了备份,因为备份很容易做错。Mozy,Carbonite,Backblaze等工具的At-home备份已经取得了很大的进展,但是类似的Linux解决方案还远没有成熟。Rsync ,tar,和类似的脚本工具一直很受欢迎,并且也是可行的替代方案,但是必须要小心,以适应像MySQL数据库那样的特殊情况。每个人的备份需求是不同的,所以无论你选择什么解决方案也要仔细研究它潜在的不足。你选择的解决方案应该:

◆定期运行

◆保持多轮的备份

◆自动的删除旧的备份

◆在你的现在的操作系统以外存储备份

◆保持和你的原始数据一样的安全性

◆合并所有的关键数据,关键的配置文件(更换服务器以后启动和运行系统可能会需要的任何东西),和最近的日志

系统管理员应该定期完成的九件事——测试你的备份

紧跟着备份计划的是测试它。这意味着定期检查备份是否一直在做,产生的文件是否是有效的并且是否没有被损坏,以及他们是否包括你需要的所有数据。一个好的经验法则是如果你的备份每30天一轮换,那么你应该经常的重新检查他们。这里自动化工具可以帮一些忙(自动地检查备份文件是否是最新的,是否是合理的大小并且是否有效)。尽管如此,没有任何东西可以替代人的眼睛……否则,当你发现你并没有备份那些你认为你已经备份的数据时,就只有哭的份了。

51CTO推荐专题:Linux 系统备份——操作实践与工具介绍

系统管理员应该定期完成的九件事——日志轮换

在最近几年,Ubuntu,RedHat和其他主要的发行版针对他们提供的软件包的logrotate的运行和配置有了很大的改善。所以你的apache和mysql日志也可以被合适的轮换(默认设置是相当合理的,虽然可能并不是你希望的方式)。但是你添加的“额外”的东西,例如Rails应用程序,需要建立它自己的logrotate条目。缺少这个步骤会在最不合适的时刻引发无数的“硬盘驱动器已满”的服务器错误。当然,通常你甚至不知道你的日志引发了这个问题。针对这种情况,资源监视才是关键。

51CTO推荐阅读:明明白白你的Linux服务器——日志篇

系统管理员应该定期完成的九件事——资源监视

跟踪CPU,内存的使用情况,硬盘空间,带宽,等可以让你更好的洞察你的系统状态。当流量增加的时候,你可以比较你的增加的内存或IO使用情况,来提前规划你的“scaling”。RRDTool/MuninServerDensityCloudkick是观察这些随着时间的推移而变化的数据的很好的选择。如果你选择的工具包括对意外的变化(失控的进程,驱动器已满等)的警报功能,你将会领先任何潜在的问题一步。

系统管理员应该定期完成的九件事——进程监视

对你的网站来说,让你的Apache,MySQL和类似的进程一直处于运行状态至关重要。有几个很好的工具,例如MonitGod,可以帮助你确保你的进程一直处于运行状态。通过检查进程的响应性,打开的端口,或进程id那些工具可以重新启动一个已死的服务或在一个失控的进程使你的整个系统崩溃前终止它。配置这件事的规则是个老大难问题,但是当一切都做好的时候,可以节省大量的凌晨3点钟的宕机时间。

51CTO推荐专题:Linux监控工具的展览馆

系统管理员应该定期完成的九件事——安全加固(Hardening)

Hardening包含了许多不同的操作,这些操作可以使你的stock系统更安全。许多简单的操作经常会被遗漏。你真的知道那些正在运行的进程中的每一个都做了什么吗?在你的系统上,哪些额外的端口和服务被打开了?有合适的PAM模块载入来进行安全认证吗?又一次,RedHat和Ubuntu走在了时代的前列,他们提供了安全stock系统,并确保最常见的软件包遵守正确的安全协议。但是,这并不意味着你可以跳过这个步骤。

系统管理员应该定期完成的九件事——安全更新

在一个基于apt或RPM的系统上,安全更新是很容易执行的。这个过程的陷阱是很难知道升级包是否会在你的栈里引发某些类型的错误。为了确切知道升级包将对你的系统产生怎样的影响,拥有一台同样配置的模拟服务器是唯一的好办法。幸运的是,由安全更新引发的麻烦是十分罕见的。修复一个更新的兼容性问题,需要花费一些停机时间,这个风险要比你的系统上的一个已知安全漏洞被利用的风险小很多。所以,不要让“not knowing”阻止你进行正确的升级。最后,不是每一个安全漏洞都能马上获得一个安装补丁。查看CVE字典上的可用警报,可以让你在补丁可用前,在保持你的系统安全性方面争取主动。为了确保一切都平滑的运行并保持最新,在这方面真的没有什么可以代替人的肉眼。

系统管理员应该定期完成的九件事——日志监视/安全扫描/***检测

这个列表中的所有项都是最低限度需要完成的。它们很容易被忘记,直到你的系统已经被***为止,你可能都不会想起它们。对异常活动,******和其他恶意行为的持续扫描,对于帮助阻止或减轻***来说,是十分重要的。

51CTO推荐阅读:曹江华访谈实录:Linux服务器安全策略详解

总结

这当然不是一个完整的列表,但是它也是十分广泛的,许多开发者和系统管理员只是没有时间、兴趣或知识来处理它们。更糟糕的是,许多开发项目被移交给了客户,而一旦技术团队迁移到另一个项目上,这些客户就没有能处理这些事情的职员了。

原文:http://www.roundhousesupport.com/blog/9-things-you-should-be-doing-with-your-server-but-probably-arent

===============================================

系统管理员必须熟记的几个Linux命令

Linux 中的所有管理任务都可以在终端中完成。许多情况下,使用终端比使用图形化的程序更快捷,而且还可能实现额外的功能。不仅如此,所有的终端任务都可以写到脚本中,这样就可以自动执行。为了真正地驾驭您的 Linux 环境,您将希望掌握如何在终端中工作。如果您曾经使用过 DOS/Windows,本文将引导您开始使用 Linux 终端。

进入终端

如果您的系统引导进入文本模式(为了降低服务开销,服务器通常是这样配置的),那么您在以文本形式登录后就已经在终端中了。在典型的 Linux 系统中,通过组合键 Ctrl + Alt + (F1 - F6) 您可以切换到另外的终端。每一个终端是系统中一个完全独立的会话,不同的用户可以同时使用。

这一多终端的特点与 Windows 中的多桌面不同。在 Linux 中,每一个终端可以分别由完全不同的用户来控制。例如,您可能在终端 1 中以 root身份登录,而在终端 2 中以 joeuser 身份登录。两个终端在各自的用户空间中运行不同的程序。与此类似,不同的用户可以远程登录到同一个 Windows 系统中。就这一点来说,Linux 更像是主机而不是简单的服务器或工作站。

如果您是在图形模式下,那么您可以打开一个 虚拟终端 (terminal)以进入终端窗口。通常在桌面的任务条上会有终端的按钮。您也可以从上下文菜单(在桌面上单击右键)打开终端 。

命令

在终端中可以使用的命令很多。其中有一些实际上只在编写脚本时才会用到。这里介绍一些您最可能用到的命令。不要忘记,所有的命令和选项都区分大小写。 -R 与 -r不同,会去执行不同的操作。终端命令几乎全都是小写的。

◆cd

使用我们所熟悉的 cd 命令可以在目录间切换。一定注意的是在 Linux 中用的是正斜杠 (/),而不是您所熟悉的反斜杠 (\)。反斜杠也用到了,但只是用来说明命令需要换行继续,这样可以提高比较长的命令的可读性。

◆ls

ls 命令用于列出一个目录下的所有文件。可以使用许多不同的开关更改列表的表示形式:

ls -l 以长格式列出文件,包括文件大小、日期和时间、属性

ls -t 对文件以时间排序

ls -S 对文件以大小排序

ls -r 与一个排序开关组合起来使用,逆序排列。

ls -t 将最新的文件显示在列表的顶部。

ls -t 将最新的文件显示在底部。

ls -h 易读格式。使用 k、M、G 等来标识文件的大小,而不是以字节为单位。

ls -a 显示目录中所有的文件,包括隐藏文件

◆cp

使用 cp 命令来复制文件。这个命令与 DOS 下的 copy 命令基本一样。基本的开关如下:

cp -R 递归地复制文件;当需要复制整个目录时会用到

cp -f 强制复制并覆盖已有的文件,不询问用户

cp -l 链接文件,而不是复制;见下面的说明

◆mv

使用 mv 命令来移动和重命名文件。这个命令的工作方式基本上与 DOS 中的 move 命令一样,不过它可以移动整个目录结构及所有文件。

◆cat

使用 cat 命令来查看文件的内容。它相当于 DOS 中的 type 命令。它将把文件的内容转储到另一个文件、屏幕或者其他命令。 cat 是concatenate 的简写,还可以将一系列的文件合并为一个大文件。

◆more

使用命令 more 可以以分页的方式查看文件。它基本上与 DOS 中的 more 命令相同。

◆less

less 命令也是用来查看文件,但是它支持上下滚屏以及在文档中进行文本搜索。

◆vi

有一些人可能会说 vi 表示“virtually impossible”。它是 Unix 中的一个历史悠久的文本编辑器。 vi 并不真正直观,但是现在几乎所有的类 Unix 环境中都有 vi 。对于 Linux 中安装的版本有一个内置的教程,一旦您熟悉了 vi ,只需几次击键就可以完成不可思议的任务。说实话,没有任何编辑器能够取代 vi 来编辑密码和配置文件。

◆man

使用 man 命令来查看命令的文档。man 是 manual 的缩写。几乎每一个命令都有相应的文档。要深入了解 man ,请输入以下命令:

man man

◆info

info 命令与 man 命令类似,不过它提供了超链接文本,可以更方便地浏览文档。

链接

Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。不过,在 Linux 中,链接可以如同原始文件一样来对待。链接可以与普通的文件一样被执行、编辑和访问。对系统中的其他应用程序而言,链接就是它所对应的原始文件。当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。链接不是副本。有两种类型的链接:硬链接和符号链接(软链接)。

硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。

符号链接(软链接)是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了。它们会指向文件系统中并不存在的一个位置。

两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建符号链接。

================================================================

Linux命令中最cool的十大成员

我们在使用有相关Linux命令的时候就会发现很多有意思的事情,在广大用户长期的使用中总结出不少有关Linux命令的使用精华。那么我们就首先来看看大家总结出来的十大经典命令。

1.sudo !!

以 root 帐户执行上一条命令。

2.python -m SimpleHTTPServer

利用 Python 搭建一个简单的 Web 服务器。

3.:w !sudo tee %

在 Vim 中无需权限保存编辑的文件。

4.cd -

更改到上一次访问的目录。

5.^foo^bar

将上一条命令中的 foo 替换为 bar,并执行。

6.cp filename{,.bak}

快速备份或复制文件。

7.mtr google.com

traceroute + ping。

8.!whatever:p

搜索命令历史,但不执行。

9.$ssh-copy-id user@host

将 ssh keys 复制到 user@host 以启用无密码 SSH 登录。

10.ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg

把 Linux 桌面录制为视频。

===========================================