Как вывести список «авторизованных» пользователей? [дубликат]

На этот вопрос уже есть ответ:

Когда Я запускаю Ubuntu, есть список пользователей, которых я могу щелкнуть и ввести пароль для входа в систему.

Как мне получить список этих пользователей?

Я пытался получить пользователей из / etc / passwd , выполнив следующие действия:

cut -d: -f1 /etc/passwd | sort -u

Но этот список был огромным, совсем не похож на тот маленький список, который появляется на начальном экране входа в систему.

Есть ли другая команда или файл, который мне следует проверить?

0
задан 3 October 2017 в 18:49

3 ответа

Пользователи создали с useradd, имеют UID 1000†“60000, видят

$ grep "^UID_M*" /etc/login.defs
UID_MIN                  1000
UID_MAX                 60000

С этой информацией, которую мы можем отфильтровать /etc/passwd для этих пользователей:

$ awk -F: '$3 >= 1000' /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
dessert:x:1000:1000:dessert,,,:/home/dessert:/bin/bash
test:x:1001:1001:test,,,:/home/test:/bin/bash

-F: наборы : как разделитель полей и $3 >= 1000 говорят awk просто печатать строки, где третий столбец содержит значение, равное или больше, чем 1000. Теперь мы только хотим имя пользователя, и nobody не важно для нас, поэтому давайте обрежем вывод еще больше:

$ awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd
dessert
test

Теперь мы также (&&) тест для первого столбца, который не будет (!=) строка nobody и только распечатает первый столбец (print $1).

0
ответ дан 2 November 2019 в 04:16

Для входа в систему пользователи должны иметь действительный хешированный пароль. Посмотрите на второе поле (разделенное двоеточиями :) в файле / etc / shadow, и хэши большие, более 60 символов. Поля только с * или a! не может быть логин пользователей. Забавно, но проверка uuid неправильно используется в libvirt-qemu (64055 uuid), поэтому она отображается на экране входа в систему, даже если она не имеет действительного хэша и не может использоваться в качестве имени для входа. Создайте список входа с помощью:

sudo egrep -v ":\*:|:\!:" /etc/shadow
0
ответ дан 2 November 2019 в 04:16

Добираться loginable пользователи мы можем использовать /etc/passwd файл начиная с каждого пользователя с a UID больше, чем 499 и это не соответствует параметрам конфигурации в /etc/lightdm/user.conf появится на экране входа в систему. Следовательно это получит этих пользователей:

cut -d: -f1-3 /etc/passwd | grep -E ".*:x:[0-9]{4,}" | grep -Ev "nobody"

Или использование более краткого awk кодируйте, как предложено @dessert

awk -F: '$3>999&&$1!="nobody" { print $1" "$3 }' /etc/passwd

Awk объяснение:

-F:: Использовать : как разделитель полей

$3>999&&$1!="nobody": возвращаемые значения то соответствие 3rd поле это больше, чем 999 и 1-е поле, которое не соответствует строке nobody

Примером является пользователь nobody с минимумом UID выше 500 но не замечен на экране входа в систему, так как он перечислен как user это не должно быть как замечено в /etc/lightdm/users.conf

0
ответ дан 2 November 2019 в 04:16

Другие вопросы по тегам:

Похожие вопросы: