如何测试用户属于使用 Chef Inspec 的组列表?

How to test user belongs to a list of group using Chef Inspec?

我有一个用户 bogus_user 属于三个组 bogus_user, sftpusers and airflow

在我的规范中,我有以下声明,但我必须按特定顺序放置组才能通过验证。我不认为这很理想,有没有办法让它检查组列表而不关心顺序?

describe user('bogus_user') do
  it { should exist }
  its('uid') { should eq 1002 }
  its('groups') { should include [ 'bogus_user', 'sftpusers', 'airflow' ] }
  its('home') { should eq '/var/ftp/pub/bogus_user' }
end

这不是最好的也不理想的解决方案,但它确实有效:

describe user('bogus_user') do
  it { should exist }
  its('uid') { should eq 1002 }
  %w(bogus_user sftpusers airflow).each do |group|
    its('groups') { should include group }
  end
  its('home') { should eq '/var/ftp/pub/bogus_user' }
end