RIGHT:[[Mac 関係覚え書き]] Mac でデフォルトの umask 設定を行う. *参考 [#t4f8aff5] http://www.macosxhints.com/article.php?story=20031211073631814 *概要 [#x88b6b75] Mac でユーザさんが作るファイルのデフォルトのパーミションを 660 としたい. つまり,other の読み取り/書き込み権限を落としたい. *TinkerTool [#ve0016cb] [[ThinkerTool 3.1:http://www.bresink.com/osx/TinkerTool.html]] というツールでは, 個別のユーザ毎に umask を設定することができるという. これを応用して,全体ユーザのデフォルトを設定すれば... *NSUmask [#ifbef862] Mac OS の設定ファイル /System/Library/Frameworks/PreferencePanes.frmework/Versions/A/Resources/global.defaults の中に,"NSUmask" という設定値がある. この値はデフォルトが "18" となっており, この値はオクタル(8進数)の umask の値を 10進数にしたものだ. (つまり 022 を 10進にしたもの) この値を変えてやることでうまくいくんではないか. つまり,027 を10進にした "23" を NSUmask の値とするのだ. とはいえ, このファイルを直接いじるのは恐ろしい. *Mac 流には [#mdfe92cc] Mac の流儀に従えば,/Library 以下に何かプリファレンスファイルを 作ってやればいいのか. で,先の TinkerTool での動きを見てみると, 各個人での設定を行うために ~/Library/Preferences/.GlobalPreferences.plist というファイルに次のような行を追加しているようだ. <key>NSUmask</key> <integer>my-umask-decimal</integer> ("my-umask-decimal" のところには,前述の 10進の数字が入る) これにならい, /Library/Preferences/.GlobalPreferences.plist の先頭に次のような内容を追加してやればいい. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSUmask</key> <--- <integer>23</integer> <--- <key>AppleLanguages</key> <array> <string>English</string> ... **Tiger では [#ad537549] Tiger では,上記のファイルはバイナリとなっていて テキストエディタでは直接編集できない. そのため,編集前後で以下のコマンドを使う. 編集前 plutil -convert xml1 /Library/Preferences/.GlobalPreferences.plist 編集後 plutil -convert binary1 /Library/Preferences/.GlobalPreferences.plist *てゆうか Panther 以上では [#h7676698] Panther 以上では,defaults コマンドが使えるので, 管理者になって sudo defaults write /Library/Preferences/.GlobalPreferences NSUmask 23 ってなコマンドを打ってやってもいいみたい. *launchctl [#za532573] Yosemite 以降では launchctl で umask を設定するようだ. sudo launchctl config user umask 027 その他,詳しいことは 「OS X でカスタム umask を設定する」 https://support.apple.com/ja-jp/HT201684 *GlobalPreferences は問題が出るかも [#rfbb2c0a] GlobalPreferences の設定を変更するとシステム全体に及ぶので, アプリケーションによっては不具合が出るかも知れないので, もっと簡単に,Finder からのフォルダ作成での umask 設定の仕方が載っていた. http://www.makemacwork.com/secure-finder-permissions.htm 管理者ユーザになって以下のコマンドを実行する. defaults write /Library/Preferences/com.apple.finder umask -int 077