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

ssh-agent の代わりに gpg-agent を使う手順

ssh-agent の代わりに gpg-agent を使う手順について説明します。

CentOS

CentOS 8 を CentOS Stream に移行するコマンド

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 2021年5月:移行作業を行いました4. 参考 1. 突然の CentOS 8 終了宣言 Cent …

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」というエラーが表示される場合の対応についてです。

Linux

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

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

CentOS

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

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