在OS X Yosemite中设置umask

Ray*_*Ray 4 macos osx-yosemite

我想在Mac上更换我的umask.在Yosemite之前,我使用了文件/etc/launchd-user.conf文件并添加了命令umask 0077.

目的是在任何每个GUI程序中保存文件时获得适当的文件权限,例如Finder,Notes和Firefox.添加umask /etc/profile~/.profile不解决问题.

在Yosemite文件中/etc/launchd.conf,/etc/launchd-user.conf不再执行.该man launchctl说:

不再查询/etc/launchd.conf文件,以便子命令在早期启动时运行; 出于安全考虑,已删除此功能.

我尝试使用LaunchAgents的不同示例.我能够设置环境变量(例如ENVIRONMENT_RC),但永远不会设置umask.

在/ etc /环境

#!/bin/sh

umask 0077

launchctl setenv ENVIRONMENT_RC "yes"     # Debugging
Run Code Online (Sandbox Code Playgroud)

/Library/LaunchAgents/environment.user.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>environment.user</string>
    <key>ProgramArguments</key>
    <array>
            <string>/bin/sh</string>
            <string>/etc/environment</string>
    </array>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>WatchPaths</key>
    <array>
        <string>/etc/environment</string>
    </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

在OS X Yosemite中设置umask的任何想法?

谢谢,
Reto

小智 7

OS X Yosemite 10.10.3中有一个最终解决方案:

而不是/etc/launchctl-user.conf使用:( launchctl config user umask 002 示例umask用于设置775权限)

而不是系统范围/etc/launchctl.conf使用:( launchctl config system umask 002 示例umask用于设置775权限)

Apple在五天前(2015年4月8日)发布了"Yosemite umask problem"更新的方法:https://support.apple.com/en-us/HT201684