はじめに
やらかしたことを紹介します
誰かが今後気を付けるきっかけになれば…
やらかし1
chownでrootディレクトリ以下のユーザーをすべて変えてしまった
多くの人がやったことあるやらかしですが、私もやりました
あっと思った瞬間は時すでに遅し
慢心NO
やらかしコマンド
$ sudo chown –R myuser:mygroup /
やろうとしていたこと
$ sudo chown –R myuser:mygroup ./
言い訳(なぜ起こったのか)
- リモート接続しており、ネットワークが重かった。そのため
./
と入力したつもりが、.
が認識されず/
になってしまった - 惰性でコマンドを叩いていた
- メモ帳にコマンド書いてコピペでコマンドを張り付けていなかった
- 画面に反映されるまで時間がかかっているのにも関わらす、入力されたコマンドを確認せずに、enterを押してしまった
その後の対応
- 上司に報告
- rootユーザーで作業していたのでそのまま、以下を最低限出来るように復帰(関連ファイルのユーザーをroot:rootに戻す)
- sudo
- su
- ssh
コツ
$ systemctl start ssh
など行うと、どのファイルが原因で起動できないか教えてくれる場合がある
起動しても他のサーバーからsshできること、その後sudo,suができることを確認しないうちはログアウトしてはいけない
また、Sticky bitが変わってる場合もあるのでそこも確認
- サーバー管理してる部署に謝罪して復帰のお願いをする
救われたポイント
- 検証サーバーだった
- リモートサーバーだったので復帰がしやすかった
再発防止策
- rootユーザーで作業しない
-
./
や.
から始まる引数を指定しない - どうしても上記で作業が必要な場合はメモ帳にコマンド書いてからコピペで貼り付ける
- できるのならサーバー破壊コマンドはエイリアスを設定する
同じことをやらかしてしまったら
- 焦ってexitしない
- rootユーザーで作業していたら助かる可能性があるため
- 上司に報告
- スピード命。引き延ばした分だけ取り返しがつかなくなるので、早く報告
- チームメンバーや同じサーバーを使っているチームにrootユーザーで作業している人がいないか探す
- 自分がrootで作業していなくても他の人がrootで作業していたら助かる可能性があるため
やらかし2
Ansibleでパーミッション指定を数字三桁で記載した
弁解の余地もございません
やらかし
- name: Change file ownership, group and permissions
ansible.builtin.file:
path: /etc/foo.conf
owner: foo
group: foo
mode: 644
正しい記載
以下のどれかでmodeを指定
mode: '0644'
mode: 0644
mode: '644'
mode: u=rw,g=r,o=r
間違った指定方法だとどうなるのか
以下のようなパーミッションになった
--w----r-T 1 foo foo
間違った理由
- 公式ドキュメントを読んでいなかった
助かったポイント
- パーミッション変更したあとに、確認するタスクを入れていたので気づけた
さいごに
間違えないことが大切ですが、どれだけ気を付けてても間違ってしまうことはあります
間違いに気付ける機会をつくる事と、間違ったときに何とかできるスキルも大切だと思いました