Articles of 执行

从python运行代码具有不同于bash的权限?

第一步 $ sudo adduser foo_user $ mkdir /tmp/foo-user && chown foo_user:foo_user $_ $ sudo npm install -g less # Install Node.js and NPM for this $ echo ".box {color: red}" | sudo -u foo_user tee /tmp/foo-user/main.less python $ sudo -u foo_user python -c "from subprocess import check_output, STDOUT; print check_output(['/usr/local/bin/lessc', '/var/lib/nginx/body/main.less'], stderr=STDOUT, shell=True);" Traceback (most […]

bash脚本从函数返回后意外退出

这是关于堆栈溢出的最后一个问题的跟进问题。 我会把脚本删减到基本部分,但是如果这样做的话,可能会有助于知道脚本的作用,你可以看看另一个问题。 #!/usr/bin/env bash set -eu -o pipefail declare -a framelist #Print all results function output_values() { echo "Results!"; } #parsing information from stdin function parser () { while read tc; do if [ -z "$tc" ]; then continue fi #Evaluation and saving result to array echo $result_value; framelist+=($result_value); if (( <<some abort condition>> )); […]

以不同的(非root)用户身份从PHP运行shell脚本

我试图在Ubuntu服务器上运行PHP中的非特权用户拥有的shell脚本。 权限问题使得用exec()运行它是不切实际的,因为它是运行它的www-data 。 我search了一下,find了对suExec的varius引用(这似乎太麻烦得到这样一个小问题的工作),设置suid位,并在这里涉及Python服务器的Stackoverflow一个有趣的方法侦听发送的命令由PHP。 无论如何,在所有这些解决scheme中,我倾向于设置suid位,尝试它,它不工作: chmod u+s script.sh ,我的Apache日志仍然显示权限错误,所以我知道脚本没有运行,因为它是所有者,而是作为www-data 。 我需要做些什么来实现这个目标,是否有一个更简单的解决scheme?

当使用php exec()来运行shell脚本时,一个脚本可以工作(只是简单地执行git status),另一个脚本不会(git checkout)。 怎么来的?

我正在尝试设置一个基于Web的门户,通过这个门户,我们可以通过简单的点击后端面板来检出我们的Git仓库的不同分支。 所以目前,我有/ var / www / devportal其中包含index.php , status.sh和checkout.sh 在index.php中,我执行以下操作: $repo = $_GET['repo']; $command = 'sh status.sh ' . $repo; $output = exec($command); echo "<pre>$output</pre>"; status.sh的内容是: #!/bin/bash -e if [ $# -ne 1 ] then echo "Usage: `basename $0` <repo name>" exit 1 fi cd /var/www/$1 git status 这工作得很好。 在PHP中回显的输出显示了/ var / www / proj中当前分支的状态。 […]

用sudo使用php执行命令

我有一个脚本,它调用以下命令来获取未读消息的数量: sudo ls /var/vmail/username/new | wc -l 当从shell运行时,这个工作正常(权限设置,没有提供密码就可以正常运行)。 但是,当使用exec从PHP运行时,它按预期执行,但始终返回0 。 什么可能造成这个? 我怎样才能debugging或解决这个问题? (PHP 5.3,红帽,Apache的〜默认configuration) 编辑 感谢ruaks的小费。 问题是: sudo: sorry, you must have a tty to run sudo 。 注释掉/etc/sudoers的条目有助于: Defaults requiretty Defaults:apache !requiretty 但看起来这不是安全的好处。 任何其他更好的解决scheme?

如何在运行时将参数放入函数中?

所以我在我的c ++程序中使用execlp。 execlp的forms是“int execlp(const char * file,const char * arg0,…,const char * argn)”,这意味着它可以采用任意数量的参数。 我只是想知道,有什么办法可以在运行时将这个函数放在这个函数里面? 由于参数是由用户提供的,因此我无法知道参数的确切数量。 当然,我可以从一开始就挑出一大堆可笑的数字,但这样做效率不高。我需要一个更有效的方法来让我在运行时提出争论。

在Linux下从C程序运行多个C程序

我想在Linux下学习一些关于进程通信的知识,所以我写了两个简单的C程序来相互通信。 然而,每次都要手动运行它们有点麻烦,所以我想知道有没有办法让程序运行它们,如下所示: ./runner program1 program2 我正在使用最新的Ubuntu和Bash shell。

php exec多个命令,apache重启

我必须通过exec()运行2个命令; 第一个命令是一个调用(Plesk面板)子包装的包装,第二个也是一个plesk命令,用于dns。 注意:在我执行一个添加订阅后,Apache会重新启动! 所以我的问题是:我可以以某种方式调用exec,在linux端执行这两个命令而不会丢失第二个命令? 例如: exec(("/wrapper2 3 –create … && /wrapper2 4 –update-soa example.com … ) > /dev/null 2>&1 ); PHP会发送这两个命令到Linux来执行,或者它会在第一个命令后重新启动Apache,然后我不能执行第二个命令? 谢谢

用stringinput和输出运行进程

这里有很多关于fork()和exec()的问题。 我还没有find一个真正使它们简单易用的过程,而使程序员的生活变得简单就是目标。 我需要一个C ++,Linux友好的function,执行以下操作: string RunCommand(string command, string input){} 这个函数应该能够运行一个像grep这样的shell命令,并将input的内容“pipe”到它中,然后读取并返回它。 所以如果我在命令行上执行以下操作: ps -elf | grep somequerytext 我会在代码做: string psOutput = RunCommand("ps -elf",""); string grepOutput = RunCommand("grep somequerytext", psOutput); *编辑:问题是什么是RunCommand函数的最佳实现。 *编辑:popen被认为是简单的解决scheme,但popen限制你pipe道数据或pipe道数据输出,但不是两个。

我的C程序如何检查给定文件是否具有执行权限?

有没有一种方法来确定进程是否可以执行文件,而不必实际执行它(例如,通过调用execv(filepath, args)只能失败并发现errno == EACCES )? 我可以stat文件并观察st_mode ,但是我仍然不知道这个过程是怎么回事。 理想情况下,我正在寻找一个function get_me_permissions(filepath, &status); // me: the process calling this function // when decoded, status tells if the process can read, write, and/or execute // the file given by filepath. 提前致谢。