Cara menemukan semua cara di mana akun pengguna Unix dikunci

12

Kadang-kadang saya menemukan diri saya dalam situasi di mana sistem yang tidak terawat memiliki akun yang dikunci. Masalahnya adalah bahwa ada berbagai cara di mana akun dapat dikunci, masing-masing dengan metode pengunciannya sendiri.

Bukannya akun itu dikunci dengan tidak benar, hanya secara tidak terduga, tetapi menemukan kunci yang tepat untuk mengatur ulang sulit.

Serangan terbaru saya terhadap masalah ini adalah pada sistem SUSE, dan ternyata kata sandi telah kedaluwarsa (yang awalnya tidak diketahui karena upaya masuk tidak melalui sistem yang menyediakan umpan balik semacam itu), dan kemudian juga terkunci karena upaya login gagal.

Apakah ada daftar di suatu tempat dari semua kunci akun yang mungkin berbeda dan cara menonaktifkannya? Saya bermaksud untuk kerusakan yang sebenarnya, seperti masalah akses direktori home, perpustakaan PAM yang korup, dll., Berada di luar jangkauan untuk pertanyaan ini.

wfaulk
sumber

Jawaban:

13

Anda dapat menggunakan passwduntuk mengumpulkan beberapa informasi misalnya jika akun terkunci

passwd -S user
user LK 2012-11-06 0 99999 7 -1 (Password locked.) (CentOS)
user L 01/22/2013 0 99999 7 -1 (Ubuntu)

The chageutilitas akan memberikan informasi tentang berbagai timer pada akun misalnya untuk sandi unexpired

chage -l user
Last password change                                    : Nov 12, 2012
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

untuk kata sandi yang kedaluwarsa

chage -l user
Last password change                                    : password must be changed
Password expires                                        : password must be changed
Password inactive                                       : password must be changed
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 22
Number of days of warning before password expires       : 33

The passwddan chageutilitas juga daftar banyak dari kunci akun.

Anda dapat menggunakan getentuntuk menarik informasi secara langsung dari database yang relevan untuk pemeriksaan

getent passwd user
user:x:505:505::/home/passtest:/sbin/nologin  <-- denied login
getent shadow user
user:!!:0:0:22:33:44::   <-- this is locked
user9517
sumber
7

Secara umum: tidak.

Jawaban Iain adalah ringkasan yang bagus tentang bagaimana cara menanyakan sistem penuaan kata sandi, tetapi melewatkan segala hal. Sebagai contoh:

  • Seseorang yang mencoba masuk melalui ssh dapat dilarang oleh arahan dalam sshdkonfigurasi.
  • Suatu sistem dapat dikonfigurasi untuk hanya mengizinkan anggota netgroup tertentu untuk login.
  • PAMKonfigurasi lokal mungkin memerlukan keanggotaan grup eksplisit untuk login, atau mungkin hanya mengizinkan daftar pengguna tertentu.
  • Apa yang tampak seperti akun yang terkunci dapat menjadi masalah akses direktori rumah.
  • Seseorang mungkin telah membuat /etc/nologin, yang untuk beberapa aplikasi (misalnya, ssh) akan mengunci semua pengguna.

Dengan kata lain, ada banyak cara untuk mengunci suatu akun yang tidak ada hubungannya dengan passwdfile. Taruhan terbaik Anda adalah untuk memeriksa /var/log/secureatau analog lokal yang sesuai distribusi.

larsks
sumber
Saya bermaksud pertanyaan saya untuk menganggap bahwa hal-hal tidak "rusak" dan bahwa pengguna telah dapat masuk sebelumnya. Artinya, bahwa beberapa sistem berfungsi dengan benar mengunci akun. Ini adalah poin yang bagus, tetapi saya akan memperbarui pertanyaannya menjadi sedikit lebih eksplisit.
wfaulk
1

Selain yang disebutkan di atas, passwd chagedan getent, ada jugapam_tally2

Jika jumlah upaya login gagal di atas batas yang diijinkan (yang diatur dalam /etc/pam.d/password-auth), Anda harus melakukannya pam_tally2 --user=foo --resetsebelum dapat login lagi.

Jistanidiot
sumber
0

Skrip berikut akan memberi Anda deskripsi singkat tentang semua pengguna dan status mereka (terkunci atau tidak)

cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'
Arun Krishnan
sumber
Itu hanya memeriksa salah satu cara di mana akun dapat dikunci.
wfaulk