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?
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?
Jawaban:
The usermod -p
bendera mengharapkan data yang akan password sudah dalam format terenkripsi.
Gunakan openssl passwd
untuk menghasilkan data terenkripsi, atau lakukan seperti ini:
usermod -p `openssl passwd` (USERNAME)
openssl passwd
mengharapkan kata sandi 0 hingga 10 karakter.
Alasan tidak berhasil adalah karena usermod
opsi -p mengharapkan kata sandi sudah dienkripsi.
Dari usermod
halaman 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 passwd
untuk informasi lebih lanjut tentang pengaturan, misalnya, waktu kedaluwarsa.
Semoga berhasil!
Cara untuk menetapkan kata sandi dengan usermod (yang sebenarnya diminta OP) adalah dengan menggunakan crypt()
kata sandi hash untuk -p
argumen tersebut.
SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""
Kemudian gunakan itu dalam usermod -p
argumen baris perintah Anda :
usermod -p ${HASH} john
Perintah baris tunggal non-interaktif untuk mengubah kata sandi pengguna:
sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john
usermod -p
membutuhkan kata sandi terenkripsi agar berfungsi. Harap dicatat new-password
akan terlihat bagi pengguna yang dapat mendaftar proses.
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}