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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

CentOS

CentOS 8 で Snap から certbot パッケージをインストールする

CentOS 8 で Snap から certbot パッケージをインストールする方法について説明します。

Linux

「よく使うコマンドランキングの表示」を1つのコマンドにする

目次1. はじめに2. 入力が面倒なコマンドを新たなコマンド(今回は関数)にする3. 作成した関数の実行4. コマンドの引数も合わせて調べたい5. 履歴のフォーマットが異なる場合6. まとめ 1. は …

SELinux

Webサーバーがサイトの構成ファイルを上書きできない問題に対応する(SELinuxが原因の場合)

目次1. はじめに2. 前提3. CentOS 7 の SELinux4. 対応手順5. おわりに参考 1. はじめに Webサイトによっては、そのWebサイトを構成しているファイルを自分で更新する場 …

Linux

ラベル行のある複数ファイルを1ファイルにマージするコマンド

ラベル行のある複数ファイルをマージするコマンドを紹介します。

Linux

Ubuntu 18.04 (WSL) で curl がインストールエラーになったので対応しました

Ubuntu 18.04 LTS (WSL) の環境で curl コマンドをインストールしようとしたところ、エラーになりました。 この時の対応方法を説明します。 目次1. 状況2. 対応手順参考 1. …