doctor: add homebrew_temp sticky bit check

Adds a small check to the Doctor command to ensure HOMEBREW_TEMP
has a sticky bit set. This has become a significant issue lately.

Closes Homebrew/homebrew#39735
Original issue: Homebrew/homebrew#39170

Closes Homebrew/homebrew#39739.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Dominyk Tiller 2015-05-14 00:48:49 +01:00 committed by Mike McQuaid
parent a054005883
commit e4db0adf54

View File

@ -419,6 +419,16 @@ def check_access_usr_local
end end
end end
def check_tmpdir_sticky_bit
world_writable = HOMEBREW_TEMP.stat.mode & 0777 == 0777
if world_writable && !HOMEBREW_TEMP.sticky? then <<-EOS.undent
#{HOMEBREW_TEMP} is world-writable but does not have the sticky bit set.
Please run "Repair Disk Permissions" in Disk Utility.
EOS
end
end
(Keg::TOP_LEVEL_DIRECTORIES + ["lib/pkgconfig"]).each do |d| (Keg::TOP_LEVEL_DIRECTORIES + ["lib/pkgconfig"]).each do |d|
define_method("check_access_#{d.sub("/", "_")}") do define_method("check_access_#{d.sub("/", "_")}") do
dir = HOMEBREW_PREFIX.join(d) dir = HOMEBREW_PREFIX.join(d)