4

一个例子将受到高度赞赏。以下是我阅读它的示例:

$self->parameter(
    name => 'real_user',
    xpath => undef, 
    default => scalar(getpwuid($<))
);
$self->parameter(
    name => 'production',
    xpath => '/config/production', 
    default => $self->get('user_uid') == $>
);
4

2 回答 2

13

A$后跟符号?到perlvar

$<
这个进程的真实 uid。

$>
这个进程的有效uid。

使用它们来找出运行程序的用户。

于 2013-06-14T06:18:56.097 回答
7

来自 perldoc: http: //perldoc.perl.org/perlvar.html

$< 

这个进程的真实 uid。您可以使用 .同时更改真实 uid 和有效 uid POSIX::setuid()。由于更改$<需要系统调用,因此请$!在更改尝试后检查以检测任何可能的错误。

助记符:如果您正在运行 setuid,则它是您来自的 uid。

$> 

这个进程的有效uid。例如:

$< = $>;            # set real to effective uid    
($<,$>) = ($>,$<);  # swap real and effective uids

您可以通过使用同时更改有效 uid 和真实 uid POSIX::setuid()。更改$>需要检查以$!在尝试更改后检测任何可能的错误。

$< 和 $> 只能在支持 setreuid() 的机器上交换。

助记符:如果你正在运行 setuid,它就是你去的 uid。

于 2013-06-14T06:19:57.807 回答