Linuxを初めて使用(new Linux user)する場合は、早い段階でChmodコマンドに遭遇した可能性があります。おそらく誰かが「chmod777」でファイルを特定のフォルダに移動するように言ったのですが、それはうまくいきました!では、chmodコマンドは何をし、数字は何を意味するのでしょうか?
この記事では、 Linux(Linux)ファイルのパーミッションについて知っておく必要のあるすべてのことについて説明します。chmodコマンドと特定のアクセスレベルに対応する番号を理解するには、これを知っておくことが重要です。Ubuntu、Fedora、またはよりエキゾチックなLinuxディストリビューション(Linux distro)を使用するかどうかにかかわらず、 CHMODコマンドを使用して権限を777に設定しても問題がない場合と、別の設定を使用する必要がある場合を理解する必要があります。
Linuxファイルパーミッションのしくみ
Linuxでは、オペレーティングシステムは、ファイルのアクセス許可、所有権、および属性に基づいて、特定のファイルにアクセスできるユーザーを決定します。このシステムでは、所有者または管理者がさまざまなファイルやディレクトリへのアクセス制限を有効にすることができます。信頼できるユーザーとプログラムにのみアクセスを許可することで、システムのセキュリティを向上させることができます。
ユーザークラスを理解する(Understanding User Classes)
特定のユーザーとグループがすべてのファイルとディレクトリを所有しています。これは、特定のレベルのアクセスを割り当てることができるユーザーの3つのカテゴリーがあることを意味します。(three categories of users)これらのユーザーは次のように分類されます。
これらのグループは、任意のディレクトリを右クリックして[プロパティ(Properties)]を選択し、 [権限]タブに移動することで、 (Permissions)Ubuntuで視覚的に確認できます。
所有者(Owner)はすべての力を持つ人です。通常、ユーザーはすべてのファイルとディレクトリに完全にアクセスでき、他のユーザーのファイル権限も変更できます。
グループ(Group)は、所有者(Owner)によって指定されたファイルまたはディレクトリへの特定のレベルのアクセス権を持つ多数のユーザーで構成されます。たとえば、ユーザーのグループは、ファイルを表示するためのアクセス権が付与されている間、ファイルの変更から除外できます。
Othersクラスは、他の2つのカテゴリに分類されないゲストユーザーを表すだけです。デフォルトでは、それらのアクセスレベルは通常制限されています。ゲストユーザーができることとできないことを決定するのは所有者(Owner)次第です。
ファイルのアクセス許可レベルを理解する(Understanding File Permission Levels)
所有者(Owner)として、ファイルとディレクトリへのアクセスの3つのレベルを割り当てることができます。
- 読む(Read):ファイルまたはディレクトリへのアクセスを制限します。ファイルを読み取るか、ディレクトリの内容を表示するだけです。ファイルを編集したり、ディレクトリから新しいファイルを削除したり追加したりすることはできません。
- 書き込み(Write):ファイルの読み取りと編集を可能にします。このレベルのアクセスをディレクトリに割り当てると、ファイルを削除または追加することもできます。
- 実行(Execute):ファイルを実行または実行する場合にのみ重要です。たとえば、実行の許可なしにスクリプトやプログラムを実行することはできません(Execute)。
クラスとアクセス許可を組み合わせることにより、特定のユーザーがファイルまたはディレクトリにアクセスできる量を制御できます。
許可記号(Symbols)と番号(Numbers)の説明
ファイルのアクセス許可は、数値または記号で表されます。記号と数字の両方を使用して、ファイルとディレクトリのアクセス許可を変更できます。最も簡単な方法は数字を使用することですが、記号も理解する必要があります。それでは、最初にファイル権限の背後にある記号を見てみましょう。
ファイル許可記号(File Permission Symbols)
ターミナルで次のコマンドを入力すると、特定のディレクトリ内のすべてのコンテンツに対するアクセス許可を表示できます。
ls -l
cdコマンドを使用して、任意のディレクトリに移動できます。完全な初心者の方は、基本的なLinuxコマンド(basic Linux commands)に関する記事をご覧ください。
この例では、ディレクトリに他の2つのディレクトリと1つのファイルが含まれています。権限は、理解を容易にするためにトリプレットに分割できる(1+)9個の記号を使用して記述されています。Booksディレクトリの最初の権限セットを調べてみましょう。
drwxrwxr-x
読みやすくするために分割してみましょう。
d rwx rwx rx
最初の記号はdで、(d,)ディレクトリを表します。また、 Outline.docx(Outline.docx)ファイルの3番目のアクセス許可セットに示されているように、ファイルの場合はダッシュ記号にすることもできます。
次に、3つのグループのシンボルがあります。最初のグループは所有者のアクセス許可レベルを表し、2番目のグループはグループ(Group)クラス用であり、3番目のグループはその他を表します。
3つの記号の各セットは、読み取り、書き込み、実行の順に意味します。したがって、所有者には、(Owner)テスト(Test)ディレクトリ内にあるすべてのファイルとディレクトリの読み取り、書き込み、および実行の権限があります。視覚的な表現は次のとおりです。
r、w、またはxの代わりにダッシュ記号が表示されている場合は、権限が存在しないことを意味します。
ファイルのアクセス許可番号(File Permission Numbers)
ファイル権限の数値形式は単純です。本質的に、ファイル許可コードは3桁です。
- 1つ目は、ファイル所有者用です。
- 2つ目は、ファイルのグループを表します。
- 最後の桁は他のすべての人のためのものです。
数字の範囲は0〜7です。ここで、
- 4=読み取り。
- 2=書き込み。
- 1=実行します。
- 0=許可なし。
各クラスの許可桁は、許可の値を合計することによって決定されます。つまり、各クラスの各桁は、4、2、1、および0の合計になります。アクセス許可の完全なリストは次のとおりです。
- 0(0 + 0 + 0)=ユーザークラスには権限がありません。
- 1(0 + 0 + 1)=実行(Execute)権限のみ。
- 2(0 + 2 + 0)=書き込み(Write)権限のみ。
- 3(0 + 2 + 1)=書き込み(Write)および実行権限。
- 4(4 + 0 + 0)=読み取り(Read)権限のみ。
- 5(4 + 0 + 1)=読み取り(Read)および実行権限。
- 6(4 + 2 + 0)=読み取り(Read)および書き込み権限。
- 7(4 + 2 + 1)=すべての権限。
たとえば、644権限は、ファイル所有者が読み取りおよび書き込み権限を持っているのに対し、他の2つのクラスは読み取り権限しか持っていないことを意味します。数値形式を使用して権限を設定するには、基本的な計算のみが必要です。
許可777
おそらくすでにお察しのとおり、777権限は、3つのユーザークラスすべてに読み取り、書き込み、および実行の権限を与えます。つまり、システムにアクセスできる人なら誰でも、ファイルの読み取り、変更、および実行を行うことができます。すべてのユーザーを信頼し、セキュリティ違反について心配する必要がない場合にのみ使用してください。
Permission 777は便利なためよく使用されますが、慎重に使用する必要があります。実際、セキュリティリスクが大きすぎるため、絶対に使用しないことをお勧めします。権限のないユーザーがシステムを危険にさらしたり、たとえば、マルウェアを配布するようにWebサイトを変更したりする可能性があります。
代わりに許可755を与える必要があります。そうすれば、ファイル所有者であるあなたは特定のファイルまたはディレクトリに完全にアクセスでき、他のすべての人は読み取りと実行を行うことができますが、承認なしに変更を加えることはできません。
Chmodを使用した(Chmod)ファイル(File)パーミッションの変更
chmodコマンドを使用してファイルのパーミッションを変更できます。他の変数なしでこのコマンドを使用する最も基本的な方法は次のとおりです。
chmod777ファイル名(chmod 777 filename)
(Replace “)「 filename」をファイルの名前とそのパスに置き換えます。
ファイルのアクセス許可を変更する権限を持つユーザーは、rootアクセス権を持つユーザー、ファイル所有者、およびsudo権限を持つ他のユーザーのみであることに注意してください。
Linux File Permissions – What Is Chmod 777 and How to Use It
If you’re a new Linux user, you probably encountered the Chmod command at some point early on. Perhaps someone told you to “chmod 777” to move a file to a certain folder, and it worked! So what does the chmod command do and what do the numbers mean?
This article will discuss everything you need to know about Linux file permissions. It’s important to know this to understand the chmod command and the numbers that correspond to certain access levels. Whether you use Ubuntu, Fedora, or a more exotic Linux distro you should understand when it’s okay to set permissions to 777 using the CHMOD command and when you should use a different setting.
How Linux File Permissions Work
In Linux, the operating system determines who can access a certain file based on file permission, ownership, and attributes. The system allows you, the owner or admin, to enable access restrictions to various files and directories. You can improve the security of your system by giving access only to users and programs you trust.
Understanding User Classes
A specific user and a group own every single file and directory. This means there are three categories of users to which you can assign a certain level of access. These users are classified as follows:
You can see these groups visually in Ubuntu by right-clicking on any directory, selecting Properties, and going to the Permissions tab.
The Owner is the person with all the power. Usually, they have full access to every file and directory and can change the file permissions of other users as well.
The Group consists of a number of users that have a certain level of access to a file or directory given by the Owner. For example, a group of users can be excluded from modifying a file while being granted access to view that file.
The Others class simply represents guest users that don’t fall into the other two categories. By default, their level of access is usually restricted. It’s up to the Owner to determine what guests users can or can’t do.
Understanding File Permission Levels
As the Owner you can assign three levels of access to your files and directories:
- Read: It gives you limited access to a file or directory. All you can do is read the file or view the directory’s contents. You can’t edit files, and you can’t remove or add any new files to the directory.
- Write: It lets you read and edit files. If you assign this level of access to a directory, you can also remove or add files.
- Execute: It’s only important when running or executing files. For example, you can’t run a script or a program without permission to Execute.
By combining Classes and Permissions, you can control how much access a specific user has to a file or directory.
Permission Symbols and Numbers Explained
File permissions are represented numerically or symbolically. You can use both symbols and numbers to change file and directory permissions. The easiest method is with numbers, but you should also understand the symbols. So let’s take a look at the symbols behind file permissions first.
File Permission Symbols
You can view your permissions for all content in a certain directory if you type the following command in the terminal:
ls -l
You can navigate to any directory by using the cd command. If you’re a complete beginner, check out our article on basic Linux commands.
In our example, the directory contains two other directories and one file. The permissions are written using (1+) 9 symbols that can be split into triplets for an easier understanding. Let’s examine the first set of permissions for the Books directory:
drwxrwxr-x
Let’s split it for readability:
d rwx rwx r-x
The first symbol is d, and it stands for directory. It can also be a dash symbol if it’s a file, as you can see in the third set of permissions for the Outline.docx file.
Next, we have three groups of symbols. The first group represents the Owner’s permission levels, the second group is for the Group class, and the third represents Others.
Each set of 3 symbols means read, write, execute – in that order. So the Owner has permission to read, write, and execute all files and directories found inside the Test directory. Here’s a visual representation:
When you see a dash symbol instead of r, w, or x, it means that permission doesn’t exist.
File Permission Numbers
The numeric format for file permissions is simple. In essence, the file permission codes have three digits:
- The first one is for the file owner.
- The second one represents the file’s group.
- The last digit is for everyone else.
The digits range from 0 to 7 where:
- 4 = read.
- 2 = write.
- 1 = execute.
- 0 = no permission.
The permission digit of each class is determined by summing up the values of the permissions. In other words, each digit for each class can be the sum of 4, 2, 1, and 0. Here’s a full list of permissions:
- 0 (0 + 0 + 0) = The user class doesn’t have any permissions.
- 1 (0 + 0 + 1) = Execute permission only.
- 2 (0 + 2 + 0) = Write permission only.
- 3 (0 + 2 + 1) = Write and execute permissions.
- 4 (4 + 0 + 0) = Read permission only.
- 5 (4 + 0 + 1) = Read and execute permissions.
- 6 (4 + 2 + 0) = Read and write permissions.
- 7 (4 + 2 + 1) = All permissions.
For example, a 644 permission means that the file owner has read and write permissions, while the other two classes have only read permission. Setting permissions by using the number format requires only basic math.
Permission 777
As you’ve probably already guessed, a 777 permission gives read, write, and execute permissions to all three user classes. In other words, anyone who has access to your system can read, modify, and execute files. Use it only when you trust all your users and don’t need to worry about security breaches.
Permission 777 is used often because it’s convenient, but you should use it sparingly. In fact, we recommend never using it because the security risks are too great. An unauthorized user could compromise your system or, for example, change your website to distribute malware.
You should give permission 755 instead. That way, you as the file owner have full access to a certain file or directory, while everyone else can read and execute, but not make any modifications without your approval.
Modifying File Permissions with Chmod
You can change file permission with the help of the chmod command. The most basic way of using this command without any other variables is as follows:
chmod 777 filename
Replace “filename” with the name of the file and its path.
Keep in mind that the only users with the power to change file permissions are those with root access, the file owners, and anyone else with sudo powers.