Ruby で setuid, setgid を設定, 解除する
サンプル
setuid
require 'fileutils'
IO.write("testfile", "")
# setuid を設定
FileUtils.chmod("u+s", "testfile")
printf "%o\n", File.stat("testfile").mode # => 104755
p FileTest.setuid?("testfile") # => true
# setuid を解除
FileUtils.chmod("u-s", "testfile")
printf "%o\n", File.stat("testfile").mode # => 100755
p FileTest.setuid?("testfile") # => false
setgid
require 'fileutils'
IO.write("testfile", "")
# setgid を設定
FileUtils.chmod("g+s", "testfile")
printf "%o\n", File.stat("testfile").mode # => 102755
p FileTest.setgid?("testfile") # => true
# setgid を解除
FileUtils.chmod("g-s", "testfile")
printf "%o\n", File.stat("testfile").mode # => 100755
p FileTest.setgid?("testfile") # => false