3-13 Linux中用户创建密码 --- passwd

3-13 Linux中用户创建密码 --- passwd,第1张

passwd 用户名:添加 / 修改用户密码。(所有人都可以通过该命令修改自己的密码,root 可以修改所有人密码)。 -l:锁住该账号,在/etc/shadow 中存放密码的位置加上 !号。(仅 root 用户可以设置)。 -u:解锁。(仅 root 用户可以设置)。 -S:显示账号的密码参数。(仅 root 用户可以设置) -d:清空密码(仅 root 用户可以设置)。 -n:输入天数,设置多久可以不修改密码。(仅 root 用户可以设置) -x:输入天数,设置多久内必须修改密码。(仅 root 用户可以设置) -w:输入天数,设置密码过期前警告天数。(仅 root 用户可以设置) -i:输入天数,设置密码失效天数。(仅 root 用户可以设置) 1、passwd 用户名:添加 / 修改用户密码。 root 用户为 user9 用户创建初始密码:123。此时会有 BAD PASSWORD 密码过于简单的提示。由于 root 的权限最大,它可以无视密码设置规则。 Xshell 新建一个账户 user9,登录账户 user9,密码123进入系统。 user9 用户登录系统后,修改密码。 普通用户为自己修改密码,只需登录系统后输入 passwd 命令就可以进行密码修改。首先,输入原密码。然后,输入一次新密码,再重新输入一次新密码。系统检验两次新密码一致就会修改成功。此处新密码:torres999。小写字母+数字的 9 位密码。 需要注意的是,普通用户修改密码不能像 root ,root可以随意设置密码,就算密码过于简单也可以设置成功。普通用户设置密码,要遵循密码规范。但是普通用户的密码往往收到一定的规则限制,导致修改密码时经常会遇到以下报错: 无效的密码:密码字典检查失败 - 这太简单化了。纯数字输入密码,例如:01234567、12345678、87654321、76543210。往往会给出过于简单的提示。 无效的密码: 密码少于 8 个字符。输入的密码位数不足8位,提示不符合密码长度的要求。 无效的密码: 密码包含用户名在某些地方。如:用户名是 user9,输入的密码包含 user 字符,会被提示密码含有用户名的提示。  无效的密码: 与旧密码过于相似。如:曾经使用 apple999 的密码。重新设置密码输入,apple888、applehello、appleteam,含有apple单词的新密码会被检测与旧密码过于相似。 所以,普通用户修改密码要遵从密码规则。建议通过大小写、特殊字符 和 数字组成大于8位的密码组合。 -l:锁住该账号,在/etc/shadow 中存放密码的位置加上 !号。 -u:解锁。 例: 1、首先,用 root 用户为 user9 普通用户设置 123 的密码。  2、Xshell 新建一个连接 user9 ,输入用户名 user9 和密码 123 可以登录。 3、root 用 passwd -l  锁住了 user9 。 查看 /etc/shadow 文件,可以看到 user9 用户密码栏前面加上了 !感叹号,意思就是上锁的意思。 4、重新再登录 user9 用户,在输入密码 123 后,系统提示 ‘服务器拒绝了密码’,不能登录。 5、root 用户用 passwd -u  解锁 user9 。 6、解锁后的 user9 能够登录系统。 查看 /etc/shadow 文件,可以看到 user9 用户密码栏前面没有了 !感叹号,意思就是密码状态正常,可以登录。 tips:锁住用户 和 解锁用户,只有 root 有权限 *** 作,普通用户没有权限做此 *** 作。 -S:显示账号的密码参数。 例: 1、红色 user9:用户名。 2、黄色 PS:密码设置。(LK = 密码锁定,NP = 无密码)。 3、蓝色 2021-05-17:上次修改密码的时间。 4、绿色 0:密码修改间隔的时间(0 随时修改)。 5、白色 99999:密码有效期。 6、红色 7:临近密码过期前7天开始向用户发出警告。 7、黄色 -1:密码失效设置(-1 不失效)。 8、蓝色 Password set, SHA512 crypt:已使用密码。 passwd -l 锁定密码的用户 passwd -S 可以通过两个参数查看到情况 。 1、黄色 LK:密码锁定。 2、蓝色 Password locked:提示用户密码已被锁。 passwd -d 清空密码。模仿用户没有密码的情况。通过 passwd -S 两个参数查看到情况 。(清空密码后,需要 root 为普通用户重设密码才能正式登陆系统。) 1、黄色 NP:无密码,密码为空。 2、蓝色 Empty password:提示需要设置密码。 -n:输入天数,设置多久不能修改密码。 例: 1、红色下划线:首先 passwd -S 查看 user9 用户的密码信息。此时可修改密码参数是 0 ,即随时可以修改密码。 2、黄色下划线:passwd -n 10 设置 user9 用户10天内不能修改密码。设置完成后 passwd -S 可修改密码参数改为了 10。 3、蓝色下划线:登录 user9 账户。user9 修改 passwd 修改密码。系统提示 You must wait longer to change your password(你必须等待更长时间才能更改密码)。此时,user9 如需立即修改密码,必须通过 root 重新设置可修改密码参数为 0 。 -x:输入天数,设置多久内必须修改密码。 例: 1、红色下划线:首先 passwd -S 查看 user9 用户的密码信息。此时密码可用最大参数是 99999。 2、黄色下划线:passwd -x 10 设置 user9 密码可用最大参数为 10。设置完成后 passwd -S 密码可用最大参数改为了 10。即 10 天后强制修改密码。 -w:输入天数,设置密码过期前警告天数。 例: 1、红色下划线:首先 passwd -S 查看 user9 用户的密码信息。此时密码过期前警告天数是 7。 2、黄色下划线:passwd -w 2 设置 user9 密码过期前警告天数为 2。设置完成后 passwd -S 密码过期前警告天数改为了 2。即 密码过期前 2 天系统会发出警告,提示用户需要修改密码。 -i:输入天数,设置密码失效天数。如果一个密码已过期至失效的天数,那么此帐号将不可用。 例: 1、红色下划线:首先 passwd -S 查看 user9 用户的密码信息。此时密码失效天数是 -1(密码不失效)。 2、黄色下划线:passwd -i 2 设置 user9 密码失效天数为 2。设置完成后 passwd -S 密码失效天数改为了 2。即 密码过期后 2 天此帐号将不可用。

1.准备 安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。 在Debin,Ubuntu或者Linux Mint使用命令:sudo apt-get install libpam-cracklib

这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。

如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。

请注意,本教程中的密码规则只有在非root用户更改密码时强制执行。

2.避免重复使用旧密码 寻找同时包含“password”和"pam_unix.so"的行,然后再这行后面加上“remember=5”。这将防止5个最近使用过的密码被用来设置为新密码(通过将它们存放在/etc/security/opasswd文件中)。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password

修改内容:password[success=1 default=ignore]pam_unix.so obscure sha512 remember=5

在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth

修改内容:password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

3.设置最小密码长度 寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中<# of types>多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password

修改内容:password requisitepam_cracklib.so retry=3 minlen=10 difok=3

在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth

修改内容:password requisite pam_cracklib.so retry=3 difok=3 minlen=10

4.设置密码复杂度 寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。 在Debin,Ubuntu或者Linux Mint使用命令:sudo vi /etc/pam.d/common-password

修改内容:password requisitepam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

在Fedora,CentOS或RHEL使用命令:sudo vi /etc/pam.d/system-auth

修改内容:password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

5.设置密码的有效期 要设置当前密码的最大有效期,就修改/etc/login.defs文件的下列变量:sudo vi /etc/login.def

修改内容:PASS_MAX_DAYS 150

PASS_MIN_DAYS 0

PASS_WARN_AGE 7

这将迫使每一位用户每半年更改一次他们的密码,并且在密码过期之前七天发送密码过期还有几天到等等的警告信息给用户(到最后甚至在用户开机登录时强制用户更改密码,不然无法进入系统(个人在linux程序设计中看到的知识,非原作者观点))。如果你想基于不同的用户使用密码期限功能,那就使用chage命令。要查看针对特别用户的密码过期策略使用的命令如下:sudo chage -l xmodulo

注意:xmodule是原作者在linux系统中使用的用户名。 显示如下:Last password change: Dec 30, 2013

Password expires: never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

默认设置中,用户的密码是不会过期的。 为用户的xmodulo更改有限期限的命令如下:$ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo

以上命令将密码设置为在2014年6月30日过期。并且,密码更改时间间隔的最大/最小数量分别为5和90。在一个密码过期后,这个账号将被锁30天。在密码过期前14天,警告信息就会发送到对应的账户。

按你的需求做对应的修改

在linux,设置密码复杂度的方法有几个

1. 一个是在/etc/login.defs文件,里面几个选项

PASS_MAX_DAYS 90 #密码最长过期天数

PASS_MIN_DAYS 80 #密码最小过期天数

PASS_MIN_LEN10 #密码最小长度

PASS_WARN_AGE 7 #密码过期警告天数

2. 另外一个方法是,修改/etc/pam.d/system-auth文件

找到 password requisite pam_cracklib.so这么一行替换成如下:

password requisite pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

参数含义:

尝试次数:5

最少不同字符:3

最小密码长度:10

最少大写字母:1

最少小写字母:3

最少数字:3

密码字典:/usr/share/cracklib/pw_dict


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6237137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存