电脑技术学习

对话 UNIX,第 3 部分: 在命令行中完成所有的工作

dn001

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

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

ftp ftp://joe:passwd@www.example.com

  然而,使用这种方法可能会将您的凭据泄漏给共享该计算机的其他用户。(可以尝试使用 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 zaphod@heartofgold.com

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

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

标签: