
私はUnixアカウントを作成し、デフォルトのパスワードを設定するために「ユーザー」リソースを使用しています。そのために、以下のリストを作成しました。
node 'node2.example.com','node3.example.com'{
user {
'askar':
ensure => 'present',
managehome => 'true',
comment => 'man Home',
home => '/home/askar',
shell => '/bin/bash',
expiry => '2016-03-22',
password => '$1$cs1j/t.D$4Q2Ocr0pulyNTUx/',
password_min_age => '30',
password_max_age => '60',
}
}
うまくいきますが、ユーザーが次回ログインするときにパスワードを強制的に変更するようにしたいと思います。そのために、ユーザーがパスワードを強制的に変更するように、次のexec
コマンドを実行するリソースにルールを拡張しました。chage -d 0 askar
exec {
'chage':
command => 'chage -d 0 askar'
}
}
しかし、これは私には効果がありません。ユーザーが次のログイン時にパスワードを強制的に変更できるようにする方法を提案できますか?
答え1
exec
Puppetリソースは、現在のディレクトリのコマンドのみを探しているようです。
コマンドパスを追加するとchage
問題が解決しました。
$ which chage
/usr/bin/chage
したがって、execリソースは次のように宣言されます。
exec {
'chage':
path => '/usr/bin/',
command => 'chage -d 0 askar',
}
認証されたユーザーのパスワードが期限切れです。これは、ユーザーが次回ログインするときにパスワードを変更する必要があることを意味します。
# chage -l askar
Last password change : Password must be changed
Password expires : Password must be changed
Password inactive : password must be changed
Account expires : Mar 22, 2016
Minimum number of days between password change : 30
Maximum number of days between password change : 60
Number of days of warning before password expires : 7