mip*_*adi 12 sudo macports osx-snow-leopard permissions macos
我最近升级到雪豹。我注意到一些由 MacPorts 编写的文件安装时权限错误——它们的 umask 为 0077。我想我已经缩小了问题的范围:
port
命令通过调用sudo
。.bashrc
文件指定了 0077 的 umask。反正有没有sudo
使用旧的行为?现在,它是一种烦人,因为我必须使用sudo
运行像简单的命令port installed
,port outdated
等等。
(此问题在此MacPorts 票证中有更详细的描述。)
我发现了umask
sudo的选项,并在其中/etc/sudoers
添加了以下行:
Defaults umask=0022
Run Code Online (Sandbox Code Playgroud)
然而,这并没有起到期望的,因为实际所用的umasksudo
是工会与此默认掩码用户掩码的。为了重写的行为sudo
的umask的,直接使用默认的(即不是工会的用户和默认sudo的面膜),可以添加以下内容:
Defaults umask_override
Run Code Online (Sandbox Code Playgroud)
小智 7
Mac OS X 10.7 (Lion) 终于有了支持 umask_override 的 sudo 版本。为了记录,这对我有用:
Defaults umask_override
Defaults umask=0022
Run Code Online (Sandbox Code Playgroud)
我最终将以下内容添加到我的.bashrc
配置脚本中:
# Mimic old behavior of `sudo` on OS X Snow Leopard
sudo() {
old=$(umask)
umask 0022
command sudo "$@"
umask $old
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11270 次 |
最近记录: |