我很困惑,第二行在這段代碼中做了什麼。 $ runas應該評估爲用戶的uid,我認爲。 $ <做什麼?這包含在CGI腳本中。在這種情況下,<Perl在做什麼?
my $runAS = (getpwnam("username"))[2];
$runAS = $< if ($runAS == 0);
我很困惑,第二行在這段代碼中做了什麼。 $ runas應該評估爲用戶的uid,我認爲。 $ <做什麼?這包含在CGI腳本中。在這種情況下,<Perl在做什麼?
my $runAS = (getpwnam("username"))[2];
$runAS = $< if ($runAS == 0);
$<
是Perl中的一個special variable:
這一進程的實際uid。您可以使用POSIX :: setuid()同時更改實際的uid和有效的uid。由於 更改爲$ <需要系統調用,請檢查$!嘗試更改 以檢測任何可能的錯誤。
從perlvar
手冊頁:
< $這個過程的實際uid。
因此,$<
返回用戶的真實數字ID。這不是用戶的用戶名,而是系統管理員分配的號碼。例如,如果您的用戶名是aglassman
,而我的thb
在同一個系統上,那麼您的UID可能是1005,而我的是1006,具體取決於系統管理員最先創建的哪個帳戶。在Linux平臺上,請參閱您的系統UID文件/etc/passwd
。
從http://perldoc.perl.org/perlvar.html
$<
這一進程的實際uid。您可以使用POSIX :: setuid()同時更改實際uid和有效uid。由於更改$ <需要系統調用,請檢查$!在更改後嘗試檢測任何可能的錯誤。
助記符:如果您正在運行setuid,則是您來自的用戶。
我喜歡你引用你的參考。 –
謝謝,我知道這很簡單。 – aglassman
我看到你也引用了這個參考,它只是隱藏在超鏈接中。 –