Когда я запускаю Ubuntu, есть список пользователей, которых я могу щелкнуть, и введите пароль для входа.
Как получить список этих пользователей?
Я попытался получить пользователей из файла /etc/passwd, выполнив следующее:
cut -d: -f1 /etc/passwd | sort -u
Но этот список был огромным, ничего похожего на маленький список, который появляется на начальном экране входа в систему.
Есть ли какая-то другая команда или файл, которые я должен проверять?
Чтобы получить пользователей loginable, мы можем использовать файл /etc/passwd, поскольку каждый пользователь с 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
Пользовательские пользователи должны иметь действующий хешированный пароль. Посмотрите на второе поле (разделенное двоеточиями :) в файле / etc / shadow, а хеши - большие, более 60 символов. Поля с просто * или a! не могут быть пользователями входа. Интересно, что uuid-проверка неправильно используется в libvirt-qemu (64055 uuid), поэтому она отображается на экране входа в систему, даже если она не имеет допустимого хэша и не может использоваться в качестве имени входа. Создайте список логинов с помощью:
sudo egrep -v ":\*:|:\!:" /etc/shadow
Чтобы получить пользователей loginable, мы можем использовать файл /etc/passwd, поскольку каждый пользователь с 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
Пользовательские пользователи должны иметь действующий хешированный пароль. Посмотрите на второе поле (разделенное двоеточиями :) в файле / etc / shadow, а хеши - большие, более 60 символов. Поля с просто * или a! не могут быть пользователями входа. Интересно, что uuid-проверка неправильно используется в libvirt-qemu (64055 uuid), поэтому она отображается на экране входа в систему, даже если она не имеет допустимого хэша и не может использоваться в качестве имени входа. Создайте список логинов с помощью:
sudo egrep -v ":\*:|:\!:" /etc/shadow