回答:
これが機能しなかった理由は、usermod
's -pオプションがパスワードがすでに暗号化されていることを期待しているためです。
以下からusermod
のmanページ:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3).
この方法でパスワードを設定することはお勧めできません。
代わりにを使用してくださいpasswd <username>
。これは(としてusermod
)rootとして実行する必要があります(現在ログインしているユーザーのパスワードを変更しない場合)。
ユーザーfooのパスワードを変更します。
sudo passwd foo
これにより、新しいパスワードの入力を求められます。
passwd
有効期限などの設定の詳細については、マンページをご覧ください。
幸運を!
ここに追加する必要があるのは次のとおりです。この方法:
sudo usermod -p perl -e "print crypt("new-password","Q4")"
john
複数の非常に類似したパスワードがすべて機能することを意味します。たとえば、Oracle Linux 7.4サーバーとUbuntu 17.10デスクトップでは、次のことを考慮してください。
sudo usermod -p perl -e "print crypt("borkling","Q4")"
orabuntu
今、もしそうなら:
su-orabuntu
「borkling」で始まるすべてのパスワードが機能することがわかります。たとえば、
borkling88 borklingjars
「borkline」は機能しませんが、前述のように、接頭辞が「borkling」のパスワードはすべて、このように設定すると機能します。
これにafaikがこの望ましくない副作用を持たないようにする方法は次のとおりです。
(これらのクレジットはここの「Sandeep」に送られます:
https : //stackoverflow.com/questions/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script)
RedHaty Linuxの場合:(sudo権限を付与したくない場合は、「-Gホイール」を省略してください)
sudo useradd -m -p $(openssl passwd -1 $ {PASSWORD})-s / bin / bash -G wheel $ {USERNAME}
Debiany Linuxの場合(sudo privsが不要な場合は、-G sudoを省略してください):
sudo useradd -m -p $(openssl passwd -1 $ {PASSWORD})-s / bin / bash -G sudo $ {USERNAME}