Sistem pengendalian Linux menawarkan arahan untuk mencipta dan memadam pengguna dan menyemak yang mana yang dilog masuk. Walau bagaimanapun, tiada arahan untuk menyenaraikan pengguna, log masuk atau tidak, pada sistem.
Namun, terdapat beberapa cara untuk melakukannya. Jika anda ingin mengetahui cara menyenaraikan pengguna dalam Linux, ikuti langkah kami di bawah.
Mengapa Anda Perlu Semak Senarai Pengguna Linux Anda
Terdapat beberapa sebab anda mungkin ingin menyenaraikan pengguna dalam Linux. Ini adalah amalan yang baik dari segi mencari dan memadam akaun yang tidak digunakan, untuk satu. Dari sudut keselamatan, ini juga merupakan cara yang baik untuk memastikan anda tidak mempunyai penceroboh yang membuat akaun pengguna.
Ini adalah tugas pentadbiran yang mungkin anda perlu lakukan sekurang-kurangnya sebulan sekali. Jika anda menjalankan pelayan Linux korporat, anda mungkin mahu melakukannya dengan lebih kerap.
Pengguna Disenaraikan dalam /etc/passwd
Semua akaun pengguna pelayan Linux anda mempunyai entri dalam fail /etc/passwd . Setiap baris mewakili pengguna, dan mempunyai tujuh medan yang dipisahkan oleh titik bertindih. Medan memberikan maklumat tentang pengguna.
- Nama pengguna.
- Kata laluan yang disulitkan ( x menunjukkan kata laluan sebenarnya dalam /etc/shadow )
- Nombor ID Pengguna (UID).
- Nombor ID kumpulan pengguna (GID).
- Nama penuh pengguna, jika disenaraikan.
- Direktori rumah pengguna.
- Log masuk shell
Jadi, itu membawa kita kepada satu cara untuk menyenaraikan semua pengguna di Linux. Anda boleh menggunakan perintah kurang untuk melihat keseluruhan fail, satu skrin pada satu masa.
less /etc/passwd

Jika anda ingin menyemak sama ada pengguna tertentu wujud dalam sistem Linux, itu adalah penggunaan yang baik untuk arahan grep :
less passwd | grep jeff

Jika anda tidak mendapat sebarang output, pengguna itu tidak wujud pada pelayan Linux.
Namun, itu adalah banyak maklumat. Anda boleh mengurangkannya kepada nama pengguna sahaja, contohnya, menggunakan sama ada arahan awk atau cut :
awk -F: '{print $1}' /etc/passwd cut -d: -f1 /etc/passwd

Itu cenderung lebih mudah untuk difahami, tetapi ia masih meninggalkan anda melihat semua akaun pengguna berasaskan sistem yang bercampur dengan pengguna manusia anda.
Cara Menggunakan getent untuk Senarai Pengguna
Perintah lain, getent , adalah lebih berguna. Ia memaparkan entri daripada mana-mana pangkalan data yang dikonfigurasikan dalam fail /etc/nsswitch.conf pelayan anda. Salah satunya ialah pangkalan data passwd . Untuk menggunakan getent untuk memaparkan senarai semua pengguna Linux, ia berfungsi seperti ini:
getent passwd
Output kelihatan betul-betul sama seperti menggunakan arahan yang kurang , tetapi menyenaraikan mana-mana pengguna LDAP pada sistem Linux. Sekali lagi, arahan awk and cut kami boleh membantu melihat hanya medan pertama, nama pengguna.
Jika anda ingin menyemak sama ada pengguna tertentu wujud dalam sistem Linux, getent memudahkannya:
getent passwd jeff
Sekali lagi, tiada output daripada arahan ini memberitahu anda bahawa pengguna tidak wujud.
Satu lagi kegunaan hebat untuk getent ialah mengetahui berapa banyak akaun pengguna yang wujud pada pelayan. Ini dilakukan dengan menyalurkan output getent melalui arahan wc , seperti ini:
getent passwd | wc -l

Seperti yang anda lihat, sistem Linux saya mempunyai sejumlah 48 akaun. Agak menarik, kerana saya seorang sahaja yang menggunakannya, tetapi itu hanya menunjukkan berapa banyak akaun sistem yang dicipta dalam Linux.
Menyingkirkan Pengguna Sistem Daripada Pengguna Biasa
Di mata Linux, tidak ada perbezaan antara pengguna sistem dan manusia. Pada bila-bila masa anda memasang OS, ia mewujudkan beberapa pengguna sistem. Pengguna sistem lain dibuat untuk pelbagai pakej, seperti perisian perkhidmatan web atau mel.
Jadi, bagaimanakah anda boleh menyenaraikan hanya pengguna manusia biasa pada sistem Linux? Perkara utama di sini ialah memahami bahawa apabila anda mencipta pengguna biasa, UIDnya ditetapkan dalam julat nombor tertentu. Dengan menyemak fail /etc/login.defs , kami boleh menentukan julat nilai UID yang tersedia untuk akaun pengguna biasa.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Berdasarkan output, saya tahu bahawa pengguna biasa harus mempunyai UID antara 1000 dan 60000. Daripada ini, saya boleh membina pertanyaan getent yang hanya akan memaparkan pengguna biasa.
getent passwd {1000..60000}

Perlu diingat, getent akan kelihatan hang walaupun selepas ia memaparkan outputnya. Anda boleh menekan Ctrl-C untuk menamatkan proses, atau tunggu sehingga ia selesai. Ia biasanya mengambil masa kurang daripada 15 saat untuk menyelesaikan carian pangkalan data passwd .
Versi yang lebih generik bagi perintah ini mengambil kira nilai UID_MIN dan UID_MAX berbeza yang mungkin digunakan oleh pelbagai pelayan.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
Dalam arahan itu, kami mengambil kesempatan daripada keupayaan Linux untuk melakukan berbilang perkara sekaligus. Perintah awk mendapatkan nilai UID_MIN dan UID_MAX , kemudian gunakannya dalam perintah getent .
Sekarang, katakan yang kita mahukan ialah nama pengguna. Sekali lagi, kami menyalurkan output kami melalui perintah potong , seperti:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Perintah ini mungkin mengambil masa 10 hingga 15 saat untuk diselesaikan, jadi bersabarlah.
Menguruskan Pengguna Linux Anda dengan Berkesan
Adalah penting untuk menjejaki akaun pengguna yang wujud pada sistem Linux anda. Apabila anda mengetahui pekerja telah pergi, segera memadamkan akaun pengguna mereka. Menyenaraikan pengguna Linux anda secara berkala akan membantu memastikan anda menangkap sebarang akaun yang mungkin tersekat.
Pada masa yang sama, pastikan anda sentiasa mengetahui dasar keselamatan kata laluan dan menggalakkan pengguna anda menukar kata laluan mereka dengan kerap.