Linux での umask の使用に関する詳細な説明

Linux での umask の使用に関する詳細な説明

私は最近 Linux を学び始めました。Ma Ge の umask に関する Linux コースを読んだ後、umask についての理解を深め、umask についてよくわからないブロガーの役に立ちたいと思い、このブログを書きました。

1 umaskとは何か

システムにログインしてファイルを作成すると、デフォルトの権限が設定されます。では、この権限はどこから来るのでしょうか?これが umask の機能です。 umask は、ユーザーがファイルまたはディレクトリを作成するためのデフォルトの権限を設定するために使用されます。umask は権限の「補数」を設定しますが、ファイルの権限コードを設定するには chmod を使用することが多いです。 umask 値は通常、/etc/profile、HOME/.bashprofile、または HOME/.profile に設定されます。

2 umask は何に使用されますか?

デフォルトの umask 値は 022 です (umask コマンドを使用して表示できます)。このとき、作成するファイルのデフォルトのパーミッションは 644 (6-0、6-2、6-2)、作成するディレクトリのデフォルトのパーミッションは 755 (7-0、7-2、7-2) です。ls -l で確認できます。これで、デフォルトのパーミッションを制御するという umask の目的がわかったはずです。

[root@bogon テスト]# id
uid=0(ルート) gid=0(ルート) グループ=0(ルート) コンテキスト=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@bogon テスト]# umask
0022
[root@bogon test]# touch a.txt
[root@bogonテスト]# ls -l
合計 0
-rw-r--r--. 1 ルート ルート 0 7月 3 00:40 a.txt
[root@bogon test]# mkdir b
[root@bogonテスト]# ls -l
合計 0
-rw-r--r--. 1 ルート ルート 0 7月 3 00:40 a.txt
drwxr-xr-x. 2 ルート ルート 6 7月 3 00:41 b

上記のように、root の umask は 022 (最初の 0 は特別な権限ビットを表しますが、ここでは考慮されません)、作成されたファイルのデフォルトの権限は 644、作成されたディレクトリのデフォルトの権限は 755 です。

3 基本的な権限の説明

umask の使用方法を説明する前に、ファイルの基本的な権限について説明する必要があります。

Linux のファイル権限

rx
書類ファイルの内容を表示できますファイルを変更できます実行中のプログラムとしてファイルを起動することができます
目次ls を使用してディレクトリ内のファイル名を表示できます。ディレクトリ内のファイルを作成または削除できます (w 権限だけでは作成できません。x 権限が必要です)このディレクトリに入るにはcdを使用し、ディレクトリ内のファイルのメタデータ情報を表示するにはls -lを使用します。

4 umask計算権限

ファイルとディレクトリの場合、最大の権限は実際には 777 です。ただし、実行権限はファイルに対しては非常に恐ろしいものですが、ディレクトリに対しては基本的な権限です。したがって、ディレクトリのデフォルトの最大権限は 777 であり、ファイルのデフォルトの最大権限は 666 です。

ルートユーザーのumask=022の場合、権限777のバイナリコードは(111)(111)(111)、権限022のバイナリコードは(000)(010)(010)です。

  • すべての権限バイナリ1: この権限を表す
  • umask バイナリ 1: は、この権限を削除することを意味します。元々権限を持っていたかどうかに関係なく、最終的にはこの権限はなくなります。
  • umask のバイナリ値は 0 です。これは、対応するビットの権限を気にしないことを意味します。権限がある場合は、権限があります。権限がない場合は、権限がありません。影響はありません。

umask 002 のファイルのデフォルトの権限を計算する方法

所有者所有者オーナー xグループグループグループ x他の他のその他x
すべての権限 777 1 1 1 1 1 1 1 1 1
umaskマスク002 0 0 0 0 1 0 0 1 0
計算値1 1 1 1 0 1 1 0 1

umask 002 のディレクトリのデフォルトの権限を計算する方法

所有者所有者オーナー xグループグループグループ x他の他のその他x
すべての権限 666 1 1 0 1 1 0 1 1 0
umaskマスク002 0 0 0 0 1 0 0 1 0
計算値1 1 0 1 0 0 1 0 0

umask 023 のディレクトリのデフォルトの権限を計算する方法

所有者所有者オーナー xグループグループグループ x他の他のその他x
すべての権限 777 1 1 1 1 1 1 1 1 1
umaskマスク023 0 0 0 0 1 0 0 1 1
計算値1 1 1 1 0 1 1 0 0

umask 023 でファイルのデフォルト権限を計算する方法

所有者所有者オーナー xグループグループグループ x他の他のその他x
すべての権限 666 1 1 0 1 1 0 1 1 0
umaskマスク023 0 0 0 0 1 0 0 1 1
計算値1 1 0 1 0 0 1 0 0

上記はumaskの通常の計算処理ですが、面倒すぎます。素早く計算するために、次の簡単な方法を使用します。

  1. ディレクトリの場合は、最終結果を取得するには 777-umask を使用します。
  2. ファイルの場合は、最初に 666-umask を使用します。
    1. 対応する位置が偶数の場合: 最終的な権限はこの偶数値になります。
    2. 上記の対応する数字が奇数の場合、対応する位置は +1 になります。

上記の方法は計算に非常に便利です。奇数になったときになぜ +1 を加算する必要があるのでしょうか?

ファイルの最大権限は 666 で、すべて偶数です。奇数を取得した場合、umask が奇数であることを意味します。読み取り数は 4、書き込み数は 2 で、すべて偶数であるため、実行権限があることを意味します。

umask=023 を例にとると、他のユーザー権限を計算すると、6-3=3 となり、6 は読み取りと書き込み、3 は書き込みと実行となります。実際には、書き込み権限は読み取り権限から読み取り権限を減算することで取得する必要があり、これは実行権限を減算することと同じです。したがって、結果は 1 増加します。

5 umaskの変更

umask の変更には、一時的と永続的の 2 種類があります。

一時的な変更:

[root@bogon テスト]# umask 023
[root@bogon テスト]# umask
0023
[root@bogon テスト]#

永久的な変更:

次のファイルを編集して、umask=022 を追加できます。

対話型ログイン構成は次のように有効になります。

/etc/profile < /etc/profile.d/*.sh < ~/.bash_profile < ~/.bashrc </etc/bashrc [/etc/bashrc の設定は最も効果的で、以前の設定を上書きできます]

非対話型ログイン構成が有効になります:

~/.bashrc < /etc/bashrc < /etc/profile.d/*.sh

6 よく使われるumask

[root@bogon テスト]# umask 002
[root@bogon テスト]# umask
0002
[root@bogon テスト]# umask 022
[root@bogon テスト]# umask
0022

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 新しい Linux ファイル権限設定における umask の詳細な理解
  • Linuxにおけるumaskコマンドの使用原理と計算方法の詳しい解説

<<:  Vueタブとキャッシュページを切り替えるいくつかの方法

>>:  MySQL 制約の種類と例

推薦する

Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

一時テーブルとメモリテーブルメモリ テーブルとは、メモリ エンジンを使用するテーブルを指します。テー...

Sqoop エクスポート マップ 100% 削減 0% さまざまな理由と解決策でスタック

私はこのようなバグを典型的な「ハムレット」バグと呼んでいます。これは、「エラーメッセージは同じだが、...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

href をクリックした後にページがジャンプしないようにするための空のリンクの正しい書き方 # 問題

リンクを使用する必要がある場合もありますが、リンクする必要はありません。onclick イベントを処...

display または visibility を通じて HTML 要素を表示または非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...

Jenkinsはマイクロサービスをパッケージ化してDockerイメージを構築し、実行します。

目次環境の準備始める1. GitLabリモートリポジトリがマイクロサービスプロジェクトを作成する2....

LDAP ユーザー認証を使用するように Linux を構成する方法

私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...

Centos7 に Zabbix3.0 をインストールするための非常に詳細な手順

序文最近、同社の業務の一部がコンピュータルームに移転し、ホストリソースの監視と管理をより便利に行うた...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

HTML と CSS を使用して絵文字付きのコメント ボックスを作成する方法のチュートリアル

絵文字付きの HTML コメント ボックス。絵文字は Json データを通じて読み込まれ、好みに応じ...

Windows Server 2008 のサーバー パフォーマンス監視に関するチュートリアル

次に、ログ管理、ログのアーカイブ、ログのトラブルシューティング、イベントの転送と収集のためのコンピュ...

CSSはリモコンのボタンを模倣する

注: このデモはミニプログラム環境でテストされており、他の h5 および pc Web ページにも適...

Tomcat のパフォーマンス最適化方法の簡単な概要

Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...

Linux サーバー上の hosts ファイル構成の詳細な説明

Linux サーバーのホスト ファイルの構成hosts ファイルは、Linux システム内の IP ...