偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)于Linux用戶(hù)登錄密碼的生成

系統(tǒng) Linux
如何生成一個(gè)Linux用戶(hù)登錄密碼?可能有人會(huì)說(shuō)用passwd生成。的確,passwd命令能夠幫助我們重置用戶(hù)登錄密碼,但是這并沒(méi)有解答如何生成一個(gè)Linux用戶(hù)登錄密碼的疑問(wèn)。

Linux用戶(hù)登錄密碼的生成

一、從自動(dòng)化需求說(shuō)起

如何生成一個(gè)Linux用戶(hù)登錄密碼?可能有人會(huì)說(shuō)用passwd生成。的確,passwd命令能夠幫助我們重置用戶(hù)登錄密碼,但是這并沒(méi)有解答如何生成一個(gè)Linux用戶(hù)登錄密碼的疑問(wèn)。

對(duì)于這個(gè)問(wèn)題,秉承著實(shí)用主義的精神,我原本也不會(huì)去深究。畢竟,安裝的時(shí)候會(huì)設(shè)置密碼,安裝完畢后能通過(guò)passwd命令重置密碼,學(xué)會(huì)這兩點(diǎn)后已滿(mǎn)足一般的需求已經(jīng)綽綽有余了。

但是,對(duì)于自動(dòng)化而言,知道以上的兩點(diǎn)是不夠的。Linux的自動(dòng)化安裝過(guò)程中,設(shè)置用戶(hù)登錄密碼這事,肯定不能有人為干預(yù),否則談什么自動(dòng)化。操作系統(tǒng)安裝完畢后,也有可能會(huì)有重置用戶(hù)密碼的自動(dòng)化需求,此時(shí)使用passwd命令來(lái)重置用戶(hù)密碼,也不見(jiàn)得是最佳的選擇。

如果明白了密碼的生成機(jī)制,那么這個(gè)自動(dòng)化需求的難題也就迎刃而解了。

二、密碼生成理論

有Linux基礎(chǔ)的人一定知道,Linux的用戶(hù)登錄密碼信息是存放在/etc/shadow文件當(dāng)中的,并且該文件只有root用戶(hù)能夠訪問(wèn)。以下會(huì)以voidint這個(gè)用戶(hù)為例,看一下這個(gè)用戶(hù)的密碼信息。

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

很明顯,這個(gè)字符串被:符號(hào)分隔成了9段。我們這里只關(guān)注前兩段,至于每一段具體的含義,可以戳這里自行閱讀。第一段,是用戶(hù)名稱(chēng)。第二段,即為用戶(hù)密碼。其實(shí)密碼這種稱(chēng)呼并不準(zhǔn)確。相對(duì)準(zhǔn)確的說(shuō)法是,用戶(hù)密碼明文經(jīng)過(guò)某種哈希算法計(jì)算所獲得的密文。但是,鑒于這個(gè)相對(duì)準(zhǔn)確的說(shuō)法實(shí)在太長(zhǎng)太拗口,不便于表達(dá)。因此,以下提到的密碼在無(wú)特別說(shuō)明情況下,一律指的是密碼明文的密文。

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

仔細(xì)看這段密碼,會(huì)發(fā)現(xiàn)它是由$xxx$xxx$xxx的格式構(gòu)成,即由$符號(hào)分隔的3端字符串構(gòu)成。查閱資料后得知,這個(gè)格式可以進(jìn)一步概括為$id$salt$encrypted。簡(jiǎn)要說(shuō)明下$id$salt$encrypted中各個(gè)部分的含義:

  • id: 加密(確切說(shuō)是哈希)所用算法的代號(hào)。
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: 由程序隨機(jī)生成的字符串,即鹽)。
  • encrypted: 用戶(hù)密碼明文字符串加鹽后使用哈希算法所得的哈希值,即哈希(明文+鹽)。

特別說(shuō)明

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

三、密碼生成實(shí)踐

知道了上面這部分基礎(chǔ)知識(shí),那么接下來(lái)就是理論指導(dǎo)實(shí)踐的環(huán)節(jié)了。具體可以借助什么工具來(lái)生成密碼呢?這里使用的grub-crypt工具。你可以在某個(gè)Linux發(fā)行版中安裝這個(gè)工具,也可以使用我提供的這個(gè)dockerfile。

  • 使用sha512算法生成密碼 
  1. $ grub-crypt --sha-512 
  2. Password
  3. Retype password
  4. $6$r1jcut3Crl8bSIMo$XfKnrl4Ykzk2KPQ59MCXcUef9OjZWoZrIp7aeWwnCzIVQY1p/G1EiJQE4DYFej783NlvR5KtKYXs4P/hQaVst.  
  • 將生成的密碼寫(xiě)入/etc/shadow文件中(該文件只有root用戶(hù)才有權(quán)限讀寫(xiě),若root也無(wú)權(quán)限,則賦予600權(quán)限即可)
  1. $ sudo cat /etc/shadow | grep voidint 
  2.  
  3. voidint:$6$r1jcut3Crl8bSIMo$XfKnrl4Ykzk2KPQ59MCXcUef9OjZWoZrIp7aeWwnCzIVQY1p/G1EiJQE4DYFej783NlvR5KtKYXs4P/hQaVst.:16892::::::  
  • 退出當(dāng)前用戶(hù)并使用新修改的密碼登錄

四、參考

責(zé)任編輯:龐桂玉 來(lái)源: segmentfault
相關(guān)推薦

2017-06-07 12:48:07

Linuxmimipenguin轉(zhuǎn)儲(chǔ)登錄

2009-09-03 09:08:08

Linuxroot密碼遺忘

2018-07-26 11:10:13

Linux命令更改密碼

2013-08-21 09:58:05

2022-06-24 08:48:47

用戶(hù)名密碼登錄

2020-03-03 08:00:00

Linux創(chuàng)建用戶(hù)登錄

2013-06-26 15:35:33

2011-04-07 16:54:42

2017-06-06 14:44:37

2023-09-13 22:54:06

2011-07-27 15:45:29

MySQL數(shù)據(jù)庫(kù)root用戶(hù)遠(yuǎn)程登錄

2023-10-18 13:26:54

2009-07-06 18:27:09

SUSE Linux超級(jí)用戶(hù)密碼修改

2015-10-12 09:36:24

登錄密碼Linux

2010-04-07 11:04:52

Oracle用戶(hù)密碼

2010-01-12 15:14:42

Linux MySQL

2015-10-21 11:03:21

ssh登錄Linux

2021-07-15 13:32:12

Linux生成密碼

2023-02-23 09:26:40

Linux登錄用戶(hù)

2022-04-23 16:36:30

Linux密碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)