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.
@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.
berarti beberapa kata sandi yang sangat mirip SEMUA akan berfungsi. Sebagai contoh, pada server Oracle Linux 7.4 dan desktop Ubuntu 17.10 pertimbangkan:
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:
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:sumber
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:Tidak disarankan untuk mengatur kata sandi dengan cara ini.
Sebaliknya, Anda harus menggunakan
passwd <username>
. Ini harus (asusermod
) dilakukan sebagai root (jika Anda tidak mengubah kata sandi pengguna yang saat ini masuk).Untuk mengubah kata sandi untuk pengguna foo.
Ini akan meminta kata sandi baru.
Lihat halaman manual
passwd
untuk informasi lebih lanjut tentang pengaturan, misalnya, waktu kedaluwarsa.Semoga berhasil!
sumber
Anda dapat menggunakan
passwd
:Anda tidak perlu
sudo
jika Anda superuser sendirisumber
sudo
memerlukan kata sandi root :)superuser
diwakili?Cara untuk menetapkan kata sandi dengan usermod (yang sebenarnya diminta OP) adalah dengan menggunakan
crypt()
kata sandi hash untuk-p
argumen tersebut.Kemudian gunakan itu dalam
usermod -p
argumen baris perintah Anda :sumber
Perintah baris tunggal non-interaktif untuk mengubah kata sandi pengguna:
usermod -p
membutuhkan kata sandi terenkripsi agar berfungsi. Harap dicatatnew-password
akan terlihat bagi pengguna yang dapat mendaftar proses.sumber
Sesuatu yang harus ditambahkan di sini adalah sebagai berikut. Metode ini:
sudo usermod -p
perl -e "print crypt("new-password","Q4")"
johnberarti 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")"
orabuntuSekarang 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}
sumber
Ketik saja
Dengan cara ini, pengguna normal dapat mengubah kata sandi sendiri tanpa hak istimewa root jika Anda tidak memilikinya.
sumber