新しい Linux ファイル権限設定における umask の詳細な理解

新しい Linux ファイル権限設定における umask の詳細な理解

序文

起源は質問 1 です: umask が 022 に設定されている場合、作成するファイルのデフォルトの権限は何ですか?

これは、私が尋ねられた別の質問 2 を思い出させます: 777 はどのような権限を表していますか?

ユーザーグループの説明

-rwxrw-r--1 ルート ルート 1213 2月 2 09:39 abc
  • 最初の文字はファイル (-)、ディレクトリ (d)、またはリンク (l) を表します。
  • 残りの文字は3つのグループ(rwx)、読み取り(r)、書き込み(w)、実行(x)にグループ化されます。
  • 最初のグループrwx: ファイル所有者の権限は読み取り、書き込み、実行です
  • 2番目のグループrw-:ファイル所有者と同じグループのユーザーは読み取りと書き込みの権限を持ちますが、実行はできません。
  • 3番目のグループr--: ファイル所有者と同じグループに属していない他のユーザーの権限は読み取り権限ですが、書き込み権限と実行権限はありません。
  • これは、r=4、w=2、x=1 のようにデジタルで表現することもできます。rwx は 3 つの 2 進数を表すため、これらの数値は正確に計算できます。

デジタル著作権の説明

質問 2 に戻ると、777 は 3 桁の 8 進数で、111111111 に相当します。つまり、3 つのグループすべてが読み取り可能、書き込み可能、​​実行可能であることを意味します。次のように使用できます。

chmod 755 abc //chmod はファイル abc の権限を、ファイル所有者が読み取り、書き込み、実行できるように変更し、同じグループおよび他のグループのユーザーが読み取り、実行できるように変更します。

umaskの説明

umask は、デフォルトの権限を表す権限マスクです。ファイルの最大デフォルト値 666 とフォルダーの 777 に基づいて、ユーザーが作成した新しいオブジェクトのデフォルトの権限を計算するために使用されます。

たとえば、質問1では、ファイルを作成するためのデフォルトの権限は666-022=644で、これは-rw-r--r--です。

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
[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 です。

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

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

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux での umask の使用に関する詳細な説明
  • Linuxにおけるumaskコマンドの使用原理と計算方法の詳しい解説

<<:  MySQL 5.7 における部分テーブルのデュアルマスター同期の実装プロセスの詳細な説明

>>:  CocosCreator でレイヤー管理に常駐ノードを使用する方法

推薦する

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

WeChatアプレット開発の章:落とし穴の記録

最近、会社初のミニプログラムの開発に参加しました。開発経験は基本的にWebViewをベースとしたハイ...

Dockerイメージが消える問題を解決する

1. 50と93では鏡像が消える [root@h50 /]# df -h ファイルシステムの使用済み...

16 の XHTML1.0 と HTML の互換性ガイドラインの概要

1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...

MySQL 最適化チュートリアル: 大規模なページングクエリ

目次背景制限の最適化最適化方法1. カバーインデックスを使用する2. サブクエリの最適化3. 遅延連...

CSS リセットスタイルリセットの実装例

はじめに: すべてのブラウザには、「ユーザー エージェント スタイル シート」と呼ばれる、すべてのペ...

MySQLデータファイルの保存場所を表示する方法

次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...

MySQL ログイン エラーを解決する: 'ユーザー 'root'@'localhost' へのアクセスが拒否されました

まず、コマンドラインまたはワークベンチを使用して MySQL にログインできず、「ユーザー '...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...

IDEAでVUEプロジェクトをデバッグするための詳細な手順

js コードをデバッグするには、コード内にデバッガーを記述するか、Chrome で毎回ブレークポイン...

Centos7.3 での mysql5.7 のインストールと設定のチュートリアル

この記事では、MySQL 5.7のインストールと設定のチュートリアルを参考までに紹介します。具体的な...

Vueは小さなフォーム検証機能を実装します

この記事では、フォーム検証を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

HTMLからReactを実装する方法を教えます

ReactとはReact は、効率的で高速なユーザー インターフェイスを構築するためのシンプルな J...

Ubuntu 18.04 に phpMyAdmin をインストールするための詳細なチュートリアル

Ubuntu 18.04 上の Apache で動作するように phpMyAdmin をインストール...

IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル

1. Dockerfileを書く(1)プロジェクト名を右クリックして新しいテキストファイルを作成し、...