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 newdirtouch 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と入力してください ターミナルで。
ご不明な点がございましたら、下にコメントを残してください。