Linux でファイル権限を変更する方法

Suraj Joshi 2023年1月30日
  1. Linux ファイルのパーミッションを表示する
  2. chmod コマンドでファイル/ディレクトリのパーミッションを変更する
Linux でファイル権限を変更する方法

Linux は複数のユーザを持つことができる OS です。そのため、Linux ではファイルへのアクセス権限を管理する必要があります。あるユーザがファイルへのアクセス権限を持っていない場合、Permission denied error が表示されることがあります。Linux では、chmod コマンドラインユーティリティを用いてファイルのアクセス権限を変更することができます。

Linux ファイルのパーミッションを表示する

現在の作業ディレクトリ内のすべてのファイルとディレクトリのパーミッションを表示します。には、ls -l コマンドを使用します。

ls -l

出力:

-rw-rw-r-- 1 zeppy zeppy 123 Oct  4 20:47 1.sh
-rw-rw-r-- 1 zeppy zeppy  46 Sep 30 20:36 file.txt

各ファイルの先頭にある部分は、その場所にある特定のファイルのパーミッションを表しています。出力では、-rw-rw-r-- はファイルのパーミッションを表しています。

  1. 先頭の - は、その内容がファイルであることを表します。
  2. rw-user のパーミッションを表します。
  3. rw-user-group のパーミッションを表します。
  4. r--others のパーミッションを表します。

r は読み込みパーミッション、w は書き込みパーミッション、x は実行パーミッション、- はパーミッションなしを表します。

出力が示すように、usergroup は読み込みと書き込みのパーミッションのみを持ち、実行のパーミッションは持っていないが、others はカレントディレクトリ内のファイルの両方に対して読み込みのパーミッションのみを持っています。

chmod コマンドでファイル/ディレクトリのパーミッションを変更する

構文

chmod permissions filename

ここで、permissions は設定したいパーミッションを表し、filename はパーミッションを設定したいファイルの名前を表します。

パーミッションは絶対モードでもシンボリックモードでも表現できます。

例:filename を用いてファイルのパーミッションを設定する。chmod コマンドを使ってファイルのパーミッションを設定する

chmod 760 file.txt

ファイル file.txt に対して、owner または user に読み込み、書き込み、実行のパーミッションを設定し、group に読み込み、書き込みのパーミッションを設定し、others にはパーミッションを設定しません。ここでは、パーミッションは絶対モードを用いて表現されます。

chmod u=rwx,g=rw,o=--- file.txt

シンボリックモードを用いて、読み書きと実行のパーミッションを owner または user に設定し、読み書きのパーミッションを group に設定し、others にはパーミッションを与えないようにします。

例:シンボリックモードを用いて chmod コマンドを用いてディレクトリのパーミッションを設定する

ディレクトリ内のすべてのファイルのパーミッションを設定するには、chmod コマンドに -R または --recursive オプションを付ける。

chmod -R 760 testdir

これは絶対モードを用いて、ディレクトリ testdir に対して、読み書きと実行のパーミッションを owner または user に、読み書きのパーミッションを group に、そして others にはパーミッションを設定しないようにします。

chmod -R u=rwx,g=rw,o=--- testdir

シンボリックモードを用いて、ディレクトリ testdir に対して、owner または user の読み取り、書き込み、実行のパーミッションを設定し、group の読み取りと書き込みのパーミッションを設定し、others のパーミッションを設定しないようにします。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Linux File