ファイルの権限を理解する: “Chmod 777” とは何か?

Chmod Permissions Linux Macos

LinuxユーザーやLinuxサーバーを管理するシステム管理者であれば、「フォルダーにファイルをアップロードする権限がありません」というエラーに遭遇することがあるでしょう。グーグルで調べた結果、解決策は「775」または「777」にファイルの権限を設定することが多いです。技術的には、「chmod 777 the file」と言われます。しかし、「777」とは何を意味するのでしょうか?なぜ「7」でなければならず、「8」や「9」ではないのでしょうか?

この記事では、ファイルの権限をもう少し理解する方法を示します。特に、chmod 777が何を意味するのかについて説明します。

関連記事: Linuxでファイルを簡単にリネームする方法

ファイルの権限を理解する

Unixシステム(LinuxやmacOSを含む)には、特定のファイルやフォルダーに誰がアクセスできるか、そして何ができるかを決定するファイル制御メカニズムがあります。

考慮すべき2つの部分があります:

クラス。 これは、誰がファイルにアクセスできるかを決定します。3つの指定があります:オーナー、グループ(同じ権限を共有するユーザーの集まり)、およびその他のユーザーです。

  • オーナーは通常、ファイルまたはフォルダーの作成者です。Linuxでは、ホームディレクトリ内で作成したファイルやフォルダーは、特に所有権を変更しない限り、通常はあなたが所有します。
  • グループは、同じ権限とユーザー特権を共有するユーザーのグループです。
  • その他は一般の人々を指します。

Linuxのファイル権限を表示できます。

権限。 これにより、ユーザーがファイルで何ができるかが決まります。ファイルを読み取る、書き込む、または実行することができ、これら3つの権限のほぼ任意の組み合わせを設定できます。

  • 読み取り。 ファイルの内容を変更することはできません。フォルダーに適用されると、そのフォルダー内のファイルを表示することしかできず、ファイルを削除したり変更したり、フォルダーに新しいファイルを追加することはできません。
  • 書き込み。 ファイルを変更することができます。フォルダーに「書き込み」アクセス権がある場合、そのフォルダーにファイルを削除したり追加したりできます。
  • 実行。 実行は、ファイルを実行する必要があるときに主に使用され、スクリプトを実行する必要があるときに最も一般的に使用されます。

「アクセス」ドロップダウンは現在のファイル権限を表示します。

クラスと権限を組み合わせて使用することで、誰がファイルにアクセスできるか、そしてどのようなアクションを実行できるかを制御できます。

ファイルのオーナーは、通常、すべての権限(読み取り、書き込み、実行)を持っています。サーバーにファイルをアップロードできない場合、権限が不一致であることが多いです。

ファイル権限777の説明

クラスと権限の基本的な理解を持つと、「777」や「775」のような数字を理解し始めることができます。

すべてのファイルとフォルダーには、権限を制御する8ビットデータが含まれています。その基本的なバイナリ形式では、000はどのような権限も付与されていないことを意味します。

「読み取り」権限を設定すると、データに4ビットが追加され、「100」(バイナリ形式)または通常の10進数形式で「4」になります。「書き込み」権限を設定すると、データに2ビットが追加され、「010」となり、10進数形式で「2」になります。最後に、「実行」権限を設定すると、データに1ビットが追加され、「001」または10進数形式で「1」になります。要するに:

  • 読み取りは「4」に相当します。
  • 書き込みは「2」に相当します。
  • 実行は「1」に相当します。

要するに、権限を設定することは基本的な数学です。たとえば、「読み取りと書き込み」権限を設定するには、4と2を組み合わせて6を得ます。もちろん、他の組み合わせもあります:

  • 0: 権限なし
  • 1: 実行
  • 2: 書き込み
  • 3: 書き込みと実行
  • 4: 読み取り
  • 5: 読み取りと実行
  • 6: 読み取りと書き込み
  • 7: 読み取り、書き込み、実行

ファイル権限の完全なセットは、最初の数字をオーナーに、2番目の数字をグループに、3番目の数字をその他に割り当てます。一般的に使用される権限のいくつかは次のとおりです:

  • 755。この権限セットは、ウェブサーバーで一般的に使用されます。オーナーは読み取り、書き込み、実行のすべての権限を持っています。他のすべてのユーザーは読み取りと実行ができますが、ファイルを変更することはできません。
  • 644。オーナーのみが読み取りと書き込みができます。他のすべてのユーザーは読み取りのみができます。このファイルを実行することはできません。
  • 655。オーナーのみが読み取りと書き込みができ、ファイルを実行することはできません。他のすべてのユーザーは読み取りと実行ができ、ファイルを変更することはできません。

777の場合、これはすべてのユーザーが読み取り、書き込み、実行できることを意味します。完全な権限を付与するため、注意して使用する必要があります。ただし、場合によっては、サーバーにファイルをアップロードする前に777権限を設定する必要があります。

コマンドラインでのファイル権限の設定

Linuxでは、ファイルやフォルダーを右クリックして「プロパティ」を選択することで、ファイル権限を簡単に変更できます。これにより、変更を加えることができる権限タブが開きます。

対照的に、macOSでは、右クリックして「情報を取得」を選択することで権限設定を変更できます。ここでは、「共有と権限」セクションを展開して変更を加えることができます。

情報パネル、権限を表示。

変更を加えるには、特権セクションから関連する権限を選択し、より適切なものを選択します。

macOSでファイルの新しい権限を設定。

ただし、これがファイル権限を変更する唯一の方法ではありません。次に、これをより詳細に説明します。

chmod 777を使用してファイル権限を変更する

ターミナルやコマンドラインに慣れている場合、ここでも権限を変更できます。

chmodコマンドは「モードを変更する」ことを可能にします。これは、アクセス権限を説明する別の方法です。これを行うには、ターミナルを開き、次のように入力します:

chmod777/path/to/file

要するに、chmod 777は、この記事全体で提示した2つの概念を組み合わせたものです。これは、ファイルをすべてのアクセス権を持つ人が読み取り、書き込み、実行できるようにすることを意味します。そのため、強力であり、システムを破壊する可能性があるため、特に注意が必要です。

まとめ

ファイル権限は、正しく設定されていない場合、障害を引き起こす可能性があります。これは設計上のもので、ロックダウンされたシステムは侵害されることができません。ただし、システムやサーバー上のファイルにアクセスしたい場合、特定の権限を変更する方法を学ぶことは重要なスキルです。

要するに、chmod 777は、ターミナル内でファイルやフォルダーをすべての人にアクセス可能にするために使用するコマンドです。これは稀に使用し、作業が完了したら、より制限された権限セットに戻すべきです。

ターミナルが他に何をできるか気になる場合は、コマンドラインからコピー&ペーストする方法に関する投稿をチェックしてください。ファイル権限を管理する必要がありますか?この投稿は役に立ちますか?下のコメントセクションでお知らせください!