使用opscode厨师,有没有办法find或循环所有用户帐户?
我需要在每个用户主目录中创build一个configuration文件。 我不想循环任何目录结构。
系统中的所有用户在主厨运行时都会自动被ohai检测到,并在node['etc']属性空间中可用。 用户是node['etc']['passwd'] 。 你可以迭代这个像散列一样。 您可以通过比较用户的数字标识是否超出系统/etc/login.defs UID_MIN中定义的内容来排除“系统”或“由程序包预先创build”。
在配方中创buildconfiguration文件的示例用法,该configuration文件已存储在食谱中,每个用户都有一个不同的文件。
node['etc']['passwd'].each do |user, data| if data['uid'].to_i > 1000 cookbook_file "#{data['dir']}/custom_config" do source "#{user}_custom_config" owner user group data['gid'] mode 0644 end end end
将“custom_config”replace为你的configuration文件名。
它看起来像ohai的etc.passwd支持基于Ruby Etc.passwd读取/etc/passwd文件。
这可以很好,如果你的用户静态定义这样的。 如果您的服务器在LDAP或NIS等远程系统中定义了用户,那么这些用户将不在/ etc / passwd中。 你可以列出他们
`getent passwd`