Me> What is needed is a Ruby interface to the getpwent() family of system calls.
Me> I don't see any such thing in the standard library

GS> require 'etc'

Ah!  I don't know how I would have found that, though, given the name. :)

Okay, so enumerating users is easy enough.

require 'etc'
class Users
    include Etc
    include Enumerable

    def each
        setpwent
        while pw = getpwent
            yield pw
        end
        endpwent
    end
end

Users.new.each { |u| puts u.name }