Linux

umask によって適用されるパーミッションの確認ページを作成しました

投稿日:2019年1月16日 更新日:

Linux (や Mac) では、ファイルやディレクトリに「パーミッション」を設定することでアクセスを制限します。

パーミッションは、「所有者」「所有グループ」「その他」の3者に対して、

ファイルなら、

  • 読み込み (r)
  • 書き込み (w)
  • 実行 (x)

ディレクトリなら

  • ディレクトリに対して ls できる (r)
  • ディレクトリの中でファイルを作成・消去できる (w)
  • ディレクトリの中のファイルにアクセスできる (x)

をそれぞれ設定することができます。

8進数で表現することも多く、

  • r = 4 (2進数なら100)
  • w = 2 (2進数なら010)
  • x = 1 (2進数なら001)

という対応になっており、r, w, x のそれぞれの権限があるかないかの組み合わせを、0 (2進数なら000) から 7 (2進数なら111) までの数値で表現することができます。

そして、新規にファイルやディレクトリを作成した時に、どのパーミッションがセットされるかを決めるためのコマンドが umask です(Bash が用意しているコマンドです)。

ただ、その設定方法が少し変わっていて、「どのパーミッションを無くすか(マスクするか)」をセットします。

Linux でファイルやディレクトリを新規作成した場合、

  • ファイルなら 666
  • ディレクトリなら 777

から、umask コマンドで設定された値(8進数)を引いた値がパーミッションとしてセットされます。

例えば、umask コマンドで 022 が設定されている場合なら、

  • ファイルのパーミッション: 666 – 022 = 644 (rw-r--r--)
  • ディレクトリのパーミッション: 777 – 022 = 755 (rw-r-xr-x)

となります。

umask の引数には、8進数だけでなく a+rw といったシンボルで指定することもできます。

そしてやっと本題に入りますが、この umask の動作が感覚的に分かりづらい方のために、umask に設定した値によって、デフォルトのパーミッションがどう変わるのか確認するためのページを用意しました。是非、参考にしてください。

参考

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

Linux

【Ubuntu】pip install –upgrade pip コマンドを実行すると、その後、ImportError: cannot import name main というエラーが発生する場合の対応方法

「pip install –upgrade pip」コマンドを実行した後、pip コマンドを実行すると「ImportError: cannot import name main」というエラーが発生す …

Linux

ドキュメントルートに chmod コマンドを実行する際、指定すると便利なモード引数

目次1. はじめに2. chmod に関する前提知識3. ディレクトリは rwxr-xr-x ファイルは rw-r–r– にする解説4. ディレクトリは rwxrwxr-x ファイルは rw-rw …

Linux

コマンドに対してデフォルトで指定されているオプションを調べる

Linux などの UNIX系OS環境では、コマンドを入力して実行する機会が多いと思いますが、それぞれの環境によって、いくつかのコマンドオプションがデフォルトで指定されている場合があります。 ※ ログ …

xdebug

Ubuntu 16.04.3 LTS + PHP 7.2 の環境に Xdebug をインストールする

2018年1月29日に、Xdebug 2.6.0 (stable版) がリリースされました。 Homestead にもまた Xdebug がデフォルトでインストールされるようになるのではないかと思いま …

CentOS

CentOS Stream release 8 で「Configuration: OptionBinding with id “failovermethod” does not exist」というエラーが表示される

CentOS Stream release 8 で「Configuration: OptionBinding with id “failovermethod” does not exist」というエラーが表示される場合の対応についてです。