作家
登录

Linux用户登录密码的生成

作者: 来源: 2017-10-31 11:47:54 阅读 我要评论

2017年架构师最重要的48个小时 | 8折倒计时


Linux用户登录暗码的生成

一、大年夜主动化需求说起

对于这个问题,秉承实在用主义的精力,我本来也不会去深究。毕竟,安装的时刻会设置暗码,安装完毕后能经由过程passwd敕令重置暗码,学会这两点后已知足一般的需求已经绰绰有余了。

如不雅明白了暗码的生成机制,那么这个主动化需求的难题也就水到渠成了。

二、暗码生成理论

然则,对于主动化而言,知道以上的两点是不敷的。Linux的主动化安装过程中,设置用户登录暗码这事,肯定不克不及有工资干涉,不然谈什么主动化。操作体系安装完毕后,也有可能会有重置用户暗码的主动化需求,此时应用passwd敕令来重置用户暗码,也不见得是最佳的选择。

有Linux基本的人必定知道,Linux的用户登录暗码信息是存放在/etc/shadow文件傍边的,并且该文件只有root用户可以或许拜访。以下会以voidint这个用户为例,看一下这个用户的暗码信息。

  1. $ sudo cat /etc/shadow | grep voidint 
  2.  
  3. [sudo] password for voidint: 
  4.  
  5. voidint:$6$3kheX/Vg$TGum9JEjfmGsj8Mfk3SUY/d/bWkJgnRimCxoaDTX7wcgrraYvU.fiziEUdpDglWc58uPZqWJhKNjiXayP9Q6b0:16892::::::  

若何生成一个Linux用户登录暗码?可能有人会说用passwd生成。切实其实,passwd敕令可以或许赞助我们重置用户登录暗码,然则这并没有解答若何生成一个Linux用户登录暗码的疑问。

很明显,这个字符串被:符号分隔成了9段。我们这里只存眷前两段,至于每一段具体的含义,可以戳这里自行浏览。第一段,是用户名称。第二段,即为用户暗码。其实暗码这种称呼并不精确。相对精确的说法是,用户暗码明文经由某种哈希算法计算所获得的密文。然则,鉴于这个相对精确的说法实袈溱太长太拗口,不便于表达。是以,以下提到的暗码在无特别解释情况下,一律指的是暗码明文的密文。

言归正传,看到这里信赖很多多少人会和我有一样的思虑: 是不是只要知道了暗码生成的算法,并按照此算法生成一个知足Linux请求的暗码,再把暗码覆盖这个第二段的内容,那么竽暌姑户暗码就被重置了吗?

细心看这段暗码,会发明它是由$xxx$xxx$xxx的格局构成,即竽暌股$符号分隔的3端字符串构成。查阅材料后得知,这个格局可以进一步概括为$id$salt$encrypted。扼要颂峦宦$id$salt$encrypted中各个部分的含义:

  • id: 加密(确切说是哈希)所用算法的代号。
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)
  • salt: 由法度榜样随机生成的字符串,即盐)。
  • encrypted: 用户暗码明文字符串加盐后应用哈希算法所得的哈希值,即哈希(明文+盐)。

特别解释

资估中还提到了别的一种情势的暗码——$id$rounds=yyy$salt$encrypted。个中,盐的部分换成了rounds=yyy。yyy是一个由用户(调用方)供给的[1000, 999999999]之间的┞符数。

三、暗码生成实践

知道了膳绫擎这部分基本常识,那么接下来就是理论指导实践的环节了。具体可以借助什么对象来生成暗码呢?这里应用的grub-crypt对象。你可以在某个Linux发行版中安装这个对象,也可以应用我供给的┞封个dockerfile。

  • 应用sha512算法生成暗码 
  1. $ grub-crypt --sha-512 
  2. Password
  3. Retype password
  4. $6$r1jcut3Crl8bSIMo$XfKnrl4Ykzk2KPQ59MCXcUef9OjZWoZrIp7aeWwnCzIVQY1p/G1EiJQE4DYFej783NlvR5KtKYXs4P/hQaVst.  
  • 将生成的暗码写入/etc/shadow文件中(该文件只有root用户才有权限读写,若root也无权限,则付与600权限即可)
  1. $ sudo cat /etc/shadow | grep voidint 
  2.  
  3. voidint:$6$r1jcut3Crl8bSIMo$XfKnrl4Ykzk2KPQ59MCXcUef9OjZWoZrIp7aeWwnCzIVQY1p/G1EiJQE4DYFej783NlvR5KtKYXs4P/hQaVst.:16892::::::  
  • 退出当前用户并应用新修改的暗码登录

四、参考

  • CRYPT(3)
  • CentOS / RHEL 6 : How to password protect grub (Password-Protected Booting)
  • Command | kickstart之中rootpw暗码生成办法
  • 鸟哥的Linux私房菜——/etc/shadow文件构造 

【编辑推荐】

  1. 如安在一个U盘上安装多个Linux发行版
  2. NixOS Linux:先设备后安装的Linux

      推荐阅读

      SSD竟然降价了!你让内存脸往哪放?

    2017年架构师最重要的48个小时 | 8折倒计时 2017年PC硬件主旋律就是一个关键词:涨价。CPU、显卡、内存通通涨价,而大年夜2016年领涨的SSD价格却逐渐回履┞俘常,一众SSD厂商大年夜呼如今的>>>详细阅读


    本文标题:Linux用户登录密码的生成

    地址:http://www.17bianji.com/lsqh/38302.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)