ミドルウェアの設定ファイルなどを書くときにディレクトリの権限をいじる必要が時たまあると思う。1個ならlsたたけばすぐわかるけどいっきにいろいろなディレクトリを調べたいときにはコードで書く必要がありそうなので調べた。
Fileコマンドでは取れなかったのでEtcや、File::Statを利用したりする。
require 'etc'
path = '/'
user = Etc.getpwuid(File.stat(path).uid).name
group = Etc.getgrgid(File.stat(path).gid).name
puts "#{user}:#{group} #{path}" #=> root:root /