Perbedaan antara ! vs !! vs * di / etc / shadow

38

Bidang kedua dalam /etc/shadowfile Linux mewakili kata sandi. Namun, yang kami lihat adalah:

  1. Beberapa bidang kata sandi mungkin memiliki satu tanda seru

    <account>:!:.....
    
  2. Beberapa bidang kata sandi mungkin memiliki tanda seru ganda

    <account>:!!:.....
    
  3. Beberapa bidang kata sandi mungkin memiliki tanda bintang

    <account>:*:.....
    

Dengan beberapa riset di internet dan melalui utas ini , saya bisa mengerti itu *berarti kata sandi tidak pernah dibuat, !berarti terkunci.

Adakah yang bisa menjelaskan arti dari tanda seru ganda !!? dan apa bedanya dengan ( !)?

JavaTec
sumber
Distribusi mana yang Anda gunakan?
muru
Hai Muru, saya baru di Unix dan mencoba membuat skrip yang akan berjalan di RHEL 6.6 dan HP-UX B.11.23
JavaTec
3
"Secara konvensi, akun yang tidak dimaksudkan untuk masuk (misalnya bin, daemon, sshd) hanya berisi tanda bintang tunggal di bidang kata sandi. Perhatikan bahwa tidak ada yang istimewa tentang '*', itu hanya salah satu dari banyak karakter yang tidak dapat terjadi pada kata sandi terenkripsi yang valid (lihat crypt (3)). " - Halaman manual OpenBSD untuk passwd (5) . Saya harapkan! atau !! tidak berbeda, secara teknis, apakah itu file passwd yang valid, atau mengenai login. Namun, beberapa alat mungkin memiliki dukungan khusus.
TOOGAM
1
Jangan gunakan dokumen BSD sebagai referensi untuk ini. Basis data akun mereka menangani berbagai hal secara berbeda dan bahkan tidak memiliki /etc/shadowfile. Jangan berikan jawaban ke dalam komentar . ☺
JdeBP

Jawaban:

31

Keduanya "!" dan "!!" hadir di bidang kata sandi berarti akun dikunci.

Seperti dapat dibaca di dokumen berikut, "!!" dalam entri akun dalam bayangan berarti akun pengguna telah dibuat, tetapi belum diberi kata sandi. Sampai diberi kata sandi awal oleh sysadmin, itu dikunci secara default.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/s2-redhat-config-users-process.html

Rui F Ribeiro
sumber
4
Ini mungkin benar pada sistem Red Hat, tetapi tidak harus di tempat lain - di Ubuntu atau Arch Linux, akun yang baru dibuat tanpa kata sandi hanya memiliki !, bukan !!.
muru
2
Memang benar bahwa saya belum pernah melihat "!!" dalam sistem Debian. Saya kira OP menggunakan beberapa sistem berbasis RH, atau SuSE.
Rui F Ribeiro
Terima kasih atas jawaban cepat Anda, akankah penjelasan di atas disediakan oleh Rui - bagus juga untuk hp-ux?
JavaTec
4
@JavaTec Tidak harus: Saya pikir semua persatuan yang memiliki /etc/shadowbidang yang sama tetapi bagaimana bidang kata sandi menyimpan informasi non-kata sandi berbeda. Periksa dokumentasi HP-UX, dimulai dengan shadowhalaman manual.
Gilles 'SO- stop being evil'
1
HP-UX bahkan tidak memiliki /etc/shadowsampai relatif baru-baru ini: sebelum HP-UX 11.11, opsinya adalah tanpa bayangan klasik /etc/passwdatau "Basis Komputasi Tepercaya", yang menyimpan hash kata sandi setiap pengguna dan informasi akun lainnya dalam file individual yang dinamai /tcb/files/auth/<initial>/<username>, hanya dapat dibaca oleh root. Dalam HP-UX 11.11, /etc/shadowdiperkenalkan sebagai tambahan opsional , pada 11.23 itu adalah opsi di OS dasar, dan pada 11.31 TCB akhirnya ditinggalkan.
telcoM
10

Mungkin juga perlu diperhatikan <account>::.....artinya tidak ada kata sandi yang diperlukan (kata sandi kosong).

Jika Anda membuat pengguna ssh-only yang dapat Anda gunakan <account>::0:0:99999:7:::untuk mengharuskan pengguna menetapkan kata sandi mereka (yaitu yang mereka gunakan untuk sudo) pada login pertama mereka.

CoolAJ86
sumber
8
Waspadalah terhadap ini. Bidang kosong berarti tidak ada kata sandi, dan Anda hanya perlu menekan ENTER untuk masuk, setidaknya di konsol.
Rui F Ribeiro
Dari man shadowtentang bidang kata sandi terenkripsi: "Bidang ini mungkin kosong, dalam hal ini tidak ada kata sandi yang diperlukan untuk mengotentikasi sebagai nama login yang ditentukan." <- Meninggalkan bidang ini emtpy menghasilkan akun terbuka dan ini memang harus dihindari!
Laas
Perhatikan bahwa banyak implementasi SSH memblokir login pada akun null yang di-password-kan secara default: sudo /usr/sbin/sshd -T| grep emptyakan mengembalikan: "permitemptypasswords no"
Brian Huntley