Последна актуализация на
Важно е да знаете кой има достъп до вашия компютър с Linux (и контрол над вашите файлове), но можете лесно да изброите потребители в Linux, за да разберете. Ето как.
В операционна система Linux предлага команди за създаване и изтриване на потребители и проверка кои от тях са влезли. Въпреки това, няма команда за изброяване на потребители, влезли или не, в системата.
Все пак има няколко начина да се справите с това. Ако искате да научите как да изброявате потребители в Linux, следвайте нашите стъпки по-долу.
Защо трябва да проверите своя списък с потребители на Linux
Има редица причини, поради които може да искате да изброите потребители в Linux. Това е добра практика по отношение на намирането и изтриването на неизползвани акаунти, например. От гледна точка на сигурността, това също е добър начин да се уверите, че нямате натрапници, създаващи потребителски акаунти.
Това е административна задача, която вероятно трябва да правите поне веднъж месечно. Ако използвате корпоративен Linux сървър, може да искате да го правите по-често.
Потребители, изброени в /etc/passwd
Всички потребителски акаунти на вашия Linux сървър имат записи във файла /etc/passwd. Всеки ред представлява потребител и има седем полета, разделени с двоеточия. Полетата предоставят информация за потребителя.
- Потребителско име.
- Шифрована парола (х показва, че паролата действително е в /etc/shadow)
- Идентификационен номер на потребител (UID).
- Идентификационен номер на групата на потребителя (GID).
- Пълното име на потребителя, ако е посочено.
- Домашна директория на потребителя.
- Обвивка за влизане
И така, това ни води до един начин да изброим всички потребители на Linux. Можете да използвате по-малко команда, за да видите целия файл, един екран наведнъж.
по-малко /etc/passwd.
Ако искате да проверите дали конкретен потребител съществува в системата Linux, това е добра употреба за командата grep:
по-малко passwd | grep jeff.
Ако не получите никакъв изход, този потребител не съществува на сървъра на Linux.
Все пак това е много информация. Можете да го намалите само до потребителското име, например, като използвате или awk или разрез команди:
awk -F: '{print $1}' /etc/passwd. cut -d: -f1 /etc/passwd.
Това обикновено е много по-лесно за разбиране, но все пак ви оставя да преглеждате всички системни потребителски акаунти, смесени с вашите човешки потребители.
Как да използвате getent за списък с потребители
Друга команда, getent, е много по-полезен. Показва записи от всяка конфигурирана база данни във вашия сървър /etc/nsswitch.conf файл. Един от тях е passwd база данни. Да използвам getent за да се покаже списък на всички потребители на Linux, работи така:
getent passwd
Резултатът изглежда точно същият като използването на по-малко команда, но изброява всички потребители на LDAP в системата Linux. Още веднъж нашите awk и разрез командите могат да ви помогнат да видите само първото поле, потребителските имена.
Ако искате да проверите дали конкретен потребител съществува в системата Linux, getent улеснява го:
getent passwd jeff.
Отново, нито един изход от тази команда не ви казва, че потребител не съществува.
Друга страхотна употреба за getent установява колко потребителски акаунти съществуват на сървъра. Това става чрез тръбопроводи getentсе извежда чрез тоалетна команда, така:
getent passwd | тоалетна -л.
Както можете да видите, моята Linux система има общо 48 акаунта. Доста интересно, тъй като аз съм единственият, който го използва, но това само показва колко системни акаунти са създадени в Linux.
Отстраняване на системни потребители от нормални потребители
В очите на Linux няма разлика между потребител на системата и човек. Всеки път, когато инсталирате операционната система, тя създава определен брой системни потребители. Други потребители на системата се създават за различни пакети, като софтуер за уеб или пощенски услуги.
И така, как можете да изброите само редовните човешки потребители на системата Linux? Ключът тук е разбирането, че когато създавате обикновен потребител, неговият UID се присвоява в рамките на определен диапазон от числа. Чрез проверка на /etc/login.defs файл, можем да определим диапазона от стойности на UID, налични за редовни потребителски акаунти.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Въз основа на изхода знам, че нормалните потребители трябва да имат UID между 1000 и 60000. От това мога да конструирам a getent заявка, която ще показва само нормални потребители.
getent passwd {1000..60000}
Имай предвид, getent ще изглежда да виси дори след като покаже изхода си. Можете да натиснете Ctrl-C за да прекратите процеса или изчакайте, докато приключи. Обикновено отнема по-малко от 15 секунди, за да завършите търсенето passwd база данни.
По-обща версия на тази команда взема предвид различни UID_MIN и UID_MAX стойности, които различните сървъри могат да използват.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
В тази команда ние се възползваме от способността на Linux да прави няколко неща наведнъж. В awk командите получават UID_MIN и UID_MAX стойности, след което ги използвайте в рамките на getent команда.
Сега да кажем, че всичко, което искаме, са потребителските имена. Още веднъж прекарваме продукцията си през разрез команда, така:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | изрязване -d: -f1.
Тази команда може да отнеме от 10 до 15 секунди, така че бъдете търпеливи.
Ефективно управление на вашите потребители на Linux
Важно е да следите какви потребителски акаунти съществуват във вашата Linux система. Когато знаете, че служител е напуснал, бъдете бързи да изтриете потребителския му акаунт. Периодичното изброяване на вашите потребители на Linux ще ви помогне да сте сигурни, че хванете всички акаунти, които може да са останали.
В същото време не забравяйте да държите отгоре политики за сигурност с парола и насърчавайте потребителите си да променят паролите си редовно.