Spec-Zone.ru › Chef 17

ресурс пользователя

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

Используйте ресурс аудита user Chef InSpec, чтобы проверить профили пользователей для одного известного/ожидаемого локального пользователя, включая группы, к которым принадлежит этот пользователь, частоту необходимых изменений пароля и пути к домашнему каталогу и оболочке.

Доступность

Установка

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

Версия

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

Синтаксис

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

describe user('root') do
  it { should exist }
  its('uid') { should eq 1234 }
  its('gid') { should eq 1234 }
  its('group') { should eq 'root' }
  its('groups') { should eq ['root', 'other']}
  its('home') { should eq '/root' }
  its('shell') { should eq '/bin/bash' }
  its('mindays') { should eq 0 }
  its('maxdays') { should eq 90 }
  its('warndays') { should eq 8 }
  its('passwordage') { should eq 355 }
  its('maxbadpasswords') { should eq nil } // Only valid on Windows OS
  its('badpasswordattempts') { should eq 0 }
  its('lastlogin') { should eq nil } // Only valid on Windows OS
end

где

  • ('root') — пользователь, который будет проверяться
  • it { should exist } проверяет, существует ли пользователь
  • gid, group, groups, home, maxdays, mindays, shell, uid, warndays´, passwordage, maxbadpasswords, badpasswordattempts и lastlogin являются допустимыми матчерами для этого ресурса

Свойства

gid

Свойство gid проверяет идентификатор группы:

its('gid') { should eq 1234 }

где 1234 представляет идентификатор пользователя. Опция gid доступна только в Linux и вернет nil для операционной системы Windows.

group

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

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

где root представляет группу. Опция group доступна только в Linux и вернет nil для операционной системы Windows.

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('shell') { 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 в зависимости от конфигурации вашей операционной системы.

lastlogin

Свойство lastlogin проверяет последнюю дату входа для конкретного пользователя.

its('lastlogin') { should eq nil }

Значение nil означает, что этот пользователь никогда не входил в систему.

Примеры

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

Проверка доступных пользователей для сервера MySQL

describe user('root') do
  it { should exist }
  its('uid') { should eq 0 }
  its('groups') { should eq ['root'] }
end

describe user('mysql') do
 it { should_not exist }
end

Проверка пользователей в нескольких платформах

Пользователь nginx обычно www-data, но в CentOS он nginx. Следующий пример показывает, как проверить пользователя nginx с помощью одного теста, но учитывая все платформы:

web_user = 'www-data'
web_user = 'nginx' if os[:family] == 'centos'

describe user(web_user) do
  it { should exist }
end

Матчеры

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

exist

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

it { should exist }

© 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/user/

Spec-Zone.ru

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