【问题标题】:Execute a script as another user以其他用户身份执行脚本
【发布时间】:2013-08-24 10:41:21
【问题描述】:

我有 6 个使用 PHP 执行的脚本,不幸的是,我必须以我的默认用户身份执行它。 我尝试只用 PHP 执行它,但它不起作用。

您知道如何在没有重大安全漏洞的情况下执行此操作吗?

谢谢你:)

【问题讨论】:

    标签: php linux permissions


    【解决方案1】:

    您可以通过键入php /path/to/script.php 将php 用作命令行实用程序

    PHP 脚本将由您登录的用户执行。

    【讨论】:

    • 脚本是从网站执行的,所以我没有使用用户登录
    • 在这种情况下,您应该在您的问题中提供更多信息。例如:你为什么需要提升权限,你需要什么操作。可能您只需要正确设置文件权限。这个问题看起来像你在谈论 PHP shell 执行,而不是与网络服务器相关的事情
    • 另外:PHP 并不总是用作构建网站的语言,它也是某种通用编程语言。并非所有人都知道这一点。因此这里的混乱
    【解决方案2】:

    您可以使用sudo 以其他用户身份运行程序。

    这是一个例子。我从一开始就是root(你可以看到id告诉它)并以用户hashier的身份执行程序id

    $
    $ id
    uid=0(root)
    $ sudo -u hashier id
    uid=501(hashier)
    $
    

    【讨论】:

    • 我不明白它的作用
    • 正是您在主题中要求的,以不同的用户身份执行程序。我首先运行“id”,它显示它以 root 用户身份运行,然后我使用 -u hashier 运行它,它显示它以用户 hashier 身份运行。
    • 我不确定这是否真的是 OP 想要的,但要解释一下上面的命令做了什么:id 是一个命令,它打印有关运行脚本的用户的信息。 sudo -u <user> <command> 以用户 的身份运行命令 。所以在上面的例子中sudo -u hashier id将以用户hashier运行命令id,并且例子中的输出显示他以root身份登录,运行id,输出root的信息,然后运行sudo -u hashier id和打印出用户 hashier 的 id 信息。
    猜你喜欢
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2022-01-17
    • 1970-01-01
    • 2015-12-04
    相关资源
    最近更新 更多