對系統定期更改密碼是一個很重要的安全常識,一般,我們更改用戶密碼都使用passwduser這樣的命令來更改密碼,然而這樣會步入交互模式,雖然使用腳本也不能很便捷的批量更改,除非使用expect這樣的軟體來實現,莫非更改一下密碼還須要單獨安裝一個軟體包嗎?不,我們也許還有其他好多方式可以讓我們避免交互的,下邊具體寫一下具體的實現方法:
第一種:
echo"123456"|passwd--stdinroot
優點:便利快速
缺點:假如你輸入的指令能被他人透過history或則其他方法捕獲,這麼這樣的方法是很不安全的redflag linux,更重要的是假如密碼同時富含單冒號和雙冒號,這麼則未能透過這些方式更改。
說明:
批次更改linux密碼passwd--stdinuser從標準輸入中讀取密碼,所以用戶可以在腳本中使用如echoNewPasswd|passwd--stdinusername這些方法來批量修改密碼但在其它的一些發行版(如Debian/Suse)所提供的passwd並不支援--stdin這個參數
第二種:
a.首先將使用者名稱密碼一起寫入一個臨時檔案.
catchpass.txt
root:123456
zhaohang:123456
b.使用以下命令對用戶口令進行更改:
chpasswd c.可以使用123456來登入系統,密碼更改完畢. 優點:可以很快速方便的更改多個使用者密碼 缺點:明文密碼寫在文件裡一直變得不夠安全,並且防止了第一種更改形式不能有特殊字符串密碼的情況. 第三種: a.用opensslpasswd-1來世成用戶口令,連同用戶名一起寫入檔案. catchpass.txt root:$1$ri2hceVU$WIf.firUBn97JKswK9ExO0 zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b. b.使用以下命令對用戶口令進行更改: chpasswd-e c.可以使用123456來登入系統,密碼更改完畢. 優點:可以很快速方便的更改多個使用者密碼 缺點:和前面兩種相比都大大提高了安全性 附加介紹: opensslpasswd-1指令可以輸出shadow上面的密碼,把這個指令產生的秘串修改為你shadow裡的密碼,這麼上次你登入系統就可以用你的產生密碼的口令來登陸了,使用這個指令,雖然口令一樣,多次執行產生的密碼字串也不一樣。那種hash值對應的密碼是完全隨機的基於64位元組編碼的28位長,因而要破解它是十分困難的,只要不用這些密碼早已公佈下來的hash值創建帳號,雖然這種密碼文件被公佈也還是比較安全的。使用舊的unix哈希可以去除-1參數。 [root@WEB01~]#opensslpasswd-1 Password:123456 Verifying-Password:123456 $1$ri2hceVU$WIf.firUBn97JKswK9ExO0 也可以直接使用以下指令直接產生: [root@WEB01~]#opensslpasswd-1123456 [root@WEB01~]#opensslpasswd-1-salt"yoctor"123456 裡面指令中的salt自己隨意輸入些東西 由於設定密碼的時侯密碼密文是MD5加密的linux 批量修改擴展名,在形成哈希值的時侯系統回在密文中加如鹽繼而使密文未能反向破譯。 passwd加密的時侯系統加的salt是時間 在RedhatRedflagcentosfclinux系統上面腳本的啟動 先後: 第一步:透過/boot/vm進行啟動vmlinuz 第二步:init/etc/inittab 第三步:啟動對應的腳本linux 批次修改副檔名,而且開啟終端機 rc.sysinit rc.d(上面的腳本) rc.local 第四步:啟動login登陸介面login 第五步:在使用者登入的時侯執行sh腳本的次序:每次登入的時侯就會完全執行的 /etc/profile.d/file /etc/profile /etc/bashrc /root/.bashrc /root/.bash_profile // 由於嵌入式系統中沒有chpasswd,useradd指令,而第一個方法個別版本不支援--stdin,所以可用以下方法來取代 /etc/profile中新增如下linux vps,可以實現開機後步入普通用戶civintec,而不是預設登入root passwdroot
以上是修改密碼的安全方法:避免互動的多種實作方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!