はじめに
新しいファイルまたはディレクトリを作成するとき、Linuxはデフォルトの権限セットを適用します。 umask
コマンドを使用すると、これらのデフォルトの権限を変更できます。
このチュートリアルでは、umaskとは何か、どのように機能するか、およびumaskを使用して個々のユーザーまたはグループのファイルとディレクトリのアクセス許可を設定する方法を学習します。
前提条件
- Linuxベースのシステム(Ubuntu、CentOS、Debianなど)
- sudo権限を持つユーザーアカウント
- コマンド端末へのアクセス
Umaskの概要
umaskという用語 2つのことを指します:
1. Linux umask
指図。 umask
(ユーザーファイル作成モード)は、新しく作成されたファイルとフォルダーのデフォルトのアクセス許可を設定できるLinuxコマンドです。
2.ユーザー定義の権限「マスク」。ユーザーは、権限マスクを使用して権限を制限する方法を選択できます 。パーミッションマスクは、デフォルトのシステムパーミッションと相互作用してそれらを変更します。 umask
このマスクを適用するには、コマンドを使用します。
Umaskはどのように機能しますか?
umask
このコマンドは、デフォルトのLinuxファイルとフォルダーのアクセス許可に影響を与えることで機能します。
Linuxのすべてのファイルとフォルダーに対するアクセス許可には、次の3つのカテゴリがあります。
- ユーザー: 個々のユーザーの権限を定義します。デフォルトでは、ファイルまたはフォルダーを作成するユーザーが所有者として設定されます。
- グループ: 同じレベルのアクセスを共有するユーザーのグループの権限を定義します。
- その他: 前の2つのカテゴリに含まれていないすべての人の権限を定義します。
次のコマンドを使用して、ホームフォルダのアクセス許可を確認します。
ls -l
出力の各行は、権限の詳細を示す10文字の文字列で始まります。強調表示されたエントリを分類すると、この文字列は次の要素で構成されます。
-
d
:ファイルタイプ(ディレクトリ)を示します。 -
rwx
:ユーザー権限(読み取り、書き込み、実行)を示します。 -
r-x
:グループ権限(読み取りと実行)を示します。 -
r-x
:他の権限(読み取りと実行)を示します。
umaskコマンド構文
umask
を使用する 追加のコマンドオプションを指定しないコマンドは、現在のマスクを出力として返します。
umask
コマンドは次の構文を使用します:
umask [-p] [-S] [mask]
場所:
-
[mask]
:適用する新しい権限マスク。デフォルトでは、マスクは数値(8進数)として表示されます。 -
[-S]
:現在のマスクをシンボリック値として表示します。 -
[-p]
:現在のマスクをumask
と一緒に表示します コマンド。将来の入力としてコピーして貼り付けることができます。
記号および数値のumask値
上記の例で述べたように、 umask 数値(8進数)または記号値として表示できます。
マスクには、次の数値と対応する記号値を含めることができます。
0 | --- | 許可なし |
1 | --x | 実行 |
2 | -w- | 書き込み |
3 | -wx | 書き込みと実行 |
4 | r-- | 読む |
5 | r-x | 読み取りと実行 |
6 | rw- | 読み取りと書き込み |
7 | rwx | 読み取り、書き込み、実行 |
Umask値の計算方法
Linuxは、次のデフォルトのマスクと権限の値を使用します。
- システムのデフォルトの権限値は777(
rwxrwxrwx
)フォルダおよび666(rw-rw-rw-
)ファイル用。 - root以外のユーザーのデフォルトのマスクは002で、フォルダーのアクセス許可を775に変更します(
rwxrwxr-x
)、および664へのファイル権限(rw-rw-r--
。 - rootユーザーのデフォルトマスクは022で、フォルダーのアクセス許可を755に変更します(
rwxr-xr-x
)、および644へのファイル権限(rw-r--r--
。
これは、最終的な許可値が umaskを差し引いた結果であることを示しています。 デフォルトの権限値(777または666)からの値。
たとえば、フォルダのアクセス許可の値を777(すべての読み取り、書き込み、実行)から444(すべての読み取り)に変更する場合は、 umaskを適用する必要があります。 333の値、以降:
777 - 444 = 333
デフォルトのUmask値を設定および更新する方法
次の構文を使用して、新しい umask
を適用します 値:
umask [mask]
場所:
-
[mask]
:シンボリック値または数値として適用するマスク。
シンボリックUmask値の設定
新しいumaskを設定します 次の構文でシンボリック値を使用することによる値:
umask u=#,g=#,o=#
場所:
-
u
:ユーザー権限を示します。 -
g
:グループの権限を示します。 -
o
:他の権限を示します。 -
#
:上記の表に詳細が示されているように、適用するシンボリックパーミッション値。
注: シンボリックマスク値を設定するときは、コマの後にスペースを使用しないでください。
使用できる他の演算子もあります:
-
=
:指定されたファイルのアクセス許可を作成し、指定されていないアクセス許可を禁止します。 -
+
:指定された権限を作成しますが、指定されていない権限は変更しません。 -
-
:指定された権限を禁止しますが、指定されていない権限は変更しません。
数値Umask値の設定
必要なumaskを計算したら 数値の場合は、次を使用して設定します:
umask [mask]
場所:
-
[mask]
:適用するマスクの数値。
umaskとchmodの違い
Linuxのchmodコマンドは、 umask
と同じように機能します。 指図。これも、ファイルとフォルダーのアクセス許可を定義するために使用されます。
umask
の違い およびchmod
そのumask
chmod
の間に、デフォルトの権限を変更し、新しく作成されたすべてのファイルとフォルダの権限を変更します すでに存在するファイルとフォルダの権限を設定します。