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--
はファイルのパーミッションを表しています。
- 先頭の
-
は、その内容がファイルであることを表します。 rw-
はuser
のパーミッションを表します。rw-
はuser-group
のパーミッションを表します。r--
はothers
のパーミッションを表します。
r は読み込みパーミッション、w
は書き込みパーミッション、x
は実行パーミッション、-
はパーミッションなしを表します。
出力が示すように、user
と group
は読み込みと書き込みのパーミッションのみを持ち、実行のパーミッションは持っていないが、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 is a backend software engineer at Matrice.ai.
LinkedIn