我需要将几个 Linux 帐户的 maxdays 设置更改为 365,并且大多数帐户都被锁定。
密码时效设置是否会影响这些帐户?我担心的是,我会将它们更改为 365(目前许多密码时效为 99999 或 -1),一年后,使用这些密码的某些进程将不再工作或启动。
答案1
看起来,如果使用过期的用户帐户,服务仍然可以启动。例如:
[vagrant@localhost ~]$ sudo usermod --lock --expiredate 1970-02-02 apache
[vagrant@localhost ~]$ sudo chage -l apache
Last password change : Nov 15, 2014
Password expires : never
Password inactive : never
Account expires : Feb 02, 1970
Minimum number of days between password change : -1
Maximum number of days between password change : -1
Number of days of warning before password expires : -1
[vagrant@localhost ~]$ sudo service httpd stop
Stopping httpd: [ OK ]
[vagrant@localhost ~]$ ps -ef | grep apache
vagrant 4444 2503 0 14:52 pts/0 00:00:00 grep apache
[vagrant@localhost ~]$ sudo service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[ OK ]
[vagrant@localhost ~]$ ps -ef | grep apache
apache 4459 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4460 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4461 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4462 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4463 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4464 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4465 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
apache 4466 4457 0 14:52 ? 00:00:00 /usr/sbin/httpd
vagrant 4468 2503 0 14:52 pts/0 00:00:00 grep apache
由于仅针对一种产品进行了测试,因此并不能证明这适用于所有软件产品。
最安全的解决方案是通过执行 来检查某些即将过期的用户是否被进程使用ps -ef | grep username
。如果某个用户未被进程使用,则设置过期日期似乎是安全的。否则,不要设置过期日期或替换用户。如果本机用户用于运行进程,则后者不是必需的。为什么要为 eg 分配过期日期并决定由其他用户apache
运行?httpd
apache