В Unix, если пользователь, который выполнил программу, является пользователем root? - PullRequest
23 голосов
/ 13 марта 2009

Я пишу сценарий rake и хотел бы определить (используя Ruby, а не bash, если это возможно), имеет ли пользователь, выполнивший сценарий rake, права root.

Если это не root, я хотел бы прекратить работу сценария.

Ответы [ 2 ]

41 голосов
/ 13 марта 2009

Используйте uid или euid в классе Process:

raise 'Must run as root' unless Process.uid == 0
1 голос
/ 13 марта 2009

Я не знаю Ruby, но то, что вы хотите проверить, это если идентификатор пользователя равен 0. В C вы бы сделали это, проверив getuid(). Из командной строки Unix вы также можете проверить вывод id -u.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...