Bagaimana cara mengubah kata sandi menggunakan usermod?

10

Saya superadmin dari server dan suka mengubah kata sandi dari pengguna yang ada. Bagaimana saya bisa melakukan itu?

Saya mencoba

usermod -p 'new-password' john

tetapi tidak berhasil?

Tuan Coder
sumber
jawaban terbaik ada di sini: askubuntu.com/a/80447/55435 , perhatikan juga untuk checkout komentar
ryenus

Jawaban:

17

The usermod -pbendera mengharapkan data yang akan password sudah dalam format terenkripsi.

Gunakan openssl passwduntuk menghasilkan data terenkripsi, atau lakukan seperti ini:

usermod -p `openssl passwd` (USERNAME)
Rorik
sumber
openssl passwdmengharapkan kata sandi 0 hingga 10 karakter.
Onnonymous
6

Alasan tidak berhasil adalah karena usermodopsi -p mengharapkan kata sandi sudah dienkripsi.

Dari usermodhalaman manual:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

Tidak disarankan untuk mengatur kata sandi dengan cara ini.

Sebaliknya, Anda harus menggunakan passwd <username>. Ini harus (as usermod) dilakukan sebagai root (jika Anda tidak mengubah kata sandi pengguna yang saat ini masuk).

Untuk mengubah kata sandi untuk pengguna foo.

sudo passwd foo

Ini akan meminta kata sandi baru.

Lihat halaman manual passwduntuk informasi lebih lanjut tentang pengaturan, misalnya, waktu kedaluwarsa.

Semoga berhasil!

Zoke
sumber
6

Anda dapat menggunakan passwd:

sudo passwd USERNAME 

Anda tidak perlu sudojika Anda superuser sendiri

RiaD
sumber
sudomemerlukan kata sandi root :)
Achu
@Achu: diperlukan kata sandi pengguna saat ini. Tapi dia superuser.
RiaD
Apa yang superuserdiwakili?
Achu
3

Cara untuk menetapkan kata sandi dengan usermod (yang sebenarnya diminta OP) adalah dengan menggunakan crypt()kata sandi hash untuk -pargumen tersebut.

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

Kemudian gunakan itu dalam usermod -pargumen baris perintah Anda :

usermod -p ${HASH} john
Waldo Trout
sumber
2

Perintah baris tunggal non-interaktif untuk mengubah kata sandi pengguna:

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

usermod -pmembutuhkan kata sandi terenkripsi agar berfungsi. Harap dicatat new-passwordakan terlihat bagi pengguna yang dapat mendaftar proses.

Benoy G
sumber
2

Sesuatu yang harus ditambahkan di sini adalah sebagai berikut. Metode ini:

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

berarti beberapa kata sandi yang sangat mirip SEMUA akan berfungsi. Sebagai contoh, pada server Oracle Linux 7.4 dan desktop Ubuntu 17.10 pertimbangkan:

sudo usermod -p perl -e "print crypt("borkling","Q4")"orabuntu

Sekarang jika ada:

su - orabuntu

Anda akan menemukan bahwa kata sandi APAPUN yang dimulai dengan "borkling" akan berfungsi, mis

borkling88 borklingjars

walaupun "borkline" tidak akan berfungsi karena karena seperti yang dinyatakan sebelumnya setiap kata sandi yang memiliki "borkling" karena awalannya juga akan berfungsi ketika kata sandi disetel dengan cara ini.

Cara untuk ini yang afaik tidak memiliki efek samping yang tidak diinginkan ini adalah sebagai berikut:

(kredit untuk ini masuk ke "Sandeep" di sini:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )

Di RedHaty Linuxes: (hilangkan "-G wheel" jika Anda tidak ingin sudo privs diberikan)

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G wheel $ {USERNAME}

Di Debiany Linuxes (hapus sudo -G jika Anda tidak ingin sudo privs):

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}

Gstanden
sumber
1

Ketik saja

passwd

Dengan cara ini, pengguna normal dapat mengubah kata sandi sendiri tanpa hak istimewa root jika Anda tidak memilikinya.

Achu
sumber