什么<在这种情况下在Perl中做什么?

时间:2012-06-07 19:00:28

标签: perl syntax cgi

我很困惑第二行在这段代码中做了什么。我认为应该向用户评估$ runas。什么是$<做?这包含在CGI脚本中。

my $runAS = (getpwnam("username"))[2];
$runAS = $< if ($runAS == 0);

3 个答案:

答案 0 :(得分:12)

$<是perl中的special variable

  

这个过程的真正意义。你可以改变真正的uid和   通过使用POSIX :: setuid()同时有效的uid。以来   更改为$&lt;需要系统调用,检查$!改变后尝试   检测任何可能的错误。

答案 1 :(得分:6)

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

$<

这个过程的真正意义。您可以使用POSIX :: setuid()同时更改real uid和有效uid。由于更改为$&lt;需要系统调用,检查$!更改后尝试检测任何可能的错误。

助记符:如果你正在运行setuid,那就是你来自的uid。

答案 2 :(得分:1)

来自perlvar手册页:

  

$&LT;这个过程的真正意义。

因此,$<返回用户的真实数字ID。这不是用户的用户名,而是系统管理员分配的号码。例如,如果您的用户名是aglassman而我的thb,则在同一系统上,那么您的UID可能是1005,而我的,1006,这取决于系统管理员首先创建的帐户。在Linux平台上,请参阅系统的UID文件/etc/passwd