「うっかりミス」を回避するための基本方針

【連載】

にわか管理者のためのLinux運用入門

【第2回】「うっかりミス」を回避するための基本方針

[2015/12/22 08:00]後藤大地 ブックマーク ブックマーク

責任回避に全力投球!

日々サーバの管理をしていれば、当然ながら操作を誤ることもある。ありがちなのは、うっかりデータを削除してしまうというミスだ。受注データや売上データ、顧客データといった重要な業務データを削除してしまった場合、個人の評価に影響があるだけでなく、会社の経営自体に大打撃を与えかねない。

予期できる危険は、全力で回避しよう。「データをうっかり削除してしまう」のはなぜなのかを考え、あらかじめ対策を立てておくのだ。ここでは、「そもそも、データを削除できてしまうのがいけない」と考えてみよう。たとえ操作を誤ったとしても、データを削除できないのであれば問題は発生しない。

「そんなことができるのか?」と思われるかもしれないが、それができるのだ。やり方はいろいろあるのだが、今回は「削除権限を持ったユーザーによる操作は、必要最小限にする」という方針で進めていこう。

管理者ユーザー「root」と一般ユーザー

Linuxや*BSD(BSD系統のOS群)では、OSを利用する主体を「ユーザー」と呼び、ユーザーを「管理者ユーザー(特権ユーザー)」とそれ以外の「一般ユーザー」に分けている。

管理者ユーザーには、多くの場合「root」という固有の名前が付けられている(OSによって異なる)。rootにはありとあらゆる操作が許可されており、操作を誤るとシステムが壊れることもあるという、とても危険な操作権限を持っている。

管理者ユーザー「root」でログイン

管理者ユーザー「root」でログイン

一方、一般ユーザーは権限が限られている。システムのファイルは削除できないし、読めないファイルもある。rootや所有者が許可を出していなければ、ほかのユーザーのファイルを削除することもできない。

一般ユーザー(ここでは「daichi」)でログイン

一般ユーザー(ここでは「daichi」)でログイン

つまり、サーバを管理する際、できるだけ一般ユーザーでログインして作業するようにすれば、「うっかりデータを削除してしまう」リスクを軽減できるわけだ。

一般ユーザーの”と金化”を実現するsuコマンド

一般ユーザーでの操作は、安全な反面、できないことが多くて不便なところもある。ただし、一般ユーザーから一時的にrootに成り上がるコマンドが存在する。将棋の世界では、「歩」が相手陣に入って行くと「金」と同じ動きをできるようになり、この時の駒を「と金」と呼ぶのだが、Linuxや*BSDにはまさにこの”と金化”を一般ユーザーに施すコマンドが用意されているのだ。それがsuコマンドである。

suコマンドを実行し、rootのパスワードを入力すると、rootに成り上がることができる。

suコマンドで一般ユーザーからrootに成り上がった

suコマンドで一般ユーザーからrootに成り上がった

ここでは、確認のためsuコマンドの実行前後にechoコマンドを使って「UID」という環境変数の値を表示させてみた。suコマンド実行前のUIDの値は「1000」だが、実行後には「0」になっている点に注目してほしい。この「0」こそ、rootのUIDなのである。

rootに成り上がった状態で必要な作業を終えたら、「exit」と入力すれば一般ユーザーに戻ることができる。後は、再び制限された環境で安全に業務を進められるというわけだ。

委任のためのコマンド「sudo」

ただし、suコマンドで一時的にrootに転身している間に操作を誤れば、もともとrootでログインしてミスするのと同じことだ。つまり、このやり方には限界がある。もっと細かく、「この機能だけこのユーザーに特権的に許可する」といったことはできないものか。――実は、可能である。「sudo」というコマンドならば、一般ユーザーに対して、特定の処理の実行だけを許可することができるのだ。

以下の画面は、一般ユーザーでログインし、「/var/log/messages」というログ・ファイルを閲覧しようとしていったん拒否されたものの、sudoコマンドを実行して見られるようになるまでの流れだ。

sudoコマンドを実行することで、ログ・ファイルを閲覧可能になった

sudoコマンドを実行することで、ログ・ファイルを閲覧可能になった

suコマンドの実行時には、rootのパスワードを入力しなければならないが、sudoでは一般ユーザー自身のパスワードを入力すればよい。もちろん、このコマンドのリスクを最小限にするには、sudoの設定ファイルを正しく記述しておく必要があるが、まずはsudoというコマンドの存在を知ってもらえればよいだろう。

今回のおさらい

今回のポイントは、次のとおりだ。

  • Linux系OSのユーザーには、管理者ユーザー「root」と一般ユーザーの2種類がある
  • リスクを回避するために、なるべくrootでログインしない
  • suコマンドで、一般ユーザーからrootに転身できる
  • sudoコマンドを使えば、一部の機能だけ一般ユーザーに特権的に実行させることができる

Linuxの運用に不慣れだと、「パーミッションがうんたら……」と言われるのがうっとうしくて、全部rootで作業したくなるものだ。しかし、ちょっとした操作ミスが命取りになる危険性を秘めている。避けられるリスクは、可能な限り回避していこう。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【特別企画】管理者にお馴染みの

【特別企画】管理者にお馴染みの"バックアップ問題"、Win/Linux混在環境の担当者が出した答えとは?

地味ながらも面倒なうえ、ミスが許されないために精神的苦痛も伴うシステム管理作業。それがバックアップではないだろうか。コスト抑制のためLinuxを使って自力で構築したが、運用に関してもお金をかけられず、シェルスクリプトを組んでバックアップを行う。しかし、細かい作業にそれなりの人足をとられるため結果的にコストが嵩むうえ、実のところ正常にリストアできるかも怪しい。…

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
対話システムをつくろう! Python超入門
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
PowerShell Core入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る