Используя идею из комментария @KeithThompson, а также предложение @SimonWright USERNAME, один из способов сделать это - использовать код:
function GetUsername return String is
function GetEnv (Variable : String) return Interfaces.C.Strings.chars_ptr;
pragma Import (C, GetEnv, "getenv");
Command : constant String := "USERNAME";
Answer_Ptr : constant Interfaces.C.Strings.chars_ptr := GetEnv (Command);
Answer : constant String := Interfaces.C.Strings.Value (Answer_Ptr);
begin
return Answer;
end GetUsername;
Не чистая Ада 95, но она хорошо подходит (и мне не нужно использовать переключатель gnat05).