首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php系统命令linux

问php系统命令linux
EN

Stack Overflow用户
提问于 2013-03-07 16:35:32
回答 1查看 988关注 0票数 0

我有一组需要首先登录到shell的linux系统命令。我如何在php中做到这一点呢?

例如:

代码语言:javascript
复制
$output2 = shell_exec('ls -lrt /opt/test 2>&1');

由于/opt/test只能由用户/所有者XXX访问,因此我需要使用该用户名登录。runuser命令可能会有帮助,但我需要指导。

实际上,我需要通过系统命令运行一个应用程序,但在此之前,用户必须登录才能访问该应用程序。

EN

回答 1

Stack Overflow用户

发布于 2013-03-07 16:52:07

一种方法是创建一个shell脚本,其中包含您作为特权登录用户运行所需的所有命令,然后使用sudo运行该shell脚本。

您将需要更改sudoers文件,以便脚本的执行可以由运行脚本的用户运行。

例如:

代码语言:javascript
复制
 Cmnd_Alias HTTP_COMMANDS = /usr/local/my_ls_script
 XXXX ALL=(ALL) NOPASSWD: HTTP_COMMANDS

不过,做这件事时要小心!确保sudoers行只能运行您指定的命令。

此外,请确保您至少切换到用户一次,并运行sudo,否则for服务器将无法为该用户运行sudo。

此外,您可能需要在sudoers文件中禁用NO_TTY。

您可以将命令更改为:

代码语言:javascript
复制
$output2 = shell_exec('sudo -u XXXX /usr/local/my_ls_script 2>&1');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15266466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档