2017-09-08 89 views
1

我们已经在PAM中设置了我们的帐户政策,以遵循RHEL7 STIG准则http://rhel7stig.readthedocs.io/en/latest/。我们确实有一些服务帐户,其密码为空,并使用SSH密钥登录。 60天后,服务帐户密码过期并被禁用。这不是我期待的一个无密码帐户的行为,我不认为密码到期会适用于无密码帐户。我如何告诉PAM不要过期无密码帐户?为什么无密码帐户在PAM中过期?

在login.defs

PASS_MIN_DAYS  1 
PASS_MAX_DAYS  60 
PASS_WARN_AGE  7 
FAIL_DELAY  4 

在/ etc /默认/ useradd的

INACTIVE=0 

回答

1

看起来像我需要创建这些帐户作为系统帐户。从useradd的man页面......

系统的用户将在/ etc/shadow中没有老化的信息来创建 - https://linux.die.net/man/8/useradd

示例命令。

useradd testuser --system 

如果您使用Ansible您可以将用户模块中的指定系统。

- user: 
    name: testuser 
    group: testuser 
    system: yes 

结果在/ etc/shadow中可见。注意testuser没有密码最大年龄条目。

[[email protected] ~]# useradd testuser --system 
[[email protected] ~]# grep testuser /etc/shadow 
testuser:!!:17417:::::: 

[[email protected] ~]# grep ryan /etc/shadow 
ryan:*:18976:1:60:7:0:: 
1

,因为如果这些账户有一个密码或不系统不关心。您必须将PASS_MAX_DAYS设置为99999或者对于这些帐户来说看起来合适。

+0

就像在每个用户的基础上使用'chage'命令你的意思是? –

+0

是的,我认为没有办法(开箱即可)创建一个单独的“策略”,在某些帐户上禁用密码老化。 – cptPH

+0

您可以禁用PAM之间的一些交互,如下所述:https://unix.stackexchange.com/questions/160268/expired-password-and-ssh-key-based-login-with-usepam-yes,但这看起来不太聪明:/ – cptPH

相关问题