Spec-Zone.ru › Chef 16

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

[править на GitHub]

Используйте ресурс аудита 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 являются допустимыми соответствиями для этого ресурса

Примеры

Следующие примеры показывают, как использовать этот ресурс аудита 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 }

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 проверяет количество максимальных неудачных попыток ввода пароля для конкретного пользователя.

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 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