Книга: Программирование на языке 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.

Оглавление книги


Генерация: 1.044. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз