为什么犯错让我成为一个更好的系统管理员
错误

> 
> 诀窍就是同一个错误不要犯两次。
> 
> 
> 


![](/data/attachment/album/202008/16/001203jeyztczb8t6q8egc.jpg)


到目前为止，我已做了十多年 [Fedora](http://getfedora.org) 贡献者。 Fedora 有一个由开发者和用户组成的大型社区，其中每一个人，不管是极富洞察力的用户还是出色的程序员，都有一些独有的技能。我喜欢这样的社区，因为它能激励我培养自己的新技能。


对我来说，培养技能最好的方法就是犯错，比如把事情搞得一团糟。犯什么样的错误不重要，因为相比错误本身，我在脱离困境的过程里学习到了什么更重要。


### 为什么犯错误是好事


我依然记得我犯的第一个计算机错误。我家的第一台电脑是我叔叔升职后送个我们的爱普生笔记本电脑，它有一个特别快的 10 MHz 处理器，因为太重了，所以还有一个手提把手。我很喜欢它。


它运行 DOS，但有一个基于文本的菜单应用，所以对新手用户比较友好。硬盘菜单有十个“页面”，每个“页面”可以配置十个命令。我们有一个游戏页面，还有一个页面放些“无聊的东西”，比如文字处理程序和电子表格等等。


硬盘菜单还有一些其他功能，当我玩腻了游戏，就会去探索它们。有一天，我决定使用菜单的账户功能。账户不会改变出现的应用程序，但在某种程度上，可以防止对应用程序未经授权的访问。你可以直接跳到 DOS 中取代它，但使用账户仍然是一个不错的尝试。


我为自己、父母和妹妹创建了账户。虽然我父母有点不开心，但他们最终迁就了我。万事顺遂了一段时间后，妹妹忘记了她的账户密码。于是，我父母让我删掉她的密码，但是没有妹妹的密码去登录账户，我就无法删除她的密码（那是在 90 年代初，一个比现在简单得多的时代）。要怎么办？要怎么办？


那以后一段时间，我们一直试着猜测密码，直到有一天，我决定尝试做一些我还没有做过的事情。当我第一次创建帐户时，我设置了一个主密码。如果我输入主密码来代替我妹妹的密码，会发生什么呢？


如果你在想，“这当然不会有用的”，那么显然你不熟悉 90 年代安全策略的天真幼稚。有了主密码（顺便说一下，主密码是 “worf” ，指的是企业号星舰的克林贡人安全主管，如果你不是《星际迷航：下一代》粉丝的话），我可以删除所有密码。于是，家里的每个人又都可以毫无障碍地使用电脑了。


### 试运行的重要性


在那之后，我又犯了更大更有益的错误。比如，在我第一次做系统管理员时，当时我正整理一些数据以重新配置存储阵列。有一次，我意外地颠倒了源路径和目标路径，而且那是一个带有 `——delete` 标志的 `rsync` 命令。真的是太糟糕了!


幸运的是，我自己的账户也崩溃了，这让我的道歉更容易被其他受影响的用户接受。对我们所有人来说更幸运的是，我们有备份。所以那天结束的时候，每个人的文件都找回来了，我还学到了一个宝贵的教训，那就是在进行破坏性同步之前，先使用 `--dry-run` 标志试运行。


### 以正确的方式处理错误


我不介意犯错误。这些年来，我积累了很多实践经验，学到的诀窍就是不要犯同样的错误。从错误中学习能让我在技能和事业上取得进步，并发现新的会犯的错误。作为 Linux 系统管理员，我总是试图在一个安全的环境（测试平台就很好）中犯错误，确保我可以从错误中恢复（备份真的非常非常重要！），并给以后的我留个笔记，这样他就不会重复犯错（文档是你的朋友）。当然，还要勇于承认自己的错误，并在出现问题时清楚地与用户沟通。如果我一直这样做，也许有一天我就会觉得我很清楚我在做什么！




---


via: <https://opensource.com/article/20/8/sysadmin-mistakes>


作者：[Ben Cotton](https://opensource.com/users/bcotton) 选题：[lujun9972](https://github.com/lujun9972) 译者：[Starryi](https://github.com/Starryi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
I've been a [Fedora](http://getfedora.org) Linux contributor for a little over a decade now. Fedora has a large community of developers and users, each with a unique set of skills ranging from being a particularly discerning user to being an amazing programmer. I like this because it inspires and motivates me to develop new skills of my own.

For me, the best way to develop skills has always been to make mistakes. Like, really mess things up. It doesn't really matter what kind of mistake it is because it's less about the mistake itself and more about what I learn in the process of having to dig myself out of whatever hole I managed to get myself into.

## Why mistakes are good

I remember my first computer mistake. My family's first computer was an Epson laptop that my uncle gave us when he upgraded. It had a blazing fast 10 MHz processor and a carrying handle because it was so heavy. I loved that machine.

It ran DOS, but it had a text-based menu application to make it a little friendlier for the novice user. Hard Disk Menu had ten "pages," each of which could have ten commands configured. We had a page for games, another for "boring stuff" like word processors and spreadsheets, etc.

Hard Disk Menu had some other features that, when I got bored of playing the games, I would explore. At some point, I decided that I should make use of the account feature. It didn't change what applications appeared, but it would prevent unauthorized access, sort of. You could just drop to the DOS shell instead, but still, it was a nice try.

I created accounts for myself, my parents, and my sisters. My parents were a little annoyed, but they humored me. Everything was fine for a while. Then my sister forgot her password. My parents told me to remove the passwords. But without my sister's password, I couldn't remove the password on her account (it was the early 90s, a much simpler time). What to do? What to do?

For a little while, we kept going with the attempted passwords until one day when I decided I'd try something I hadn't done yet. When I was first creating the accounts, I set a master password. What would happen if I typed the master password in place of my sister's password?


If you're thinking, "of course that didn't work," then you're clearly not familiar with the naivete of security policies back in the 90s. With the master password (it was "worf," by the way, a reference to the USS Enterprise-D's Klingon security chief, for those of you who may not be Star Trek: TNG fans) in hand, I was able to remove all of the passwords. Everyone in the family could use the computer without hassle again.

## The importance of a dry-run

Since then, I've gone on to make bigger and better mistakes. Like the time in my first sysadmin job when I was shuffling some data around to reconfigure a storage array. At one point, I accidentally got the source and destination paths backward. Of course, it was an rsync with the `--delete`

flag. Whoops!

Thankfully, my own account was among those that went "poof." That helped the apology go down a little easier with the rest of the affected users. Even better for us all, we had backups, so by the end of the day, everyone had their files back. And I learned a valuable lesson about using the `--dry-run`

flag before running a destructive sync.

## Dealing with mistakes the right way

I don't mind making mistakes. I've amassed a LOT of practice over the years. The trick, I've learned, is never to make the same mistake twice. Learning from my mistakes is what has allowed me to advance in my skills and career, and find new mistakes to make. As a Linux sysadmin, I've always tried to make my mistakes in a safe environment (test platforms are great), make sure that I recover from my mistakes (backups FTW!), and to leave a note for Future Ben, so he didn't repeat my mistakes (documentation is your friend). And of course, admitting my mistakes and clearly communicating to my users when things go wrong. If I keep this up, maybe one day I'll feel like I know what I'm doing!

## 2 Comments