使用特定的用户身份验证从另一个perl脚本调用perl脚本
我有一个如下的系统脚本来显示堆栈细节使用特定的用户身份验证从另一个perl脚本调用perl脚本,perl,session,Perl,Session,我有一个如下的系统脚本来显示堆栈细节 -r-xr-xr-x. 1 bin bin 6560 Feb 17 21:01 displayPD [sufuser@101 bin]$ ./displayPD Usage: ./displayPD -n node 注意(此脚本不能以root用户身份运行) 我想在一个脚本中自动化并调用它,这个脚本也是用相同的用户登录名编写的 但当我使用下面的system命令从脚本调用它时,它被称为根,脚本无法执行。如何保留用户会话以执行 system("/opt
-r-xr-xr-x. 1 bin bin 6560 Feb 17 21:01 displayPD
[sufuser@101 bin]$ ./displayPD
Usage: ./displayPD -n node
注意(此脚本不能以root用户身份运行)
我想在一个脚本中自动化并调用它,这个脚本也是用相同的用户登录名编写的
但当我使用下面的system
命令从脚本调用它时,它被称为根,脚本无法执行。如何保留用户会话以执行
system("/opt/SMAW/SMAWsuf/bin/displayPD -n Node03 >> /tmp/HP_Details.txt");
如何将其称为sufuser并执行它?如果您的程序以root用户身份运行,您可以随意更改进程的实际(
$
)UID。出于您的目的,更改EUID就足够了:
use v5.12;
say "euid: $>";
system('whoami');
# switch user
$> = 1000;
say "euid: $>";
system('whoami');
# switch back
$>=$<;
say "euid: $>";
system('whoami');
唯一的方法是以root用户身份运行perl脚本。但是作为另一个用户运行命令的最简单方式是通过
su
或sudo
。感谢以上输入。
$ sudo perl uidtest
euid: 0
root
euid: 1000
ben
euid: 0
root