在OS X Yosemite中设置umask

时间:2015-01-11 14:43:13

标签: macos osx-yosemite

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

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

在优胜美地,文件/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

/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>

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

谢谢,
雷托

2 个答案:

答案 0 :(得分: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发布了&#34;优胜美地umask问题的方法&#34; 5天前更新(2015年4月8日):https://support.apple.com/en-us/HT201684

答案 1 :(得分:0)

状态报告

不幸的是到目前为止关于这个问题还没有有效的答案。但是不要紧。 Apple支持也没有任何线索。他们说在OS X中不再设置umask。真可惜!

来自umask的{​​{1}}子命令已经消失,但仍有可能在.plist文件中设置关键字“Umask”(例如,在/System/Library/LaunchDaemons/com.apple中使用) .configd.plist):

launchctl

我的计划是将此参数添加到LaunchAgent文件中,该文件在用户的上下文中启动第一个进程。

我随时通知你......

的问候,
雷托