Getmyuid: примеры (PHP)
getmyuid: int|falseФункция 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
Возвращает идентификатор группы (GID) текущего процесса. Используется вместе с getmyuid для получения полной информации о правах.
Функция из расширения POSIX, возвращающая реальный UID текущего процесса. В отличие от getmyuid, требует установленного расширения posix.
Возвращает имя владельца текущего скрипта. Предпочтительна, когда требуется текстовое представление пользователя.
Getmyuid в Python
import os
print(os.getuid())1000
console.log(process.getuid());1000
echo $UID1000
В отличие от PHP, многие языки предоставляют UID как свойство объекта процесса, а не через отдельную функцию.
$uid = getmyuid();
echo "Пользователь: $uid"; // Возможна ошибка, если false$uid = getmyuid();
if ($uid === false) {
echo "Ошибка получения UID";
} else {
echo "UID: $uid";
}// Разные результаты
$uid = getmyuid(); // 1000
$user = get_current_user(); // www-dataФункция getmyuid существует с ранних версий PHP. В PHP 8.0 и 8.1 значительных изменений не было. Функция сохраняет обратную совместимость, всегда возвращая целое число или false.
$uid = getmyuid();
$fileOwner = fileowner('log.txt');
if ($uid === $fileOwner) {
echo "Текущий процесс имеет права владельца файла";
} else {
echo "Требуются дополнительные проверки прав";
}// CLI vs Web Server
$cliUid = getmyuid();
// При запуске из браузера
$webUid = getmyuid();
echo "CLI UID: $cliUid\n";
echo "Web UID: $webUid\n";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('Попытка доступа к админке');