    # File lib/phusion_passenger/utils.rb, line 748
            def check_directory_tree_permissions(dir)
                    components = dir.split("/")
                    components.shift
                    i = 0
                    # We can't use File.readable() and friends here because they
                    # don't always work right with ACLs. Instead of we use 'real'
                    # checks.
                    while i < components.size
                            path = "/" + components[0..i].join("/")
                            begin
                                    File.stat(path)
                            rescue Errno::EACCES
                                    return [File.dirname(path), true]
                            end
                            i += 1
                    end
                    begin
                            Dir.chdir(dir) do
                                    return nil
                            end
                    rescue Errno::EACCES
                            return [dir, false]
                    end
            end