LinuxおよびUnixオペレーティングシステムでは、すべての新しいファイルはデフォルトの権限セットで作成されます。 umask
ユーティリティを使用すると、ファイルモード作成マスクを表示または設定できます。これにより、新しく作成されたファイルまたはディレクトリのアクセス許可ビットが決定されます。
これは、mkdir、touch、tee、および新しいファイルとディレクトリを作成するその他のコマンドによって使用されます。
Linuxのアクセス許可#
先に進む前に、Linuxのアクセス許可モデルについて簡単に説明しましょう。
Linuxでは、各ファイルは所有者とグループに関連付けられ、3つの異なるクラスのユーザーに対するアクセス権が割り当てられます。
- ファイルの所有者。
- グループメンバー。
- 他のみんな。
各クラスに適用されるアクセス許可の種類は3つあります。
- 読み取り許可。
- 書き込み許可。
- 実行権限。
この概念により、ファイルの読み取り、ファイルへの書き込み、またはファイルの実行を許可するユーザーを指定できます。
ファイルのアクセス許可を表示するには、ls
を使用します コマンド:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname
|[-][-][-] [------] [---]
| | | | | |
| | | | | +-----------> Group
| | | | +-------------------> Owner
| | | +----------------------------> Others Permissions
| | +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type
最初の文字は、通常のファイル(-
)のファイルタイプを表します。 )、ディレクトリ(d
)、シンボリックリンク(l
)、またはその他の特殊なタイプのファイル。
次の9文字は権限を表し、それぞれ3文字の3セットです。最初のセットには所有者の権限が表示され、2番目のセットにはグループの権限が表示され、最後のセットには他のすべてのユーザーの権限が表示されます。
文字r
8進数の値が4
読み取りの略で、w
8進数の値が2
書き込みの場合、x
8進数の値が1
実行権限の場合、および(-
)0
の8進数値 権限なし。
他にも3つの特別なファイルパーミッションタイプがあります:setuid
、setgid,
およびSticky Bit
。
上記の例では(rwxr-xr-x
)は、所有者が読み取り、書き込み、および実行の権限(rwx
)を持っていることを意味します )、グループおよびその他のユーザーには、読み取りおよび実行のアクセス許可があります。
数値表記を使用してファイルのアクセス許可を表すと、755
という数字になります。 :
- 所有者:
rwx
=4+2+1 = 7
- グループ:
r-x
=4+0+1 = 5
- その他:
r-x
=4+0+1 = 5
数値表記で表される場合、権限は3桁または4桁の8進数(0〜7)にすることができます。最初の桁は特別なアクセス許可を表し、省略されている場合は、ファイルに特別なアクセス許可が設定されていないことを意味します。この例では、755
0755
と同じです 。最初の桁は4
の組み合わせにすることができます setuid
の場合 、2
setgid
の場合 、および1
Sticky Bit
の場合 。
chmod
を使用してファイルのアクセス許可を変更できます chown
を使用したコマンドと所有権 コマンド。
umaskについて#
デフォルトでは、Linuxシステムでは、デフォルトの作成権限は666
です。 ファイルの場合、ユーザー、グループ、その他、および777
に読み取りおよび書き込み権限を付与します。 ディレクトリの場合。これは、ユーザー、グループなどに対する読み取り、書き込み、および実行のアクセス許可を意味します。 Linuxでは、実行権限でファイルを作成することはできません。
デフォルトの作成権限は、umask
を使用して変更できます ユーティリティ。
umask
現在のシェル環境にのみ影響します。ほとんどのLinuxディストリビューションでは、デフォルトのシステム全体のumask値がpam_umask.so
に設定されています。 または/etc/profile
ファイル。
ユーザーごとに異なる値を指定する場合は、~/.bashrc
などのユーザーのシェル構成ファイルを編集します。 または~/.zshrc
。現在のセッションを変更することもできますumask
umask
を実行することによる値 希望の値が続きます。
現在のマスク値を表示するには、「umask
」と入力するだけです。 引数なし:
umask
出力には
が含まれます022
umask
値には、しない許可ビットが含まれます 新しく作成されたファイルとディレクトリに設定されます。
すでに述べたように、ファイルのデフォルトの作成権限は666
です。 およびディレクトリの場合777
。新しいファイルの許可ビットを計算するには、デフォルト値からumask値を減算します。
たとえば、umask 022
の方法を計算するには 新しく作成されたファイルとディレクトリに影響します。次を使用してください:
- ファイル:
666 - 022 = 644
。所有者はファイルを読み取って変更できます。グループなどはファイルのみを読み取ることができます。 - ディレクトリ:
777 - 022 = 755
。所有者はcd
できます ディレクトリに移動し、ディレクトリ内のファイルを一覧表示、読み取り、変更、作成、または削除します。グループなどはcd
できます ディレクトリに移動し、ファイルを一覧表示して読み取ります。
-S
を使用して、マスク値を記号表記で表示することもできます。 オプション:
umask -S
u=rwx,g=rx,o=rx
数値表記とは異なり、記号表記の値には、新しく作成されたファイルとディレクトリに設定される許可ビットが含まれています。
マスク値の設定#
ファイル作成マスクは、8進表記または記号表記を使用して設定できます。変更を永続的にするには、新しいumask
を設定します /etc/profile
のようなグローバル構成ファイルの値 すべてのユーザーに影響するファイル、または~/.profile
などのユーザーのシェル構成ファイル 、~/.bashrc
または~/.zshrc
、これはユーザーにのみ影響します。ユーザーファイルはグローバルファイルよりも優先されます。
umask
に変更を加える前 値、新しい値が潜在的なセキュリティリスクをもたらさないことを確認してください。 022
よりも制限の少ない値 細心の注意を払って使用する必要があります。たとえば、umask 000
誰もが新しく作成されたすべてのファイルに対する読み取り、書き込み、および実行のアクセス許可を持っていることを意味します。
他の人がcd
できないように、新しく作成されたファイルとディレクトリに対してより制限的な権限を設定したいとします。 ディレクトリに移動し、ファイルを読み取ります。必要な権限は750
です ディレクトリおよび640
ファイル用。
umask
を計算するには 値を指定するには、デフォルトの権限から必要な権限を差し引くだけです。
Umask値:777-750 = 027
目的のumask
数値表記で表される値は027
です。 。
システム全体で新しい値を永続的に設定するには、/etc/profile
を開きます テキストエディタでファイルする:
sudo nano /etc/profile
ファイルの先頭に次の行を変更または追加します。
/ etc / profileumask 027
変更を有効にするには、次のsource
を実行します コマンドまたはログアウトしてログイン:
source /etc/profile
新しい設定を確認するために、mkdir
を使用して1つの新しいファイルとディレクトリを作成します およびtouch
:
mkdir newdir
touch newfile
ls
を使用して権限を確認する場合 コマンドを実行すると、新しいファイルに640
が含まれていることがわかります。 および新しいディレクトリ750
必要に応じて権限:
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir
-rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
ファイル作成マスクを設定する別の方法は、記号表記を使用することです。例:umask u=rwx,g=rx,o=
umask 027
と同じです 。
結論#
このガイドでは、Linuxの権限とumask
の使用方法について説明しました。 新しく作成されたファイルまたはディレクトリのアクセス許可ビットを設定するコマンド。
詳細については、man umask
と入力してください ターミナルで。
ご不明な点がございましたら、下にコメントを残してください。