linux用户密码存放在哪个文件

说到Linux用户密码管理,就不得不说到这个。
刚入行的时候,我对/etc/shadow文件非常好奇。
这个东西就像是Linux系统中存在的一个“影子文件”,相当神秘。

说实话,在Linux早期,用户密码是直接存储在/etc/passwd文件中的。
一旦权限开放,所有用户都可以看到,这是一个巨大的风险。
后来,为了提高安全性,Linux系统推出了这个“影子文件”。
该文件专门用于存储用户密码的加密哈希值和安全策略。
只有 root 用户可以读取它。
普通用户也没有访问权限。
这符合最小特权原则。

记得有一次,我发现某个系统中/etc/shadow的权限被改变了。
我当时心里嘀咕,赶紧查了一下。
幸运的是没有出现大问题。
如果有人对其进行恶意攻击,那就麻烦了。

这个文件的结构非常有趣。
每一行对应一个用户,用冒号分隔,共9 个字段。
如用户名、加密密码、最后修改时间等。
加密密码列使用SHA-5 1 2 、SHA-2 5 6 等算法生成的哈希值。
如果您看到星号或感叹号,则表示该帐户已被锁定。

说到密码管理,Linux系统提供了几个命令。
例如为此,您可以使用 passwd 命令来更改密码。
普通用户可以修改自己的密码,root用户可以修改别人的密码。
还有 passwd-l 和 passwd-u 命令可以锁定和解锁帐户。
passwd -S 命令可以检查密码状态。

这个密码策略配置也很特别。
全局策略是修改/etc/login.defs文件,用户级策略是使用ch命令。
记得有一次,一个用户的密码太简单,所以我用chase命令强制他下次登录时更改密码。

说到密码加密,Linux系统有一个opensslpasswd命令,可以生成加密的密码。
例如,我之前使用 openingslpasswd-6 -saltrhel 生成加盐 SHA-5 1 2 哈希值。

就安全防范而言,最重要的是不要直接编辑/etc/shadow文件。
相反,使用 passwd 和 chage 等工具来间接修改它。
定期审核文件权限,确保只有 root 用户可以读取它们。
此外,将 PAM 模块与 pam_pwquality 等密码复杂性策略相结合可以进一步提高安全性。

总之,Linux用户密码管理还是比较复杂的,但是只要掌握这些基本操作和原理,就可以更好地保护系统安全。

每天学一个 Linux 命令(10):passwd

坦白讲,passwd命令是Linux系统中密码管理的“总开关”,但如果使用得当,可以避免很多问题。

我先说最重要的事情。
普通用户只能修改自己的密码。
这是一条铁律:去年我们开始这个项目的时候,一个新人修改了root密码,导致系统几乎瘫痪。
还有一点是管理员可以使用passwd -S来检查密码状态。
例如,敏功阁的密码将在3 0天后过期,因此可以提醒她提前更改密码。
还有另一个关键细节,例如使用 passwd -f。
上次测试时忘记了这个提示的运维经理直接锁定了整个用户组。

一开始我以为passwd就是改密码那么简单,后来发现不对。
诸如 -d 设置空白密码和 -l 锁定帐户之类的操作在安全审核中特别有用。
等等,还有别的事。
使用--stdin确实很方便,但是我测试的时候差点把密码放到屏幕上了。
说实话,这很令人困惑。

建议记下 passwd -S 中列出的字段,尤其是 P 密码状态和过期时间,以避免不得不临时检查文档。

Linux如何设置用户密码有效期

等等,这是上周我帮隔壁公司的服务器管理员调整用户密码时发生的事情。

那天,他急得满头大汗。
他说一个开发人员的账户突然打不开了。
检查了半天,他发现密码已经过期了。
系统提示的很清楚,说密码过期了,必须重新设置。
我当时就想,如果能提前提醒一下就好了。

Linux系统中设置密码有效期非常方便。
只需使用 chage 命令即可。
我记得我写了一个小脚本,是为了在他们公司统一设置几十个开发账号。
只需逐行读取用户名列表,然后使用 chage 命令更改密码有效期即可。
最重要的是记住要以root权限运行,否则你将无法更改它。

我的脚本似乎将密码有效期设置为9 0天,并提前7 天提醒用户。
这是安全的,用户不会感到太烦恼。
对于企业用户来说,密码有效期设置太短,只有3 0天。
结果,开发者抱怨说,他们刚刚改了密码,但测试环境还没有跑完,又得重新改。
实在是太麻烦了。

不过话说回来,设置密码有效期太长也是不行的。
我以前在另一家公司见过这样的情况,有效期设置为1 8 0天。
结果系统日志显示有一个账号被暴力破解。
后来发现是因为密码使用时间太长,被破解了。

所以,这确实取决于具体情况。
密钥服务器必须较短,如6 0天,内部系统可以较长,9 0天左右。
而且你必须与用户进行良好的沟通,并告诉他们为什么需要这样设置。

等一下,我突然想到除了chage命令之外,PAM模块还可以加强密码策略。
例如,使用 pam_cracklib,您可以将密码设置为包含数字和字母,而不是生日。
有一位用户总是用自己的生日作为密码,并表示自己会记住。
后来被迫改成复杂的,也就老实了。

但是,现在有些系统似乎使用了authconfig之类的工具。
界面看起来比较顺眼,并且可以批量设置密码策略。
这只是取决于公司使用什么环境。

话虽如此,密码确实很难防范。
想想看,现在的钓鱼邮件非常多,密码泄露也是常有的事。
因此,定期更改密码时,一定要教育用户,不能仅仅依赖系统设置。

用户总是觉得麻烦,说:“我的密码这么复杂,怎么会泄露呢?” 但你告诉他,无论密码多么复杂,如果账号被盗,也不是世界末日。

该密码的有效期是多长? 每个行业都有标准吗? 我的印象好像是金融行业要求比较严格,其次是医疗行业,其他行业要求相对宽松? 你必须检查最新的安全标准才能知道。

linux下怎么设置用户的密码不过期?

是的,要设置密码过期时间,usermod -e 非常有用。
但如果您想为所有用户更改它,则需要编辑etc/login.defs 文件。

例如,您将 PASS_MAX_DAYS 更改为 3 0,然后保存。
这样,以后添加的新用户默认必须在 3 0 天内更改密码。
这个技巧效果很好,我以前用过。

要更改单个用户,也可以直接使用etc/shadow。
查看这个 Ghost 文件并找到 root 用户的行。
“U”是密码过期标记。
如果您希望它永不过期,请删除“U”或将其替换为“9 9 9 9 9 ”。
我尝试将“U”更改为空白,系统并不真正关心密码是否已过期。
这是一个极好的举措。

说实话,这两种方法都比较实用。
您可以根据情况进行选择。