gpt4 book ai didi

php模拟用户

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:11 25 4
gpt4 key购买 nike

我想做的是以系统 root 用户身份从网页运行 shell 命令。

根据我的研究,无法在 Linux 上的 PHP 中模拟系统用户(确切地说是 CentOS 6.3 和 PHP 5.4.13)。

到目前为止,我已经安装了 sudo 并添加了一行 apache ALL=(ALL) :NOPASSWD ALL (用于测试)到 /etc/sudoers。然后我在我网站的根目录中创建了一个简单的 php 文件:

<?php shell_exec('sudo -u root touch somefile'); ?>

但是,如果我运行,什么也不会发生:

<?php shell_exec('whoami'); ?>

我得到 apache 作为结果,所以我知道至少 shell_exec 正在工作。

如果我从 cli su apache 尝试,我得到 This account is currently not available. 我相信这是因为 apache 没有定义登录(?) apache:x:48:48:Apache:/var/www:/sbin/nologin

那么以 root 身份从 php 运行命令的正确方法是什么?

作为我试图通过以 root 身份运行来实现的示例,我想使用以下从 Web 控件调用的命令行将证书添加到 /etc/ssl/certs/https面板:

openssl req -new -nodes -x509 -days 3650 \
-subj "/emailAddress=${ssl_email}/CN=ca.${domain_name}/OU=${ssl_organisational_unit}/O=${ssl_organisation}/L=${ssl_location}/ST=${ssl_state}/C=${ssl_country}" \
-keyout "${certroot}/cacert.pem" -out "${certroot}/cacert.pem"

非常感谢您的帮助。

最佳答案

啊哈!!!知道了!

在我写完之后不久,我找到了sudo in php exec()

答案是从 /etc/sudoers 中注释掉 Defaults requiretty

关于php模拟用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15543769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com