linux – 从脚本更改root密码
发布时间:2020-12-14 01:11:08 所属栏目:Linux 来源:网络整理
导读:我正在寻找一种方法来通过bash脚本在 Linux系统上更改root用户的密码,而无需启动系统.到目前为止我发现的唯一的事情是要么删除密码,要么使用chroot,我不想使用它. 我知道如何清空root密码,但我需要将其更改为脚本中先前定义的其他密码. 我有root访问整个文件
我正在寻找一种方法来通过bash脚本在
Linux系统上更改root用户的密码,而无需启动系统.到目前为止我发现的唯一的事情是要么删除密码,要么使用chroot,我不想使用它.
我知道如何清空root密码,但我需要将其更改为脚本中先前定义的其他密码. 我有root访问整个文件系统. 系统使用影子密码,有没有办法生成加密的影子密码而无需登录/ chrooting? 从脚本更改root密码的其他任何方法? 解决方法
密码哈希位于/ etc / shadow中.您可以简单地用生成的(盐渍)哈希替换它.密码哈希的格式在crypt(3)中描述.默认值为DES,但在glibc2系统上,它可以包含几种不同的加密方法之一:
ID | Method --------------------------------------------------------- 1 | MD5 2a | Blowfish (not in mainline glibc; added in some | Linux distributions) 5 | SHA-256 (since glibc 2.7) 6 | SHA-512 (since glibc 2.7) 因此,影子密码字符串可能如下所示:$5 $saltysalt $KhboodWTnuXJ5siXvWx5mxYXbnuNJOxROfD1inCILfD 在这种情况下,第一个$5 $部分表示它是SHA-256哈希,中间部分是盐,其余部分是实际哈希. 要生成一个,最好使用系统的crypt(3)函数,例如使用最小的C程序: #include <stdio.h> #include <crypt.h> int main(int argc,char *argv[]) { printf("%sn",crypt(argv[1],argv[2])); } 使用cc mkpass.c -o mkpass -lcrypt进行编译,然后使用明文密码和salt字符串运行以生成可以放入/ etc / shadow的字符串: ./mkpass yourpassword yoursalt # DES (default) ./mkpass yourpassword '$6$yoursalt$encrypted' # SHA-512 (quote your $) 旧Linux系统可能不支持第二种形式.最好查看影子文件中的现有字符串,并使用相同的哈希类型(从顶部的$id $列表). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |