当前位置: 首页 > 面试题库 >

如何使PHP列出所有Linux用户?

许学真
2023-03-14
问题内容

我想建立一个基于php的站点,该站点在我的Ubuntu服务器上(自动)执行一些命令

我要做的第一件事是转到文件(sudoers)并添加用户www-data,以便我可以以root权限执行php命令!

# running the web apps with root power!!!
www-data    ALL=(ALL) NOPASSWD: ALL

然后我的PHP代码

<?php
   $command = "cat /etc/passwd | cut -d\":\" -f1";
   echo 'running the command: <b>'.$command."</b><br />";
   echo exec($command);
?>

它仅返回一个用户(最后一个用户)!如何使其返回所有用户?

谢谢


问题答案:

从exec的PHP手册中:

返回值

命令结果的最后一行。如果您需要执行命令并直接将命令中的所有数据传回而不会受到任何干扰,请使用passthru()函数。要获取已执行命令的输出,请确保设置并使用输出参数。

因此,您必须执行以下操作:

<?php
   $output = array();
   $command = "cat /etc/passwd | cut -d\":\" -f1";
   echo 'running the command: <b>'.$command."</b><br />";
   exec($command, &$output);
   echo implode("<br />\n", $output);
?>


 类似资料:
  • 问题内容: 如何列出Linux中某个组的所有成员(可能还包括其他unice)? 问题答案: 不幸的是,据我所知,没有很好的便携式方法可以做到这一点。如果您尝试解析/ etc / group(如其他人所建议的那样),则会错过以该组为主要组的用户以及通过UNIX平面文件(例如LDAP,NIS, pam-pgsql等)。 如果我绝对必须自己做,则可能相反:使用来获取系统上每个用户的组(这将使NSS看到所

  • 问题内容: 我一直在到处寻找它,但仍然找不到解决方案:如何从mySQL列中获取所有值并将它们存储在数组中? 例如:表名称:客户列名称:ID,名称行数:5 我想获得此表中所有5个名称的数组。我该怎么做?我正在使用PHP,而我只是想: 然后使用 PHP函数将这些值存储在数组中。 问题答案: 请注意,此答案已过时! 从PHP7开始,mysql扩展不再可用。如果要在PHP7中使用旧的mysql函数,则必须

  • 问题内容: 我在Debian OS中配置了多个Python环境。有没有办法列出Linux中所有已配置的环境? 这与以下评论中指出的可能重复项不同。我的意思是仅使用创建的虚拟环境。 问题答案: 如果仅使用低级程序创建一个virtualenv,则该目录中只有某个目录,其中包含该特定环境。您只能通过在您的目录(或您可能用于创建virtualenvs的任何其他目录列表)上运行来“列出”这些文件,以查找py

  • 我知道我可以使用,但如何获取所有当前可用GPU的列表?

  • 问题内容: Python中是否有办法获取所有已定义记录器的列表? 我的意思是,是否存在某种东西,例如哪个会返回对象列表? 我搜索了python.logging文档,但找不到这种方法。 先感谢您。 问题答案: 记录器由实例保存在层次结构中。您可以在根记录器上查询 它所知道的记录器。 调用可确保将其保存的所有占位符记录器添加到列表中后,都将被完全初始化。

  • 本节,我们要添加倒数第二个用户控制器动作,index。index 动作不是显示某一个用户,而是显示所有用户。在这个过程中,我们要学习如何在数据库中生成示例用户数据,以及如何分页显示用户列表,让首页显示任意数量的用户。用户列表、分页链接和“Users”(所有用户)导航链接的构思图如图 9.8 所示。[6]9.4 节会添加管理功能,用来删除用户。 图 9.8:用户列表页面的构思图 9.3.1 用户列表