Linuxにおける権限管理を見ていきます。権限管理は管理者(rootユーザー)が行うものです。 Linuxでは任意のディレクトリ・ファイルごとに自由に権限を管理できます。

Linuxの権限管理

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年09月16日

Linuxにおける権限管理を見ていきます。権限管理は管理者(rootユーザー)が行うものです。

Linuxでは任意のディレクトリ・ファイルごとに自由に権限を管理できます。

アクセス権限の種類

まず権限の種類が3種類あります。

  • 読み込み権限(read)
    ファイルやディレクトリの読み込み(閲覧)ができます。書き込み(編集や追加)はできません。
  • 書き込み権限(write)
    ファイルやディレクトリの書き込み(編集や追加)ができます。書き込みできるのに読み込み(read)できないという状況はあまりないため、書き込み権限がある場合には読み込み権限もだいたい付きます。
  • 実行権限(execute)
    実行というのはコマンドとしての実行権限です。対象のファイルがプログラムだった場合、そのプログラムを実行する権限を持ちます。PHPなどのスクリプトもプログラムファイルに該当するため、実行権限がないとプログラムを動作させることができません。

以上がアクセス権限の種類です。

すべてのディレクトリ・ファイルはこの3種類の権限で成り立ちます。

アクセス権限の実行許可ユーザー

次に上記のアクセス権限を誰が持っているかを管理する必要があります。誰がアクセス権限を持つかについても3種類存在します。混同しないように注意しましょう。アクセス権限自体と、アクセス権限の所有者で分かれます。

所有者の情報は次の3つです。

  • 所有者
  • グループ
  • 所有者及びグループ以外の第三者

所有者はその名の通り、ファイルやディレクトリの所有者です。グループはLinuxにおけるグループのことです。
そして第三者とは、所有者でもグループにも属していないLinuxで管理されているユーザー上の第三者です。Linux上で管理されていないユーザーはもちろんアクセスできません。

つまり、所有者における3種類のアクセス権限・グループにおける3種類のアクセス権限・第三者における3種類のアクセス権限の計9つのアクセス権限をLinuxでは設定できます。

いくつかの例で理解を深めていきましょう。

  1. ユーザーAが作成したプログラムを自分自身のみが使いたい
    この場合ユーザーAがプログラムを作成するため、所有者はユーザーAになります。ユーザーA自身のみが使うということなので、
    所有者は読み込み・書き込み・実行権限を持ちます。
    グループはどのアクセス権限も持ちません。
    第三者もアクセス権限を1つも持ちません。
    lsコマンドで確認するとrwx------で所有者はユーザーAとなります。
  2. ユーザーBが作成したプログラムを自分自身のみが編集し、Linuxユーザーであれば誰でも実行のみできるようにしたい
    この場合ユーザーBが所有者なので、読み込み・書き込み・実行のすべての権限を持ちます。
    そしてそのプログラムの実行だけは誰でもできるようにするため、グループは実行権限のみを持ちます。さらに第三者も実行権限のみを持ちます。
    lsコマンドで確認するとrwx--x--xとなり、所有者はユーザーBとなります。

このようにアクセス権限を細かく分別できます。

基本的にこれらのアクセス権限を変更できるのは所有者またはrootユーザーのみです。

もちろんrootユーザーだけは何でもできます。


タグ