umaskは、アプリケーションがファイルに設定できない一連の権限として機能します。プロセスのファイルモード作成マスクであり、ディレクトリ自体には設定できません。ほとんどのアプリケーションは、実行許可が設定されたファイルを作成しないため、デフォルトの666
があり、umaskによって変更されます。
umaskを設定して所有者の読み取り/書き込みビットと他のユーザーの読み取りビットを削除すると、777
アプリケーションなどのデフォルトではファイルのパーミッションがになります133
。これは、ユーザー(および他のユーザー)がファイルを実行でき、他のユーザーがファイルに書き込みできることを意味します。
ファイルを所有者以外のユーザーが読み取り/書き込み/実行できないようにする場合は、umaskを使用し077
て、グループやその他のユーザーのアクセス許可をオフにする必要があります。
対照的に、のumask 000
は、新しく作成されたディレクトリをすべての人が読み取り可能、書き込み可能、および下降可能にします(パーミッションはになります777
)。このようなumaskは非常に安全ではないため、umaskをに設定しないでください000
。
Ubuntuのデフォルトのumask 022
は、新しく作成されたファイルは誰でも読み取り可能ですが、所有者のみが書き込み可能であることを意味します。
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Ubuntu Oneiric(11.10)以降、デフォルトのumaskはに緩和さ002
れ、所有者のグループへの書き込みアクセスが拡張されました。
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
umaskの表示と変更
現在のumask設定を表示するには、ターミナルを開いてコマンドを実行します。
umask
現在のシェルのumask設定を077などの別のものに変更するには、次を実行します。
umask 077
この設定が機能するかどうかをテストするには、新しいファイルを作成し(既存のファイルのファイルアクセス権は影響を受けません)、ファイルに関する情報を表示し、次を実行します。
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
umask設定は、同じシェルから開始されたプロセスに継承されます。たとえばgedit
、ターミナルで実行してテキストエディターGEditを起動し、geditを使用してファイルを保存します。新しく作成されたファイルは、ターミナルと同じumask設定の影響を受けます。
ユースケース:マルチユーザーシステム
複数のユーザーが共有しているシステムを使用している場合、他のユーザーがホームディレクトリ内のファイルを読み取れないことが望まれます。そのため、umaskは非常に便利です。以下~/.profile
を使用して新しい行を編集および追加します。
umask 007
このumaskの変更~/.profile
を有効にするには、再ログインする必要があります。次に、ワールドの読み取り、書き込み、実行ビットを削除して、ホームディレクトリ内のファイルの既存のファイルアクセス許可を変更する必要があります。ターミナルを開いて実行します:
chmod -R o-rwx ~
このumask設定をシステム上のすべてのユーザーに適用する場合は、でシステム全体のプロファイルファイルを編集できます/etc/profile
。
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-