Как получить изображение учетной записи пользователя в Linux?

Управляя терминалом, процесс может сообщать ядру, какая группа процессов является группой процессов переднего плана (в том же сеансе ). Если для терминала существует группа процессов переднего плана, мы можем управлять группой процессов переднего плана через терминал, например, Ctrl -C/Ctrl -\, чтобы завершить группу процессов переднего плана. (Терминал может иметь только одну активную группу процессов или не иметь ни одной. Точнее говоря, терминал может быть связан только с одним сеансом процесса.)

С помощью управляющего терминала, даже если вы уже перенаправляете стандартный ввод в другие места/файлы, вы все равно сможете читать/записывать с/на управляющий терминал, /dev/tty. Этот специальный файл является в ядре синонимом управляющего терминала текущего процесса. Если ваш процесс не связан с управляющим терминалом, то открыть этот файл не удастся. Что вы можете сделать с этим файлом? Например, некоторым программам требуется, чтобы пользователь ввел пароль, прежде чем что-либо делать, например, программы для входа в систему или шифрования. Эти программы могут запретить пользователю вводить пароль со стандартного ввода, что означает, что даже если вы перенаправите их стандартный ввод в случайный файл, они все равно будут ждать вашего типа. Причина в том, что все они открывают /dev/tty для чтения.

Подводя итог, можно сказать, что управляя терминалом, ядро ​​знает, куда доставить сгенерированный терминалом -сигнал и ввод терминала, если они ожидаются кем-то. Это все.

Таким образом, процессу не нужно связываться с управляющим терминалом, если он не хочет, чтобы какой-либо терминал управлял им, и не хочет читать/записывать из/в "/dev/tty" (как и большинство демонов ). Тем не мение,общий процесс, запущенный из оболочки, всегда имеет связанный управляющий терминал, потому что он является членом сеанса оболочки, который уже установил управляющий терминал при запуске оболочки. (На самом деле, случайный процесс не может прикрепить терминал в качестве управляющего терминала, это может сделать только процесс-лидер сеанса.)

0
05.01.2020, 21:18
2 ответа

Мне удалось сохранить изображение JPEG размером от 300 до 400 пикселей по высоте/ширине как .faceв домашнем каталоге пользователя:

$ identify.face
.face JPEG 351x351 351x351+0+0 8-bit sRGB 16847B 0.000u 0:00.001 
0
20.03.2021, 07:26

Как уже отмечалось в комментариях, в Linux как такового понятия «картинка учетной записи» не существует. Любая концепция «картинки учетной записи» должна быть предоставлена ​​либо используемым вами рабочим столом, либо каким-либо другим дополнением -к программному обеспечению.

Если вы используете GNOME в качестве рабочего стола, он хранит информацию о том, где найти изображение учетной записи пользователя (в значении конфигурации Icon/var/lib/AccountsService/users/{username}, как указано в этот вопрос на форуме Ask Ubuntu Stack Exchange (, где {username}— имя пользователя, о котором вы спрашиваете ); местоположением по умолчанию является файл с именем .faceв домашнем каталоге пользователя (, как также указано в другом ответе ). Если вы используете рабочий стол, отличный от GNOME (, например, KDE ), он может хранить изображения учетных записей или указатели на изображения учетных записей в другом месте. Если вы находитесь на сервере, на котором не установлен рабочий стол, скорее всего, нигде не будет изображений учетной записи.

2
20.03.2021, 08:10

Теги

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