Getmyuid: примеры (PHP)

Получение идентификатора пользователя через getmyuid
Раздел: Информация о PHP
getmyuid: int|false
Описание функции getmyuid

Функция getmyuid в PHP возвращает числовой идентификатор пользователя (UID), под которым выполняется текущий процесс веб-сервера или CLI-скрипта.

Функция не принимает аргументов и имеет простой синтаксис:

int|false getmyuid()

Возвращаемое значение представляет собой целое число (UID) или false в случае неудачи. Использование этой функции актуально при необходимости контроля прав доступа, логировании операций или проверке окружения выполнения скрипта.

Простые примеры использования
Базовый вызов функции
$uid = getmyuid();
var_dump($uid);
int(1000)
Проверка успешности выполнения
if (($uid = getmyuid()) !== false) {
    echo "UID текущего пользователя: $uid";
} else {
    echo "Не удалось определить UID";
}
UID текущего пользователя: 1000
Похожие функции в PHP

Возвращает идентификатор группы (GID) текущего процесса. Используется вместе с getmyuid для получения полной информации о правах.

posix_getuid()

Функция из расширения POSIX, возвращающая реальный UID текущего процесса. В отличие от getmyuid, требует установленного расширения posix.

Возвращает имя владельца текущего скрипта. Предпочтительна, когда требуется текстовое представление пользователя.

Аналоги в других языках

Getmyuid в Python

import os
print(os.getuid())
1000
Node.js
console.log(process.getuid());
1000
Bash
echo $UID
1000

В отличие от PHP, многие языки предоставляют UID как свойство объекта процесса, а не через отдельную функцию.

Типичные ошибки
Предположение о всегда успешном выполнении
$uid = getmyuid();
echo "Пользователь: $uid"; // Возможна ошибка, если false
Корректная обработка
$uid = getmyuid();
if ($uid === false) {
    echo "Ошибка получения UID";
} else {
    echo "UID: $uid";
}
Путаница с get_current_user
// Разные результаты
$uid = getmyuid();        // 1000
$user = get_current_user(); // www-data
История изменений

Функция getmyuid существует с ранних версий PHP. В PHP 8.0 и 8.1 значительных изменений не было. Функция сохраняет обратную совместимость, всегда возвращая целое число или false.

Расширенные примеры
Проверка прав для записи файла
Пример php
$uid = getmyuid();
$fileOwner = fileowner('log.txt');

if ($uid === $fileOwner) {
    echo "Текущий процесс имеет права владельца файла";
} else {
    echo "Требуются дополнительные проверки прав";
}
Сравнение режимов выполнения
Пример php
// CLI vs Web Server
$cliUid = getmyuid();
// При запуске из браузера
$webUid = getmyuid();
echo "CLI UID: $cliUid\n";
echo "Web UID: $webUid\n";
Логирование с идентификатором пользователя
Пример php
function logAction($message) {
    $uid = getmyuid();
    $log = date('Y-m-d H:i:s') . " [UID:$uid] $message\n";
    file_put_contents('actions.log', $log, FILE_APPEND);
}

logAction('Попытка доступа к админке');

PHP getmyuid function comments

En
Getmyuid Gets PHP script owner's UID