linode VPS紧急模式修复服务器!

0x01 缘由

事情是这样的,昨天突然想起很久之前买的linode服务器登陆还是密码验证模式,所以就迷迷糊糊直接上线搞起。加了ssh,禁用密码登陆,然后顺手手贱把root登陆也给禁掉了。

今天又想起来服务器上只有一个root用户。

我检讨,我的错...

0x02 关于紧急模式

今天再linode上找了半天才看到有这么个东西,简直是神器有没有!

阅读全文 >>


论crontab -r的危害性及预防措施

0x01 起因

今天某部门又发生了一次crontab被删事件,想起了上次一位同事误执行crontab -r导致计划任务被删除的事。

crontab -e 修改当前用户的计划任务
crontab -l 列出当前用户的计划任务
crontab -r 删除当前用户的所有计划任务,而且是直接删除,没有任何提示。

在键盘上e和r紧挨着,这就造成了一不小心清空了所有定时任务。如果没有crontab计划任务备份,就只能从crontab日志里捞任务了,万一有那种间隔长时间运行一次的计划任务,想要不遗漏任务,只能拼记忆力了。

万一是线上重要服务器,会瞬间体验到灵魂出窍的感觉,还得假装很镇定,先找SSH的buffer,再找crontab日志,联系相关童鞋协助恢复,然后祈求能够完整恢复。这种体验,想想都酸爽~

阅读全文 >>


新玩具,新生活

##0x01 人生的第一款相机##

每个男人都该有一款自己的相机 -- 摩西

因为最近要出去浪一圈,再加上想买一款相机想了好久,之前一直纠结买单反还是微单。

咨询了一些朋友,他们买的单反都丢在家吃灰,考虑到我也是比较懒的人,所以就不买傻大个了。

然后就开始为期5天的微单考察,最后选中了富士的X-T10,又纠结了两天18-55 还是 16-50镜头的问题,最后下单买了18-55。

阅读全文 >>


Go语言环境配置

0x01 brew大法好

Brew大法好,用过都说好,它好我也好。

安装brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
//安装成功后更新
brew update

安装Go

brew install go
==> Downloading https://homebrew.bintray.com/bottles/go-1.5.1.yosemite.bottle.ta
######################################################################## 100.0%
==> Pouring go-1.5.1.yosemite.bottle.tar.gz
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  https://golang.org/doc/code.html#GOPATH

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
...

阅读全文 >>


PHP内核学习:PHP中的HashTable(二)

0x01 前言

之前说过了哈希表的一些基础概念,下面我们看下PHP中哈希表的实现。
首先要明确的是PHP5.*和PHP7的哈希实现是不同的,本文先分析php5.5.28为基础。

0x02 PHP哈希表的实现

了解了哈希表的实现原理之后,要看PHP的哈希表是如何实现的就很容易了,只需要注意下面三点:

  1. 哈希函数如何构造
  2. 哈希冲突如何解决
  3. 操作接口如何实现

阅读全文 >>