首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux相关>其他unix>正文

在Unix下用命令行中完成所有的工作

http://www.oklinux.cn  2006-10-30  来源: oklinux收集整理   会员收藏  游客收藏  【 】 

    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 字符的密钥(数字、标点符号及其组合)时,情况变得更复杂。反复地输入同一个密码会让人感到讨厌,更糟糕的是,它极大地阻碍了自动化的实现。

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

ftp ftp://joe:[email protected]
                                                                        

    然而,使用这种方法可能会将您的凭据泄漏给共享该计算机的其他用户。(可以尝试使用 ps -Aeww,例如,查看完整的命令行和系统中每个进程的环境。)

    为了提供与命令行相同的简洁性,而又不会带来危险,许多程序可以从一个名为 .netrc(读做 net-r-c)的文件中读取您的凭据,该文件通常位于 ~/.netrc 目录中。您的 .netrc 文件必须仅具有所有者读写模式(即模式 0600 或者 -rw-------),并且该文件中的每个条目都必须遵守下面这种简单的语法格式:

machine ftp.example.com login zaphod password I()Trillian!
machine www.magazine.com login abner password MmG8y*tr
default login anonymous password [email protected]
                                                                        

    前面两行提供了 machine 关键字和该计算机的域名、login 关键字和您在该计算机上的登录名、password 关键字以及紧跟其后的登录密码。最后一行中的凭据为任何没有专门指定的系统提供了缺省值。default 行必须是您的 .netrc 文件中的最后一行。(有关 .netrc 文件完整的配置选项,可以输入 man 5 netrc 以查看 .netrc 的 man 页面。)

    显然,如果文件中包含任何标识数据,那么请确保它仅具有用户读写模式(模式 600)或用户只读模式(模式 400),以防止意外地覆盖或删除该文件。您可能还希望使用模式 700 来保护您的 home 目录。

    现在,每当您启动一个支持 .netrc 的应用程序(包括接下来将要讨论的那些应用程序)时,会自动地将登录名和密码传递给所需的服务,而无需通过键盘进行输入。通常,您可以使用 -n 选项禁用这种自动登录 特性。

传递的过程

    除了用于浏览 Web 页面的 HTTP 和基于 SSL 的 HTTP (HTTPS) 外,FTP 是最常用的 Internet 应用程序协议之一。通过 FTP,客户端可以连接到服务器、获取目录和文件的列表、下载文件(即,从服务器请求一个文件)或上传文件(即,向服务器发送一个文件,以进行持久保存)。ftp://ftp.example.com/path/to/anotherfile.zip 和 ftp://user:[email protected]/path/to/file.zip URL 格式表示,使用 FTP 协议连接到 ftp.example.com 并下载 /path/to/anotherfile.zip 文件。后面的这个 URL 简单地为登录添加了相应的凭据。

    在大多数桌面计算机中,这两种 URL 将启动浏览器或缺省的 FTP 应用程序来下载指定的文件。然而,在 wget 命令行实用工具中也可以使用相同的 URL,它是一种用于通过 HTTP、HTTPS 和 FTP 进行文件下载的健壮的实用工具。它支持 .netrc 文件,并且无需进行交互,对于实现自动化来说,使用它非常合适。如果您的系统中没有 wget,您可以从 GNU Software Foundation 下载其源代码。它包含几个简单的命令,适用于所有的 UNIX 变种,您可以将这个实用工具放到您个人的 bin 目录或者某个中央目录。

    假设已经有了 .netrc 文件,让我们来研究一些示例,看看 wget 究竟可以完成哪些工作。(在下面的示例中,提供了相应的行号以供参考,您不需要输入这些数值。)清单 1 显示了如何在命令行中轻松地使用 wget 来下载文件。

 

[1] [2] [3] [4] 下一页  

共7页: 上一页 1 [2] [3] [4] [5] [6] [7] 下一页

上一篇:NFSv4 提供无缝的网络访问   下一篇:使用 m17n 实现各国语言间代码移植


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·NFSv4 提供无缝的网络访问
·使用 m17n 实现各国语言间代码移植
·借助 UNIX 成为更优秀的博客
·UNIX 派生系统:NetBSD 入门
·simp server for unix 配置教程
·简析Linux与FreeBSD的syscall
·Solaris 10实现安全Kerberos身份验证
·Informix-Online 7.30的安装及管理
·将Unix应用程序移植到Linux系统详解
·使用 UNIX 进行文本处理
·深度探索 OpenBSD操作系统
·嵌入式开发:手机中Linux操作系统扫盲
·嵌入式Linux: uClinux操作系统移植
·UNIX/Linux编程相关工具和资源
·基于Unix系统Web服务器安全指南
·让 UNIX 和 Linux 一起工作
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Unix Shell程序编写的方法详解
·高手进阶:UNIX系统环境下高级编程一例
·freebsd目录架构
·Unix/Linux中Cron的用法
·Unix主流操作系统
·Unix环境高级编程一例
·Linux的NAPI和Solaris的GLDv3
·redbook 上的LVM
·HP 下db2定时备份脚本
·SUID和SGID的详细解
·NT和UNIX下FTP非交互方式文件传输
·Solaris系统性能监控之一:处理器监控
  阅读排行
·Solaris 10实现安全Kerberos身份验证
·更改CDE GUI的分辨率和刷新率
·简析Linux与FreeBSD的syscall
·Unix Shell程序编写的方法详解
·solaris下,添加静态路由的方法
·NFSv4 提供无缝的网络访问
·HP-UX Glance的用法
·使用 m17n 实现各国语言间代码移植
·Informix-Online 7.30的安装及管理
·借助 UNIX 成为更优秀的博客
·深度探索 OpenBSD操作系统
·Gentoo 2005.1 完整的USE参数清单中文
·dos2unix, unix2dos 对应的命令
·新手入门:debian的一句话问答
·使用 UNIX 进行文本处理
网摘收藏: