Я пишу сценарий rake и хотел бы определить (используя Ruby, а не bash, если это возможно), имеет ли пользователь, выполнивший сценарий rake, права root.
Если это не root, я хотел бы прекратить работу сценария.
Используйте uid или euid в классе Process:
uid
euid
Process
raise 'Must run as root' unless Process.uid == 0
Я не знаю Ruby, но то, что вы хотите проверить, это если идентификатор пользователя равен 0. В C вы бы сделали это, проверив getuid(). Из командной строки Unix вы также можете проверить вывод id -u.
getuid()
id -u