1. <wbr id="cnjas"><legend id="cnjas"></legend></wbr>

          Linux培訓
          達內IT學院

          400-111-8989

          關于Linux用戶登錄密碼的生成

          • 發布:Linux培訓
          • 來源:Linux教程
          • 時間:2017-11-01 18:02

          一、從自動化需求說起

          如何生成一個Linux用戶登錄密碼?可能有人會說用passwd生成。的確,passwd命令能夠幫助我們重置用戶登錄密碼,但是這并沒有解答如何生成一個Linux用戶登錄密碼的疑問。

          對于這個問題,秉承著實用主義的精神,我原本也不會去深究。畢竟,安裝的時候會設置密碼,安裝完畢后能通過passwd命令重置密碼,學會這兩點后已滿足一般的需求已經綽綽有余了。

          但是,對于自動化而言,知道以上的兩點是不夠的。Linux的自動化安裝過程中,設置用戶登錄密碼這事,肯定不能有人為干預,否則談什么自動化。操作系統安裝完畢后,也有可能會有重置用戶密碼的自動化需求,此時使用passwd命令來重置用戶密碼,也不見得是最佳的選擇。

          如果明白了密碼的生成機制,那么這個自動化需求的難題也就迎刃而解了。

          二、密碼生成理論

          Linux基礎的人一定知道,Linux的用戶登錄密碼信息是存放在/etc/shadow文件當中的,并且該文件只有root用戶能夠訪問。以下會以voidint這個用戶為例,看一下這個用戶的密碼信息。

          $ sudo cat /etc/shadow | grep voidint

          [sudo] password for voidint:

          voidint:$6$3kheX/Vg$TGum9JEjfmGsj8Mfk3SUY/d/bWkJgnRimCxoaDTX7wcgrraYvU.fiziEUdpDglWc58uPZqWJhKNjiXayP9Q6b0:16892::::::

          很明顯,這個字符串被:符號分隔成了9段。我們這里只關注前兩段,至于每一段具體的含義,可以戳這里自行閱讀。第一段,是用戶名稱。第二段,即為用戶密碼。其實密碼這種稱呼并不準確。相對準確的說法是,用戶密碼明文經過某種哈希算法計算所獲得的密文。但是,鑒于這個相對準確的說法實在太長太拗口,不便于表達。因此,以下提到的密碼在無特別說明情況下,一律指的是密碼明文的密文。

          言歸正傳,看到這里相信好多人會和我有一樣的思考: 是不是只要知道了密碼生成的算法,并按照此算法生成一個滿足Linux要求的密碼,再把密碼覆蓋這個第二段的內容,那么用戶密碼就被重置了嗎?

          仔細看這段密碼,會發現它是由$xxx$xxx$xxx的格式構成,即由$符號分隔的3端字符串構成。查閱資料后得知,這個格式可以進一步概括為$id$salt$encrypted。簡要說明下$id$salt$encrypted中各個部分的含義:

          id: 加密(確切說是哈希)所用算法的代號。

          salt: 由程序隨機生成的字符串,即鹽)。

          encrypted: 用戶密碼明文字符串加鹽后使用哈希算法所得的哈希值,即哈希(明文+鹽)。

          特別說明

          資料中還提到了另外一種形式的密碼——$id$rounds=yyy$salt$encrypted。其中,鹽的部分換成了rounds=yyy。yyy是一個由用戶(調用方)提供的[1000, 999999999]之間的整數。

          三、密碼生成實踐

          知道了上面這部分基礎知識,那么接下來就是理論指導實踐的環節了。具體可以借助什么工具來生成密碼呢?這里使用的grub-crypt工具。你可以在某個Linux發行版中安裝這個工具,也可以使用我提供的這個dockerfile。

          使用sha512算法生成密碼

          $ grub-crypt --sha-512

          Password:

          Retype password:

          $6$r1jcut3Crl8bSIMo$XfKnrl4Ykzk2KPQ59MCXcUef9OjZWoZrIp7aeWwnCzIVQY1p/G1EiJQE4DYFej783NlvR5KtKYXs4P/hQaVst.

          將生成的密碼寫入/etc/shadow文件中(該文件只有root用戶才有權限讀寫,若root也無權限,則賦予600權限即可)

          $ sudo cat /etc/shadow | grep voidint

          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文件結構

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:八大系統監控工具 你值得擁有!
          下一篇:Linux編程const使用詳細介紹

          2021年Linux云計算全套免費視頻教程

          2021年網絡運維全套免費視頻教程在哪里?

          Linux學習路線圖

          Linux內核學習路線圖,該怎么學習

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          欧美做爰视频免费播放_做暖全过程免费的视频_性爱免费视频 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>