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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS