dapatkan kode sederhana di bawah ini
USERS=`cat /etc/passwd`
for USER in $USERS
do
echo "---------- $USER --------------"
last -n 4 $USER
done
Saya ingin menghapus semua pengguna yang belum masuk selama lebih dari 60 hari.
Tetapi masalah dengan membaca /etc/passwd
adalah bahwa saya mendapatkan semua pengguna sistem juga.
Gagasan bagaimana mendapatkan akun yang baru saja dibuat pengguna dan menghapusnya adalah mereka belum masuk selama 90 hari.
Tepuk tangan
/etc/passwd
.chage
. Denganchage -l user
Anda dapat info dan denganchage --something
membuat pengguna menonaktifkan setelah XX hari.Jawaban:
Periksa apakah UID berada di antara
UID_MIN
danUID_MAX
(didefinisikan dalam/etc/login.defs
):sumber
root
berulang-ulang adalah, karena bagian yang saya salin / tempel dari skrip awal Anda bergema$USER
(variabel lingkungan dengan nama pengguna pengguna yang saat ini masuk) alih-alih variabel loop$user
. Nama variabel peka huruf besar-kecil. Saya memperbarui kode sampel saya sehingga hanya mencetak pengguna yang belum masuk selama 90 hari atau lebih.echo
perintah di bagian akhir menjadi sebuahdeluser --remove-home
perintah.Periksa direktori home pengguna (kolom 6) dan abaikan yang kosong.
sumber
named
ataulp
memiliki entri di sana dan Anda tidak ingin menghapusnya.