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」というエラーが発生す …

Let's Encrypt

Let’s Encrypt でワイルドカードを使う

手持ちの CentOS 7 に入れてある certbot パッケージが バージョン 0.22.0 になり、Let’s Encrypt のワイルドカードに対応しましたので試してみました。 目 …

Linux

Ubuntu ではユーザー名に大文字が使えません(デフォルトでは)

Ubuntu で ユーザーを追加するには adduser というコマンドを使います。 例えば、”foo” という名前のユーザーを追加するには、以下のコマンドになります。 $ a …

docker

docker run コマンドのパターン覚書

docker run コマンドのパターン覚書です。

docker

CentOS 上の Docker にウェブサーバーを入れて80番以外のポートで公開することができない問題【未解決】

CentOS 7 上の Dockerコンテナ にウェブサーバーを入れた場合、80番以外のポートで公開することはできないようです。 例えば、 まず、firewall-cmd コマンドで 8080番ポート …