Mar 15, 2015

シス管系女子で取り扱っている解説の妥当性、危険性について

シス管系女子(正確には「#!シス管系女子 Season3」)の現在発売されている号の日経Linux 2015年4月号掲載分について、hostnameコマンドは与えられた引数でホスト名を設定する物なので、ホスト名を取得するためだけにhostnameコマンドを使うのは、誤操作で問題が起こり得るから危険だという指摘がありました。

別の話として、実際に指摘を見かけたことはまだ無かった気がしますが、過去の回でcrontab -eを紹介するにあたって色々調べ直していた時に、crontab -eは、確認なしでの削除であるcrontab -rとミスタイプしやすいから使ってはいけないという話も見かけました。

どちらの事例も、「その機能が正常に使われている限りにおいては問題ないが、ヒューマンエラーが発生した時のリスクが大きいので、そもそもその機能を使うべきではない」という、安全側に倒した考え方であるように自分は受け取りました。運用という側面から「シス管」を考えた場合には、尤もな指摘だと言えると思います。

hostnameについては、なぜ$HOSTNAMEを参照するようにしなかったのかというと、以下のような所が理由となります。

  • 自分がその方法で覚えてしまっていた。
  • ホスト名を変えるためにhostnameコマンドを使う、ということが普段無いために、そのリスクに無頓着だった。(hostnameコマンドによるホスト名再設定は、再起動したら状態が戻ってしまうことから「使えねー」「役に立たねー」と思ってしまい、それ以後存在自体をすっかり忘れ去ってしまっていた)
  • なんとなく、環境変数の値は誰かが書き換えうるものという認識があり、コマンドの出力を見た方が安定した結果を得られそうに思った。(環境変数でもコマンドの結果でも同じ情報が得られるのであれば、コマンドの方を使うほうが安心、という認識がある)

crontab -eについては、「そんなん間違えへんやろ」と思っている部分が正直大きいです。が、自分がそう言えるのはcrontab -eというコマンド列を日常的に頻繁に利用するわけではないからかもしれないとも思っています。入力する回数が多いとcrontab -rというtypoの出現頻度が現実に問題となり得るレベルにまで高くなってくるものなのだ、と考えると、管理運用を業務とする人ほど敏感になるというのはありうるかも、と思います。

自分がこの連載で紹介する内容を考える時の判断基準としては、

  • オプションの指定が不要なやり方と必要なやり方の両方があって、結果が同じなのであれば、オプションの指定が不要なやり方の方を紹介する。
  • 簡単なやり方と難しいやり方の両方があって、結果が同じなのであれば、簡単なやり方の方を紹介する。
  • 設定が不要なやり方と設定が必要なやり方の両方があって、結果が同じなのであれば、設定が不要なやり方の方を紹介する。(screenではなくtmuxを紹介したのはこれが最大の理由です)
  • 確実なやり方と不確実なやり方の両方があって、結果が同じなのであれば、確実なやり方の方を紹介する。
  • 安全なやり方とリスキーなやり方の両方があって、結果が同じなのであれば、安全なやり方の方を紹介する。

といったいくつかの基準があるのですが、「簡単だけど危険」「安全だけど難しい」のように判断が難しい時にどうするかというのは悩み所です。自分の中で決着が付かなければそもそもその話題は紹介せずに置いておくということもあります。が、多くの場合はcrontab -eのように、リスクを過小評価して利便性の方に舵を切ってしまいがちな気はしています。

ただ、可能な限り「簡単で、設定いらずで、確実で、安全で」という風に懸念点の少ないやり方を紹介していきたいという思いはあります。連載時の内容についての指摘は再録のタイミングで直せるので、全面的な改稿となると無理ですけども、セリフ回しや1コマの描き直し程度で乗り切れそうないい改善提案がもしあれば、Twitterアカウントへのリプライ等で情報を提供していただけると嬉しいです。

  • 今の所、Season2でやったSSHの公開鍵の登録についてssh-copy-idを使ったほうがラクという指摘は頂いており、これは何かの機会に反映したいと思っています。
  • このエントリに書いているhostnameの事については、既にuname -nhostname -sなどの別案を頂いていますが、hostnameコマンド一発で済ませられるやり方に比べると若干面倒さが増す感があるので、「まんがでわかるLinux シス管系女子」での追加コンテンツのような形で「より安全にやりたいならこういうやり方もある」という補足情報を載せる方向で行くのがいいかなあ、と思っています。

総じて、この連載については「初級者レベルの人がちょっとステップアップする」「文字の説明だけ見ても分かりにくい事を、ビジュアライズして説明する」という所にテーマを設定しているので、安全性最重視の解説にはしにくいと思っており、そこの所は本誌の他の記事の方々に期待しております(丸投げ)。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能