web-dev-qa-db-ja.com

usermodを使用したrootパスワードの変更

Linuxボックスに自動rootパスワード変更を実装しようとしています。ユーザーがスクリプトの内容を確認できるようになるため、スクリプトでハッシュを生成しています。

usermodユーティリティでハッシュを渡すことができることがわかりました。ただし、以下に示すように、変数置換の問題が発生しています。

例:

#usermod -p $ 1 $ 0J8av/8N $ LIKB2G56XJn2IXp0XzERo1 root 
 
#grep root /etc/shadow
root:-bashJ8av/8N:15709:0: 99999:7 ::: 
1
kernelpanic

usermodコマンドのパスワードを一重引用符で囲みます''または '\ $'で$をエスケープします

このような

# usermod -p '$1$0J8av/8N$LIKB2G56XJn2IXp0XzERo1' root

または

# usermod -p \$1\$0J8av/8N\$LIKB2G56XJn2IXp0XzERo1 root
4
coredump