Spec-Zone.ru › Chef 16

ресурс users

[редактировать на GitHub]

Используйте ресурс аудита users Chef InSpec, чтобы найти всех локальных пользователей, доступных в системе, и затем протестировать определённые свойства этих пользователей. Этот ресурс не возвращает информацию о пользователях, которые могут находиться на других системах, таких как LDAP или Active Directory.

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс стал доступен впервые в версии v1.0.0 InSpec.

Синтаксис

Блок ресурса users объявляет имя пользователя, а затем один (или несколько) матчеров:

describe users.where(uid: 0).entries do
  it { should eq ['root'] }
  its('uids') { should eq [1234] }
  its('gids') { should eq [1234] }
end

где

  • gid, group, groups, home, maxdays, mindays, shell, uid, warndays, passwordage, maxbadpasswords и badpasswordattempts являются допустимыми матчерами для этого ресурса
  • where(uid: 0).entries представляет собой фильтр, который выполняет тест только для соответствующих пользователей

Например:

describe users.where { username =~ /.*/ } do
  it { should exist }
end

или:

describe users.where { uid =~ /^S-1-5-[0-9-]+-501$/ } do
  it { should exist }
end

Примеры

Следующие примеры демонстрируют, как использовать этот ресурс аудита Chef InSpec.

Использование регулярного выражения для поиска пользователей

describe users.where { uid =~ /S\-1\-5\-21\-\d+\-\d+\-\d+\-500/ } do
  it { should exist }
end

Проверка наличия только разрешённых пользователей

allowed_users = %w(user1 user2 user3)

users.where { uid > 1000 && uid < 65534 }.usernames.sort.each do |u|
  describe user(u) do
    if allowed_users.include?(u)
      it { should exist }
    else
      it { should_not exist }
    end
  end
end

Матчеры

Полный список доступных матчеров можно найти на нашей странице матчеров.

exist

Матчер exist проверяет существование пользователя с заданным именем:

it { should exist }

gid

Матчер gid проверяет идентификатор группы:

its('gid') { should eq 1234 } }

где 1234 представляет собой идентификатор пользователя.

group

Матчер group проверяет группу, к которой принадлежит пользователь:

its('group') { should eq 'root' }

где root представляет собой группу.

groups

Матчер groups проверяет принадлежность пользователя к двум (или более) группам:

its('groups') { should eq ['root', 'other']}

home

Матчер home проверяет путь к домашнему каталогу пользователя:

its('home') { should eq '/root' }

maxdays

Матчер maxdays проверяет максимальное количество дней между изменениями пароля:

its('maxdays') { should eq 99 }

где 99 представляет собой максимальное количество дней.

mindays

Матчер mindays проверяет минимальное количество дней между изменениями пароля:

its('mindays') { should eq 0 }

где 0 представляет собой максимальное количество дней.

shell

Матчер shell проверяет путь к стандартной оболочке пользователя:

its('shells') { should eq ['/bin/bash'] }

uid

Матчер uid проверяет идентификатор пользователя:

its('uid') { should eq 1234 } }

где 1234 представляет собой идентификатор пользователя.

warndays

Матчер warndays проверяет количество дней предупреждения пользователя перед необходимостью смены пароля:

its('warndays') { should eq 5 }

где 5 представляет собой количество дней предупреждения пользователя.

passwordage

Матчер passwordage проверяет количество дней, прошедших с последней смены пароля пользователем:

its('passwordage') { should_be <= 365 }

где 365 представляет собой количество дней с последней смены пароля.

maxbadpasswords

Матчер maxbadpasswords проверяет максимальное значение настроек badpassword для конкретного пользователя.

its('maxbadpasswords') { should eq 7 }

где 7 является максимальным количеством попыток ввода неправильного пароля.

badpasswordattempts

Матчер badpasswordattempts проверяет количество неудачных попыток ввода пароля для пользователя.

its('badpasswordattempts') { should eq 0 }

где 0 является количеством неудачных попыток ввода пароля для пользователя. В операционных системах на основе Linux это зависит от lastb, а для Windows используется информация, хранящаяся в объекте пользователя. Эти значения будут сброшены до 0 в зависимости от конфигурации вашей операционной системы.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/users/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API