<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[如何避免 Unix 环境中的 rm -f 灾难]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Tue, 09 Dec 2008 08:10:02 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	在 ITPub 论坛上，最近有朋友发起了一个"请列出你在从事DBA生涯中,最难以忘怀的一次误操作"话题讨论，如果有足够的耐心看下去的话，会发现很多误操作都是类似的，最上镜的就是这个操作系统级别的 "rm -f" / "rm -rf" 了。<br/><br/>在那本著名的 Unix 痛恨者手册 上，rm 问题也作为一个罪状而提出。的确，Unix/Linux 的这个 rm 的 -f 参数是系统管理员（SA)乃至数据库管理员(DBA)最容易引发系统灾难的导火索。<br/><br/>如何避免这样的灾难发生呢?<br/><br/>如果一个人能不犯任何误操作就好了。但这是不可能的。我相信肯定有很多 DBA 或 SA 到现在也没烦过这样的错误，但不要忘了墨菲定律的诅咒。<br/><br/>1.有安全的 rm 命令麽?<br/>一种比较理想的是如果编译源代码的时候把这个 -f 选项去掉，肯定能让不少人少犯错误。不过搜索了整个网络，好像还真没有具体如何操作的。Sun 的 Solaris 10 对 rm 作了一点改进处理，"rm -rf /" 是不允许的。可惜的是 "rm -rf *"类似的操作是没限制的。另外，对于其他系统也不可用。或许，将来 GNU/Linux 能有改进。<br/><br/>2.Alias 方式<br/>第二个方式是在 Profile 层次上设置命令别名( alias ).<br/><br/>alias rm="rm -i"<br/>这也是最常用的方式。如果脚本上直接调用了 rm 命令的全路径，还是不管用的。这其实也是如果功能上没办法完全禁止，那就提高用户的使用成本 :)<br/><br/>3.替代命令<br/>第三个方法是使用替代命令。如用一个 del 命令来替代 rm. 这个就要挑战用户的使用习惯了。真的会始终用替代命令麽? 这个方式需要注意的是，无论如何不要真的把 rm 命令挪走(比如物理的 rename 名字)，如果这样，是很糟糕的策略。<br/><br/>4.修改权限<br/>也有不少人直接把 rm 的权限修改，比如只允许 root 用户而不允许普通用户执行命令。这在调用一些脚本或者编译文件的时候，很容易引来很多麻烦。<br/><br/>任何一种策略，如果要扩大应用到一个团队的话，还需要考虑使用习惯对其他成员带来的影响。毕竟，"不爽"也会让很多人更容易犯错。<br/><br/>最后，友情提示，有的人经常通过层层跳板 Login 到主机上，可能会因为忘记了"身在何处" 而犯错误，最管用的方式是设置一下 PS1 环境变量。比如我在 Dreamhost 上用这样的：<br/><br/>PS1="&#92;n&#92;e[1;37m[&#92;e[m&#92;e[1;32m&#92;u&#92;e[m&#92;e[1;33m@&#92;e[m&#92;e[1;35m&#92;h&#92;e[m &#92;e[4m&#92;`pwd&#92;`&#92;e[m&#92;e[1;37m]&#92;e[m&#92;e[1;36m&#92;n&#92;e[m&#92;&#92;$ "--EOF--
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 如何避免 Unix 环境中的 rm -f 灾难]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>