linux如何设置密码规则

大家好,问下Linux下怎么设置密码规则,想windows一样可以要求设定几个字母加几个字符的那种。另外尝试配置login文件配置。不过没有效果的。... 大家好,问下Linux下怎么设置密码规则,想windows一样可以要求设定几个字母加几个字符的那种。 另外尝试配置login文件配置。不过没有效果的 。 展开
 我来答
百元新
电脑发烧友

推荐于2017-09-11 · 不会修电脑,但是你问我的我都知道
知道大有可为答主
回答量:3万
采纳率:87%
帮助的人:4894万
展开全部

准备工作:

安装 PAM 的 cracklib 模块,cracklib 能提供额外的密码检查能力。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo apt-get install libpam-cracklib

CentOS、Fedora、RHEL 系统已经默认安装了 cracklib PAM 模块,所以在这些系统上无需执行上面的操作。

为了强制实施密码策略,我们需要修改 /etc/pam.d 目录下的 PAM 配置文件。一旦修改,策略会马上生效。

注意:此教程中的密码策略只对非 root 用户有效,对 root 用户无效。

禁止使用旧密码

找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo vi /etc/pam.d/common-password

CentOS、Fedora、RHEL 系统上:

$ sudo vi /etc/pam.d/system-auth

设置最短密码长度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10”
的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM
提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这4种类型的符号,并且你的 minlen
设为10,那么最短的密码长度允许是6个字符。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo vi /etc/pam.d/common-password

CentOS、Fedora、RHEL 系统上:

$ sudo vi /etc/pam.d/system-auth

设置密码复杂度

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2
dcredit=-1 ocredit=-1”
的那行,它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号
(ocredit)。

Debian、Ubuntu 或 Linux Mint 系统上:

$ sudo vi /etc/pam.d/common-password

CentOS、Fedora、RHEL 系统上:

$ sudo vi /etc/pam.d/system-auth

设置密码过期期限

编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

$ sudo vi /etc/login.defs

这些设置要求用户每6个月改变他们的密码,并且会提前7天提醒用户密码快到期了。

如果你想为每个用户设置不同的密码期限,使用 chage 命令。下面的命令可以查看某个用户的密码限期:

$ sudo chage -l xmodulo

默认情况下,用户的密码永不过期。

下面的命令用于修改 xmodulo 用户的密码期限:

$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo

上面的命令将密码期限设为2014年6月3日。另外,修改密码的最短周期为5天,最长周期为90天。密码过期前14天会发送消息提醒用户,过期后帐号会被锁住30天。

匿名用户
2013-03-27
展开全部
修改/etc/login.defs文件中PASS_MIN_LEN参数,设置为你所需要的长度,默认是5
  
  有的还加上一些修改/etc/pam.d/passwd的方法,加上cracklib.so库。但是实际上,这个方法并不奏效,原来是什么样子,现在还是什么样子,为什么呢?
  
  这是因为采用pam机制后,/etc/login.defs中的配置不起作用,而pam中 pam_cracklib.so 的参数minlen=9也是个假参数,因为他内部调用的函数pam_sm_chauthtok调用的FascistCheck(位于 cracklib.so独立于pam之外)对密码长度分析时并不理踩minlen这个值,而是内部写死的,所以,要使得原来的/etc/login.defs配置有效,必须等patch。
  可以看这个代码片段(cracklib/cracklib,2.7/cracklib/fascist.c):其中的MINLEN):
  
  #define MINLEN 6
  
  char *
  FascistLook(pwp, instring)
   PWDICT *pwp;
   char *instring;
  {
   int ii;
   char *ptr;
   char *jptr;
   char junk[STRINGSIZE];
   char *password;
   char rpassword[STRINGSIZE];
   int32 notfound;
  
   notfound = PW_WORDS(pwp);
   /* already truncated if from FascistCheck() */
   /* but pretend it wasn't ... */
   strncpy(rpassword, instring, TRUNCSTRINGSIZE);
   rpassword[TRUNCSTRINGSIZE - 1] = '';
   password = rpassword;
  
   if (strlen(password) < 4)
   {
   return ("it's WAY too short");
   }
   if (strlen(password) < MINLEN)
   {
   return ("it is too short");
   }
  
   jptr = junk;
   *jptr = '';
  
   for (ii = 0; ii < STRINGSIZE && password[ii]; ii++)
   {
   if (!strchr(junk, password[ii]))
   {
   *(jptr++) = password[ii];
   *jptr = '';
   }
   }
  
   if (strlen(junk) < MIND
  
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万年长长青
2021-02-27 · 贡献了超过156个回答
知道答主
回答量:156
采纳率:0%
帮助的人:7.1万
展开全部

linux普通用户修改密码(设置简单密码)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式