Etc

用来在/etc中的数据库中获取信息的模块. 也可以在类中include该模块后加以利用.

用法:

require 'etc'
p Etc.getlogin

模块函数:

Etc.endgrent ((<ruby 1.8 特性>))
Etc.endpwent ((<ruby 1.8 特性>))
Etc.getgrent ((<ruby 1.8 特性>))
Etc.getpwent ((<ruby 1.8 特性>))
Etc.setgrent ((<ruby 1.8 特性>))
Etc.setpwent ((<ruby 1.8 特性>))

ruby 1.8 特性

Etc.getlogin

返回自己的login名。若获取login名失败,则返回nil。

该方法失败时,可退回到Etc.getpwuid

Etc.getpwnam(name)

搜索passwd数据库, 返回姓名为name的passwd条目。返回值是passwd结构体, 其成员如下。

struct passwd
  name        # 用户名(字符串)
  passwd      # 密码(字符串)
  uid         # 用户ID(整数)
  gid         # 组ID(整数)
  gecos       # gecoszi字段(字符串)
  dir         # 主目录(字符串)
  shell       # login shell(字符串)
  # 有些系统不支持下列成员
  change      # 修改密码的时间(整数)
  quota       # 定额(整数)
  age         # age(整数)
  class       # 用户访问类(字符串)
  comment     # comment(字符串)
  expire      # 帐户有效期限(整数)          
end

详情请参考getpwnam(3)

Etc.getpwuid([uid])

搜索passwd数据库, 返回用户ID为uid的passwd条目。返回值与Etc.getpwnam相同。省略参数时,将使用getuid(2)的值。

详情请参考getpwuid(3)

Etc.getgrgid(gid)

搜索group数据库, 返回组ID为gid的组条目。返回值是group结构体, 其成员如下。

struct group
  name        # 组名(字符串)
  passwd      # 组的密码(字符串)
  gid         # 组ID(整数)
  mem         # 组成员名的数组
end

详情请参考getgrgid(3)

Etc.getgrnam(name)

返回名为name的组条目。返回值与Etc.getgrgid 相同。

详情请参考getgrnam(3)

Etc.group

可依次访问所有组条目的迭代器。

Etc.passwd

可依次访问所有passwd条目的迭代器。