1

Wrote an inspec-test for groups. The groups are asigned to the user pi on bash but I got an empty array from inspec-test.

Here the bash output:

id
uid=1000(pi) gid=1000(pi) Gruppen=1000(pi),4(adm),20(dialout),27(sudo),33(www-data),44(video),100(users),998(docker),999(gpio)

When I run my inspec I got this:

  ×  users-1.0: Ensure users are known (1 failed)
     ✔  User pi should exist
     ✔  User pi group should eq "pi"
     ×  User pi groups should eq ["pi", "sudo"]

     expected: ["pi", "sudo"]
          got: []

     (compared using ==)

     ✔  User pi home should eq "/home/pi"

In my rb-file I wrote this:

users = {
    :pi => {
        :uname => 'pi',
        :gname => 'pi',
        :groups => [
            'adm',
            'dialout',
            'sudo',
            'www-data',
            'video',
            'users',
            'docker',
            'gpio'
        ],
        :home => '/home/pi'
    }
}
...
control 'users-1.0' do
    impact 1.0
    title 'Ensure users are known'
    users.each do |key, value|
        describe user(value[:uname]) do
            it { should exist }
            its('group') { should eq "#{value[:gname]}" }
            its('groups') { should eq [ 'pi', 'sudo' ] }
            its('home') { should eq "#{value[:home]}" }
            #its('shell') { should eq '/bin/bash' }
            #its('mindays') { should eq 0 }
            #its('maxdays') { should eq 90 }
            #its('warndays') { should eq 8 }
        end
    end
end

I expected to see an array of groups from user pi.

I don't know how to start searching. I'm a inspec newbee.

Thanks

kraeml
  • 11
  • 1

1 Answers1

0

It is a known InSpec bug. InSpect expects id (and any other command) output with LC_MESSAGES=C or any other US locale.

Szymon
  • 1,525
  • 1
  • 11
  • 12