43.4 Идентификация пользователя

Переменная: init-file-user

Эта переменная указывает, файлы инициализации какого пользователя должны использоваться Emacs — или nil, если никакие. "" означает пользователя, который выполнил первоначальный вход. Значение отражает параметры командной строки, такие как ‘-q’ или ‘-u пользователь’.

Пакеты Lisp, которые загружают файлы настроек или любые другие виды пользовательских профилей, должны учитывать эту переменную при определении места их поиска. Они должны загружать профиль пользователя, имя которого содержится в этой переменной. Если init-file-user равно nil, что означает использование опции ‘-q’, ‘-Q’ или ‘-batch’, то пакеты Lisp не должны загружать никакие файлы настроек или пользовательские профили.

Пользовательская опция: user-mail-address

Содержит адрес электронной почты пользователя, использующего Emacs.

Функция: user-login-name &optional uid

Эта функция возвращает имя, под которым выполнен вход пользователя. Она использует переменные окружения LOGNAME или USER, если любая из них установлена. В противном случае значение основывается на эффективном UID, а не на реальном UID.

Если вы указываете uid (число), результатом будет имя пользователя, соответствующее uid, или nil, если такого пользователя нет.

Функция: user-real-login-name

Эта функция возвращает имя пользователя, соответствующее реальному UID Emacs. Это игнорирует эффективный UID и переменные окружения LOGNAME и USER.

Функция: user-full-name &optional uid

Эта функция возвращает полное имя вошедшего пользователя — или значение переменной окружения NAME, если она установлена.

Если идентификатор пользователя процесса Emacs не соответствует ни одному известному пользователю (и при условии, что NAME не установлена), результатом будет "unknown".

Если uid не равен nil, то он должен быть числом (идентификатором пользователя) или строкой (именем входа). Тогда user-full-name возвращает полное имя, соответствующее этому идентификатору или имени входа. Если вы указываете идентификатор или имя входа, который не определен, возвращается nil.

Символы user-login-name, user-real-login-name и user-full-name являются одновременно переменными и функциями. Функции возвращают те же значения, которые содержат переменные. Эти переменные позволяют вам обмануть Emacs, указав функциям, что возвращать. Переменные также полезны для формирования заголовков фреймов (см. Заголовки фреймов).

Функция: user-real-uid

Эта функция возвращает реальный UID пользователя.

Функция: user-uid

Эта функция возвращает эффективный UID пользователя.

Функция: file-user-uid

Эта функция возвращает значение, локальное для соединения, для эффективного UID пользователя. Если default-directory является локальным, это эквивалентно user-uid, но для удаленных файлов (см. Удаленные файлы в Руководстве GNU Emacs) он возвращает UID для пользователя, связанного с этим удаленным соединением; если удаленное соединение не имеет связанного пользователя, возвращается -1.

Функция: group-real-gid

Эта функция возвращает реальный GID процесса Emacs.

Функция: group-gid

Эта функция возвращает эффективный GID процесса Emacs.

Функция: file-group-gid

Эта функция возвращает значение, локальное для соединения, для эффективного GID пользователя. Аналогично file-user-uid, если default-directory является локальным, это эквивалентно group-gid, но для удаленных файлов (см. Удаленные файлы в Руководстве GNU Emacs) он возвращает GID для пользователя, связанного с этим удаленным соединением; если удаленное соединение не имеет связанного пользователя, возвращается -1.

Функция: system-users

Эта функция возвращает список строк, содержащий имена пользователей в системе. Если Emacs не может получить эту информацию, возвращается список, содержащий только значение user-real-login-name.

Функция: system-groups

Эта функция возвращает список строк, содержащий имена пользовательских групп в системе. Если Emacs не может получить эту информацию, возвращается nil.

Функция: group-name gid

Эта функция возвращает имя группы, соответствующее числовому идентификатору группы gid, или nil, если такой группы нет.