macOS でカスタム umask を設定する

Mac 上のすべてのファイルやフォルダには、一連のアクセス権が設定されています。新しいファイルやフォルダを作成すると、umask に基づいて、こうしたアクセス権が決められます。

以下に紹介する手順は、システム管理者や、コマンドラインの扱いに習熟した方を主に対象とした高度な内容となっています。ファイルのアクセス権と umask を変更する際は、慎重を期してください。間違いを犯すと、Mac のファイル、フォルダ、またはアプリのセキュリティが損なわれたり、アプリが動作しなくなったりするおそれがあります。

アクセス権と umask について

アクセス権:Mac に保存されるすべてのファイル、フォルダ、アプリには、それぞれアクセス権が設定されています。このアクセス権によって、そのファイル、フォルダ、アプリを読み取り/書き込み/実行できるユーザアカウントが決まります。たとえば、POSIX アクセス権やアクセス制御リスト (ACL) などがあります。ユーザの POSIX アクセス権の制限を厳しくしたり緩くしたりするには、umask の値を調整します。

umask:3 桁の数値が、ファイルの POSIX アクセス権を表します。ターミナルでアクセス権を表示した場合、この 3 桁表示になります。各桁は、0 ~ 7 のいずれかになります。ファイルを作成すると、デフォルトの値 (通常、ファイルの場合は 666、フォルダの場合は 777) から umask 値が引かれて、新しいファイルやフォルダのアクセス権が決められます。たとえば、デフォルトの umask が 022 の場合、新しいファイルのアクセス権は 644、新しいフォルダのアクセス権は 755 になります。

umask はいくつかの場所で設定でき、場所ごとに違うアプリに作用します。umask の設定を間違えると、ファイルにアクセスできなくなったり、ほかのユーザにアクセスを認めることになったりしてしまいます。詳しくは、chmod(1) マニュアルページの「MODES」セクションを参照してください。

ユーザアプリの umask

管理者としてログインし、ターミナルに以下のコマンドを入力します。nnn の部分は実際の umask 値 (027、002 など) に置き換えてください。このコマンドは、ユーザが開くすべてのアプリ (コマンドラインからアクセスするアプリ、そうしたアプリで作成される新しいファイルなど) について、ユーザの umask を設定します。このコマンドを実行した後で、必要に応じて Mac を再起動してください。

sudo launchctl config user umask nnn

ターミナルに「Could not write configuration: No such file or directory」というメッセージが表示される場合は、起動ディスクの「/private/var/db/com.apple.xpc.launchd/config」にフォルダがあるか確認してください。「config」フォルダがない場合は、以下のコマンドを入力して作成してから、あらためて試してください。

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

システムプロセスの umask

管理者としてログインし、ターミナルに以下のコマンドを入力します。nnn の部分は実際の umask 値 (027、002 など) に置き換えてください。

sudo launchctl config system umask nnn

ターミナルに「Could not write configuration: No such file or directory」というメッセージが表示される場合は、起動ディスクの「/private/var/db/com.apple.xpc.launchd/config」にフォルダがあるか確認してください。「config」フォルダがない場合は、以下のコマンドを入力して作成してから、あらためて試してください。

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

関連情報

umask の設定方法について詳しくは、ターミナルで man launchctl と入力して調べてください。

公開日: