Skip to content
Snippets Groups Projects
Commit ca77025f authored by ilovezfs's avatar ilovezfs Committed by Xu Cheng
Browse files

Don't accidentally inherit group "wheel" from /tmp


Because files on OS X are assigned the group of the directory in which
they are created, using /tmp during the installation process would
result in some installed files having the group "wheel" even though
"admin" was intended.

Thanks to Xu Cheng for suggesting a simpler location for the fix.

Closes Homebrew/homebrew#45869

Closes Homebrew/homebrew#48732.

Signed-off-by: default avatarXu Cheng <xucheng@me.com>
parent fb9818ae
No related branches found
No related tags found
No related merge requests found
require "fileutils"
require "tmpdir"
require "etc"
# Homebrew extends Ruby's `FileUtils` to make our code more readable.
# @see http://ruby-doc.org/stdlib-1.8.7/libdoc/fileutils/rdoc/FileUtils.html Ruby's FileUtils API
......@@ -10,6 +11,23 @@ module FileUtils
prev = pwd
tmp = Dir.mktmpdir(prefix, HOMEBREW_TEMP)
# Make sure files inside the temporary directory have the same group as the
# brew instance.
#
# Reference from `man 2 open`
# > When a new file is created, it is given the group of the directory which
# contains it.
group_id = if File.grpowned? HOMEBREW_BREW_FILE
File.stat(HOMEBREW_BREW_FILE).gid
else
Process.gid
end
begin
chown(nil, group_id, tmp)
rescue Errno::EPERM
opoo "Failed setting group \"#{Etc.getgrgid(group_id).name}\" on #{tmp}"
end
begin
cd(tmp)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment