Книга: Программирование на языке Ruby
14.9.6. Модуль Etc
14.9.6. Модуль Etc
Модуль Etc
получает различную информацию из файлов /etc/passwd
и /etc/group
. Понятно, что полезен он только на платформе UNIX.
Метод getlogin
возвращает имя пользователя, от имени которого запущена программа. Если он завершается неудачно, может помочь метод getpwuid
(принимающий в качестве необязательного параметра идентификатор пользователя uid
).
myself = getlogin # hal9000
myname = getpwuid(2001).name # hal9000
# Если параметр не задан, getpwuid вызывает getuid...
me2 = getpwuid.name # hal9000
Метод getpwnam
возвращает структуру passwd
, которая содержит поля name
, dir
(начальный каталог), shell
(начальный интерпретатор команд) и др.
rootshell = getpwnam("root").shell # /sbin/sh
Методы getgrgid
и getgrnam
ведут себя аналогично, но по отношению к группам. Они возвращают структуру group
, содержащую имя группы и т.д.
Итератор passwd
обходит все записи в файле /etc/passwd
. Запись передается в блок в виде структуры passwd
.
all_users = []
passwd { |entry| all_users << entry.name }
Имеется также итератор group для обхода записей в файле /etc/group
.
- Листинг 11.7. (issue.c) Серверный модуль, отображающий информацию о дистрибутиве Linux
- Модуль INPUT
- Модуль SCANNER
- Как работает модуль оперативной памяти
- 5.1.1. netconf
- Модульный HTML
- Пример 6.1. Распечатка fetchmail-v
- Модуль GraphABC
- Модуль RobotTaskMaker
- Using Fetchmail to Retrieve Mail
- Installing Fetchmail
- Configuring Fetchmail