#author("2022-12-13T13:17:53+09:00","default:honma","honma") #author("2022-12-13T13:20:00+09:00","default:honma","honma") * パスワードファイル [#eb2d794e] 以前は[[/etc/passwd:https://linuxjm.osdn.jp/html/shadow/man5/passwd.5.html]] に直接パスワードが書かれていたが、現在は[[/etc/shadow:https://linuxjm.osdn.jp/html/shadow/man5/shadow.5.html]]に格納するシャドウパスワード方式になった。 ファイル属性は/etc/shadowはrootしか読み書きできないようになっている。 pi@raspberrypi:~$ ls -l /etc/shadow -rw-r----- 1 root shadow 921 11月 21 17:05 /etc/shadow pi@raspberrypi:~$ ls -l /etc/passwd -rw-r--r-- 1 root root 1665 11月 21 17:05 /etc/passwd 実際に/etc/shadowに書かれているパスワードを確認。~ 中身はハッシュ値が格納されている。 pi@raspberrypi:~$ sudo cat /etc/shadow | grep pi pi:$5$clhzvEqPUI$X2QJCtWBs22x0hfMq3WEcuALgRth13MmLE9m2Emt6V9:19257:0:99999:7::: 格納されている形式は $id$salt$encrypted 暗号化は[[crypt:https://linuxjm.osdn.jp/html/LDP_man-pages/man3/crypt.3.html]]関数を使用している。 前半の clhzvEqPUI が slat になっていて、同じパスワードをセットしても値が変わるのはここが原因。~ 上記の id が 5 になっているのは SHA-256 を使用していることを示す。~ encrypted は SHA-256 では 43文字固定で出力される。 ** パスワードハッシュの生成 [#m5ea0f8f] perl でワンライナーで書くとこんな感じ perl -e 'print crypt("raspberry", "\$5\$clhzvEqPUI"), "\n";' 実行させると pi@raspberrypi:~$ perl -e 'print crypt("raspberry", "\$5\$clhzvEqPUI"), "\n";' $5$clhzvEqPUI$X2QJCtWBs22x0hfMq3WEcuALgRth13MmLE9m2Emt6V9 pi@raspberrypi:~$ と無事に同じ出力を確認することができる。 ~ ~ #htmlinsert(amazon_pc.html);