usermodを使用してパスワードを変更する方法


10

サーバーのスーパー管理者で、既存のユーザーのパスワードを変更したい。どうやってやるの ?

私は試した

usermod -p 'new-password' john

しかし、うまくいきませんでしたか?


最良の答えはこちらです:askubuntu.com/a/80447/55435、コメントもチェックアウトしてください
ryenus

回答:


17

usermod -pフラグは、データがすでに暗号化された形式のパスワードであることを期待しています。

openssl passwd暗号化されたデータの生成に使用するか、次のようにします。

usermod -p `openssl passwd` (USERNAME)

openssl passwd0〜10文字のパスワードが必要です。
匿名の

6

これが機能しなかった理由は、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有効期限などの設定の詳細については、マンページをご覧ください。

幸運を!


6

以下を使用できます passwd

sudo passwd USERNAME 

sudo自分がスーパーユーザーであれば必要ありません


sudorootパスワードが必要です:)
Achu

@Achu:現在のユーザーパスワードが必要です。しかし、彼はスーパーユーザーです。
RiaD

何をsuperuser表していますか?
アチュ

3

usermodでパスワードを割り当てる方法(これはOPが実際に要求したものです)はcrypt()-p引数にハッシュされたパスワードを使用することです。

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

次に、それをusermod -pコマンドライン引数で使用します。

usermod -p ${HASH} john

2

ユーザーのパスワードを変更するための非対話式の単一行コマンド:

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -p暗号化されたパスワードが必要です。new-passwordプロセスを一覧表示できるユーザーにはが表示されることに注意してください。


2

ここに追加する必要があるのは次のとおりです。この方法:

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}


1

入力するだけ

passwd

このようにして、通常のユーザーはroot権限がなくても自分のパスワードを変更できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.