标签: execution

以 PHP 调用的其他用户身份运行 shell 命令

我有一个由 HTTP 调用的 PHP 脚本,而不是作为命令行脚本。此脚本应以当前网络服务器用户 www-data 以外的其他用户身份调用 shell 命令。

例子:

<?php
echo shell_exec('sudo -u myusername -S /usr/bin/whoami'); // returns nothing :(
echo shell_exec('whoami'); // returns www-data
Run Code Online (Sandbox Code Playgroud)

当调用这 2 个命令sudo -u myusername -S /usr/bin/whoamiwhoami直接在命令行上它们返回时

myusername
www-data 
Run Code Online (Sandbox Code Playgroud)

也没有结果:

<?php
echo shell_exec('echo "mypass" | sudo -u myusername -S /usr/bin/whoami');
Run Code Online (Sandbox Code Playgroud)

对我来说,sudo 似乎根本无法与 PHP 的 shell_exec() 一起使用。

php debian shell execution apache-2.2

5
推荐指数
2
解决办法
3万
查看次数

我可以使用 Puppet 运行 shell 内置命令吗?

我想要~/.bashrc将是source每当改变其内容。我用这样的东西创建了一个 bashrc 类:

file { "/root/.bashrc":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 0644,
    source  => "puppet:///bashrc/root/.bashrc"
}

exec { "root_bashrc":
    command     => "source /root/.bashrc",
    subscribe   => File["/root/.bashrc"],
}
Run Code Online (Sandbox Code Playgroud)

但如您所知,它source是一个 shell 内置命令,因此在运行代理时出现以下错误:

# puppet agent --no-daemonize --verbose
notice: Starting Puppet client version 2.7.1
info: Caching catalog for svr051-4170
info: Applying configuration version '1311563901'
err: /Stage[main]/Bashrc/Exec[root_bashrc]/returns: change from notrun to 0 failed: Could not find command 'source'
notice: Finished catalog run …
Run Code Online (Sandbox Code Playgroud)

shell puppet command execution

5
推荐指数
2
解决办法
1万
查看次数

如何在任何 ssh 登录(使用 OpenSSH)时执行系统范围的脚本?

在任何 ssh 登录/连接(任何人通过 ssh 登录)时,有没有办法执行脚本?使用 OpenSSH 服务器。

当然,任何用户都不应该修改该脚本,因此这应该是一个系统范围的脚本。

谢谢!

scripting ssh login execution

5
推荐指数
1
解决办法
6038
查看次数

标签 统计

execution ×3

shell ×2

apache-2.2 ×1

command ×1

debian ×1

login ×1

php ×1

puppet ×1

scripting ×1

ssh ×1