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

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

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 のパーミッションを設定しないようにする。

関連記事 - Linux File

  • Linux ターミナルでファイルやディレクトリを削除する方法
  • comments powered by Disqus