Unix工作站
1753682 成员
5609 在线
108799 解答
新建帖子

分享我的技巧 : 在Unix下用命令行中完成所有的工作

 
nblhyl
首席顾问

分享我的技巧 : 在Unix下用命令行中完成所有的工作

UNIX® 命令行是一种WYTIWYG(即所输即所得)的接口。UNIX 提供了大量的命令,使用这些命令,您可以对内核和用户空间中各种可用的资源进行操作。您需要对 CPU 的使用情况进行监视吗?可以尝试使用 top 或 ps。您需要删除所有以 .bak 结尾的文件吗?可以尝试使用 rm *.bak。您需要获得关于一个新的命令的帮助吗?可以运行 man。

但是,当您所需要的资源位于广域网 (WAN) 和全球 Internet 中的远程系统时,那又应该如何处理呢?这里引用 The Hitchhiker's Guide to the Galaxy 中的一句话,“您不必惊慌失措”。通过 UNIX 命令行可以很容易地下载和上传文件、连接到远程计算机并询问遥远的服务器和网络的状态。请做好准备:让我们开始一次“太阳系外”的奇妙旅行。



在本地进行工作,将信息传输到全球



在本系列的第 1 部分和第 2 部分中,您了解了使用 UNIX 命令行可以完成各种各样的工作。只需要输入相应的内容,包括管道 (|) 或重定向,您就可以创建即兴的数据处理器,从而实现比将其中的这些部分简单地加在一起更强大的功能。



尽管日常使用的某些资源很可能位于本地,即位于您的工作站中,但是相当数量的、并且越来越多的资产(如文件、电子邮件消息和工具)可能存储在远程系统中,即位于连接到您的 WAN 或者 Internet 的计算机中。Web 浏览器提供了对这些资源的通用访问方式,但是有一点需要注意:指向-点击很快会变得令人厌倦,甚至很麻烦,特别是当您必须对大量的条目进行检索时。而且,如果您希望使用脚本 来完成重复性的或容易出错的任务时(从本质上说,是进行捕获和重放),窗口浏览器并不是一种好的工具。



与 ls、cp、mail、uptime、du manage 和 query local resources 一样,UNIX 还提供了一套用于访问远程资源的命令行工具。本文将向您介绍其中的一些工具,包括一个有用的技巧,它可以简化对远程系统的访问并保护您的身份验证凭据。具体来说,您将了解 wget、curl 和安全 Shell (ssh)。wget 和 curl 工具可以用来传输文件,而使用 ssh,您可以安全地登录到远程系统中,快速地和轻松地传输文件。



Telnet(和其他工具)存在的问题



如果您的系统中运行了 rsh(或者其变种——rcp、rexec、rlogin 或 Irdist)或 telnet,那么请立即禁用并删除这些命令以及相关的守护进程。另外,如果您不允许使用匿名文件传输协议 (FTP),请同时禁用 FTP 软件。



rsh 和 FTP 的漏洞



有关 rsh 和 FTP 中可能存在的漏洞的更详细的信息和说明,请参阅“Security Vulnerability between FTP and Berkeley Rsh/Rlogin Protocols”和“Stupid, Stupid Protocols:Telnet, FTP, rsh/rcp/rlogin”。





尽管 rsh 和 telnet 在 UNIX 中使用了很长的时间,但是攻击者可以轻松地利用这两种实用工具的其中之一来危害您的系统。当发现该软件正在运行时,您或您的系统管理员应该停止并删除它,并使用 ssh 来代替这些包。



对于特权 FTP 访问,可以使用 sftp。将 rdist 替换为更高级的 rsync。或者,如果您必须提供匿名 FTP(或通过 HTTP 进行下载),请确保使用防火墙硬件和软件将所有可以公开访问的计算机与敏感的内部服务器隔离。



但是首先,让我们来讨论一下密码所带来的讨厌的问题。



“您不需要讨厌的密码!”



通常,对大多数计算机和服务的访问都受到保护。在有些情况下,进行身份验证(从而获得访问该系统的权限)可能需要复杂的质询-响应交换、安全套接字层 (SSL) 证书、甚至生物测定扫描。然而在一般情况下,通过密码就可以获得访问权限。与您的个人识别号码 (PIN) 相同,您的密码也是保密的,如果您选择了合适的密码,那么其他的人将很难猜到它。将您的用户名和强密码组合在一起,这样可以提供足够的安全性加强。



当然,强密码可能难以记住,并且当您需要收集和记住另一个 8 字符的密钥(数字、标点符号及其组合)时,情况变得更复杂。反复地输入同一个密码会让人感到讨厌,更糟糕的是,它极大地阻碍了自动化的实现。



正因为认识到这些阻碍的存在,所以许多命令行实用工具都允许您将用户名和密码作为命令行参数。例如,您可以使用下面的命令登录到一个