• GIZMODO
  • FUZE
  • DIGIDAY
  • gene
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • roomie
  • machi-ya
  • GIZMODO
  • DIGIDAY
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • machi-ya
  • roomie

matono  - ,,  09:00 PM

LH質問箱:ファイルを守るために「パーミッション」について教えて!

LH質問箱:ファイルを守るために「パーミッション」について教えて!

121129_Permission_01.jpg


ライフハッカー編集部さま

米LHの過去記事「FreeNASでホームサーバを構築するガイド(英語)」を読んで、やってみようと思っていますが、ファイルのパーミッションをどのようにすればいいのか分かりません。すべてのファイルのパーミッションを「777(rwxrwxrwx=CGIスクリプトから操作するディレクトリ)」にした方がいいのでしょうか? それではセキュリティ的に問題がありますか? この辺のことはチンプンカンプンなのです。どうかお助けください!

パーミッションに困った人より


パーミッションに困った人さん

同じようなお悩みを抱えている人は、実際にたくさんいると思います。筆者も、長い間ファイルのパーミッションにはかなり悩まされていました。しかし、パーミッションはきちんと知っていれば実はとても簡単です。今回は、パーミッションをどのように設定すればいいのか、ファイルを安全に保つためのパーミッションとは何かを、お教えしましょう。


注意:
一口にファイルのパーミッションと言っても、かなり広範囲に及ぶ内容なので、ここですべてを網羅することはできません。今回は、UNIXのパーミッション(つまりMac、Linux、FreeNASのようなFreeBSDでのパーミッション)について取り上げ、その基本だけをご紹介します。

Windowsユーザーの方は、米LHでご紹介したホームグループでパソコン間でファイル共有をするガイド(英語)」を参考になさってください。


■なぜファイルのパーミッションが重要なのか

ファイルを改ざんされないように守るには、Wi-Fiネットワークに良いパスワードを設定すればいいだろう、と思っている人もいるかもしれません。しかし、Wi-Fiネットワークのパスワードはとても簡単にハッキングされてしまいます。(米LHの過去記事参照)ハッキングされにくいWi-Fiネットワークだとしても、誰かにファイルを盗まれたり勝手に持ち出されたりしないように、さらに対策をした方がいいでしょう。特に、サーバに機密情報や大事な個人情報(重要な情報が入っているパソコンのバックアップデータなども含む)を保管している場合はなおさらです。

さらに、家族間でファイルを共有している場合は、家族の誰かが、本人以外のファイルを改ざんしないようにすることも大切です。家族なら誰でもアクセスできるような状況にしていたせいで、ある日子どもや機械音痴の奥さんが誤ってすべてのデータを間違って削除してしまった! なんてことは想像もしたくないと思います。ほんの少しファイルのパーミッションに気をつけておくだけで、確実にファイルを安全に保管でき、最悪の事態を回避することができます。


■ユーザー:所有者(owner)、所有グループ(group)、その他(public)


121129_Permission_02.jpg


すべてのUNIXシステム(Mac、Linux、FreeNASを使ったFreeBSD)では、パーミッション(権限)は一般的に同じ方法で設定できます。それぞれのファイルやフォルダには、どういう人がファイルにアクセスできるかによって「所有者」や「所有グループ」が割り当てられます。ファイルの実行権限があるのは所有者のユーザーだけで、基本的にファイルに対してフルアクセスできます(読み書きもできるということです)。所有グループのユーザーには、別の権限が与えられます(多くの場合読み込みだけです)。それ以外のユーザーには、まったく見ることができない場合もあります。

これで家族にも簡単に、限られた権限を与えることができます。ファイル所有者のあなたは、ファイルにフルアクセスができ、他の家族には、そのファイルを書き換えたり、削除したりする権限を与えないようにすることができるということです。ファイルを読んだり、書き換えたり、実行したり(フォルダを開いたり、プログラムを実行したり)することができるので、自分にその権限を与えましょう。一方、自分以外の家族には、ファイルを読むだけにしたい場合は、「家族」というフループを作り、そのグループは読むだけの権限にとどめましょう。

◎まず最初にユーザーとユーザーグループを作成する


121129_Permission_03.jpg


ファイルにパーミッションを設定するには、まずシステム上でユーザーとユーザーグループを作成しましょう。LinuxやOS XやFreeNASでは、普通はOSの設定の「ユーザーとグループ」などで設定します。家族をそれぞれユーザーとして追加し、例えば「家族」というようにグループを作成します。そのグループに必要なユーザーを追加します。例えば、あなたの名前が「ドナルド」だとしたら、ドナルドというユーザーアカウントを作成し、恋人の「デイジー」のユーザーアカウントも作成し、同様に一緒に住んでいる甥の「ヒューイ」と「デューイ」と「ルーイ」のアカウントも追加しましょう。すべてのユーザーを家族のグループに追加します。


◎ファイルの所有者を変更する

パーミッションを変更するには、コマンドを使うのが一番簡単です。(GUIのオプションのものは機能が限定されていたり、分かりにくいこともあります)簡単な例をご紹介しましょう。例えば、ハードドライブに映画のフォルダ(ディレクトリ:/mnt/Media)があったとします。このファイルの所有者が誰なのかを確かめるには、以下の2つのコマンドを実行するだけです。

cd /mnt/Media ls -l

最初のコマンドは「そのフォルダの場所に移動する」というもので、次のコマンドが「そのフォルダの中身と詳細を一覧表示する」というものです。筆者の場合は以下のようになりました。


heimdall:/mnt/Media# ls -l
total 40
drwxrwxr-x 7 root wheel 512 Aug 9 20:07 Games
drwxrwxr-x 126 root wheel 17920 Nov 10 23:25 Movies
drwxrwxr-x 2 root wheel 2560 Aug 10 23:15 Music Videos
drwxrwxr-x 17 root wheel 1024 Nov 26 20:45 TV Shows


上記の結果を見ると、それぞれのフォルダの所有者にルート権限があることが分かります。グループは「wheel(通常は管理者のグループ)」が割り当てられています。これらのファイルの所有者を自分に変更し、ファイルのアクセス権限を「家族」のグループに割り当てたい場合は、「chown(Change Owner=所有者変更の意)」のコマンドを実行します


chown -R donald Movies

上記のコマンドは、「Movies」フォルダの所有者を「ドナルド」というユーザーに変更するというものです。「-R」は再帰的にという意味で、「Movies」の中のすべてのフォルダもファイルも所有者を変更するという指示になります。したがって、フォルダのみならずその中のものはすべて、所有者がドナルドに変更されます。このコマンドがきちんと実行されたかを確認したい時は、常に「ls -l」のコマンドを実行して確認しましょう。


heimdall:/mnt/Media# ls -l
total 40
drwxrwxr-x 7 root wheel 512 Aug 9 20:07 Games
drwxrwxr-x 126 donald wheel 17920 Nov 10 23:25 Movies
drwxrwxr-x 2 root wheel 2560 Aug 10 23:15 Music Videos
drwxrwxr-x 17 root wheel 1024 Nov 26 20:45 TV Shows


上記のコマンドを使えば、どんなフォルダでもファイルでも所有者を変更することができます。


◎ファイルに権限のあるグループを変更する

ファイルに権限のあるグループを変更するのは、所有者を変更するのと同じようなイメージです。例えば、「家族」のグループを、映画のファイルすべてに権限を割り当てるとします。そうすると、家族はそれぞれのパソコンで映画を見られるようになります。そのためには以下のコマンドを実行しましょう。


chgrp -R family Movies


上記のコマンドは、「Movies」フォルダとその中身を家族のグループに権限を割当て変更するという指示です。このコマンドを使えば、同じように他のフォルダのグループ変更もできます。


■パーミッション(権限):読み(Read)、書き(Write)、実行(Execute)


ユーザーに関する部分を解決すれば、次は実際のパーミッション(権限)についてです。ファイルやフォルダの権限に関して、考えられるのは以下の3つです。

  • ファイルの所有者にできること
  • ファイルのグループにできること
  • 他の人にできること

再び「映画」フォルダを例にしましょう。映画フォルダの場所に移動して、中のファイルを一覧表示させます。


heimdall:/mnt/Media# ls -l
total 40
drwxrwxr-x 7 donald family 512 Aug 9 20:07 Games
drwxrwxr-x 126 donald family 17920 Nov 10 23:25 Movies
drwxrwxr-x 2 donald family 2560 Aug 10 23:15 Music Videos
drwxrwxr-x 17 donald family 1024 Nov 26 20:45 TV Shows


上の「drwxrwxr-x」が何を意味しているか分かりますか? これはそれぞれのフォルダのパーミッションになります。「d」は、こファイルがディレクトリだということを表しています。次の3文字(rwx)は、そのファイルの所有者が何をできるかを表しています。その次の3文字(rwx)は、グループが何ができるかを表しています。最後の3文字(r-x)は、それ以外の人ができることを表しています。それぞれ「r」は読む権限、「w」は書く権限、「x」は実行する権限という意味です。「-(ダッシュ)」は、特定の権限が与えられていないことを表します。

したがって、上記の場合は、ドナルドと家族グループはこれらのファイルの読み書き(rwx)をすることができますが、それ以外の人は読むだけ(r-x)です。家族にファイルを書く権限を与えず、それ以外の人にはまったく見ることができないように、権限を変更したい場合は、以下のコマンドを実行します。


chmod -R 750 Movies


これは、オーナーは何でもできて(rwx)、家族グループは読むのと実行するだけで(r-x)、それ以外の人には何もできない(---)、という風に権限を「drwxr-x---」に変更するものです。それがどうして「750」という数字になるのでしょうか? この数字は、それぞれ順にユーザー(所有者、グループ、その他)を表しています。数字の算出方法は以下のようになっています。


r=4、w=2、x=1、したがって rwx=7


所有者にはすべての権限を与えたいので、最初の数字が「7」になります。グループには読むと実行の権限を与えたいので、「4+1」で「5」になります。それ以外の人は何もできないので「0」です。これでファイルの権限「750」の意味が分かったと思います。

もしグループにも読み書き実行の権限を与えて、それ以外の人は何もできないままに再設定するとしたら、今度は以下のコマンドになります。


chmod -R 770 Movies


どんな数字になるかは、どんな権限を与えたいかによって変わります。このコマンドを使えば、ファイルやフォルダの権限を変えることができます。

これで自分のフォルダやファイルをより安全に保管し、共有できるようになりますよね。コマンド自体は難しいものではないので、ぜひ使ってみてください。

ライフハッカーより


Title image remixed from kuzzie (Shutterstock) and file404 (Shutterstock).

Whitson Gordon(原文/訳:的野裕子)

MORE FROM LIFEHACKER

powered by
    
    
    
  

Kotaku

Recommended

© mediagene Inc.