php 执行shell文件路径_shell 调用sql文件路径 - CSDN
精华内容
参与话题
  • php利用sudo权限执行shell脚本

    万次阅读 2017-03-17 11:47:30
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 最近有一个需求,由于http的表单方式上传文件过慢,需要通过其他方式传输文件,讨论了scp与rsync后 最终决定使用scp工具 编写test....

    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本


    编写test.sh脚本如下

    #! /bin/sh
    
    mkdir /www/a
    

    很简单的一个shell脚本 创建一个文件夹


    php脚本如下

    system('/usr/bin/test.sh')


    在运行前 首先需要验证的

    1.test.sh脚本是否具有可执行权限

    2.apache nginx phttp等web服务器是否有test.sh的权限

    3.由于是同步文件命令 所以需要确保用户对要下载的目录有写入权限

    4.由于我使用php版本高于5.4,已经删除了安全模式一说,说一也不存在运行在安全模式下

    5.执行的脚本请使用绝对路径 这点很重要


    但是  实际运行后  我发现输出了faild  说明脚本并没有执行成功  查了下原因  是因为apache用户不具备某些目录的执行权限(没个用户有没个用户的可执行目录,你的脚本需要在该目录下)   切换目录属主容易造成安全问题  在linux下 root用户是不受此限制的 所以 临时让用户可以切换到root权限 既可以简单的规避此类问题  如何操作呢?


    首先 查看你的apache用户或者nginx php-fpm用户

    可以使用 ps -ef  | grep httpd 命令来查看  其他同理

    经查我的apache用户为_www用户


    然后 visudo   或者 vim /etc/sudoers 找到

    ## Allow root to run any commands anywhere

    root    ALL=(ALL)       ALL这一行 在下边追加

    _www ALL=(root)  NOPASSWD:ALL

    第一列是用户  第二个是可以切换到的用户 我这里写的是root  如果你想让随意切换可以在这里写All  第三个是可以执行的脚本路径 ALL 表示所有


    最后 重启apache让用户重新获得权限


    修改php脚本

    system('sudo /usr/bin/test.sh')


    运行 执行成功~~~









    展开全文
  • shell怎么获取一个文件或目录的绝对路径呢? 也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看一下这里你就知道了。 Realpath appears to come from debian, and is not part of ...

    shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。
    在shell怎么获取一个文件或目录的绝对路径呢?
    也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看一下这里你就知道了。
    Realpath appears to come from debian, and is not part of coreutils,Realpath appears not to be standard issue.
    这个命令并不是总是可用的。 其实我们可以使用readlink命令:readlink -f  file_path
    file_real_path=$(readlink -f .)    获取当前的真实路径
    file_real_path=$(readlink -f ../..)    获取上上一级的真实路径
    这样就可以获得文件的绝对路径了,readlink的具体用法请自行man readlink!

    Readlink对于softlink的处理拿到的是实际的文件路径,而不是softlink路径。

    更好用的获取当前执行脚本的路径的方法为: 

    CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )

    echo $CURDIR 


    其他的常用路径有:

    获取当前执行脚本的路径 
    filepath=$(cd "$(dirname "$0")"; pwd) 

    echo "$(basename $0) $(dirname $0) -- $filepath " 
    脚本文件的绝对路径存在了环境变量filepath中,可以用echo $filepath  


    $0: 获取当前脚本的名称 
    $#: 传递给脚本的参数个数 
    $$: shell脚本的进程号



    展开全文
  • shell小记:dirname

    万次阅读 2015-12-15 11:41:11
    shell中,会有以下语句用于获取当前的路径: CURRENT_DIR="$(cd "$(dirname "$0")"; pwd)"其中的 $0表示添加到shell的第0个参数,dirname其实就是获取某个目录或文件路径,例如:

    在shell中,会有以下语句用于获取当前的路径:

    CURRENT_DIR="$(cd "$(dirname "$0")"; pwd)"
    其中的 $0表示添加到shell的第0个参数,dirname其实就是获取某个目录或文件的路径,例如:

    $ dirname /etc/hosts
    结果会返回文件hosts的上一层路径: /etc;如果是目录 /usr/bin/,则同理返回上一层路径 /usr。

    但如果当前已经处于该目录下了,例如 /etc,则dirname则会返回一个点 “."表示正处于该目录。


    dirname常用于获取当前路径:

    以上命令 $(dirname "$0") 将返回该文件当前的上一层路径,通过cd到该路径,通过pwd获得当前路径,并保存到CURRENT_DIR中;

    其中,"$(cmd")" 表示命令组,括号中的命令cmd将会新开一个shell顺序执行,其中的分号将两个命令:cd "$(dirname "$0")" 和pwd分开;


    展开全文
  • Linux下用crontab执行定时任务不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错...1、在Shell文件里面获取环境变量值的路径写...

    Linux下用crontab执行定时任务不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错。

    这是因为用户登陆Linux操作系统的时候,”/etc/profile”, “~/.bash_profile”等配置文件会被自动执行。
    有2种方法可以解决这个问题,

    1、在Shell文件里面获取环境变量值的路径写成绝对路径,别用环境变量的路径值。

    例如获取CPU的使用情况  通过绝对路径/proc/cpuinfo 来获取值;

    2、Shell脚本缺省的#!/bin/bash开头换行后的第一行用(推荐使用)

    #!/bin/bash

    . /etc/profile

    . ~/.bash_profile

    这样,crontab在执行脚本的时候,就能够读到用户的环境变量参数.
     

    展开全文
  • php执行shell脚本

    千次阅读 2019-03-25 16:44:15
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 编写test.sh脚本如下 #! /bin/sh mkdir /www/a 很简单的一个shell脚本 创建一个文件夹 php脚本如下 system('/us...
  • linux shell脚本获得当前文件路径

    千次阅读 2011-02-10 10:22:00
    php当中获得当前文件路径用:  dirname(__FILE__) 在shell当中没有直接的变量和函数, $(cd "$(dirname "$0")"; pwd)   但是把他用在嵌套脚本时就会发生问题。例如我在脚本a...
  • SqlMap进阶使用学习笔记

    万次阅读 2020-06-19 09:26:07
    文章目录前提条件文件操作命令执行和msf的结合原理剖析 前提条件 网站必须是root权限 需要知道网站的绝对路径 GPC为off,php主动转义的功能关闭 My.ini secure_file_priv="" 文件操作 –file-read #读取指定文件 –...
  • 后台getshell常用技巧

    千次阅读 2019-04-03 18:02:15
    1.利用文件上传漏洞,找文件上传处想办法上传php文件。...很多cms还有.hatccess文件禁止访问或者执行这个目录下的文件的情况 这种情况直接上传一个.hatccess文件覆盖这个,让其失效。 或者上传不重命名的...
  • shell脚本调用php代码

    千次阅读 2011-08-22 16:04:32
    shell里可以通过cgi模式来调用php,例如下面 /usr/php5/bin/php -q /var/html/demo.php 当需要并发处理一些php程序时 在其后面加上& 有的时候可以需要传些参数 /usr/php5/bin/php -
  • 今天编写shell脚本。想要程序在运行到一个地方的时候进行判断,结果为真退出程序。运行时直接退出了SecureCRT终端...(1)./xxx.sh意思是执行当前目录的a.sh文件,与输入完整路径执行脚本效果是一样的。需要a.sh有可执
  • Centos7下shell脚本添加开机自启动

    万次阅读 2018-07-20 10:24:55
    添加开机自启脚本,注意都需要用绝对路径 psubscribe.sh脚本中的内容: nohup /usr/bin/php -f /data/aliyun51015cn/redisChannel/psubscribe.php > psubscribe.log &   1、赋予脚本可执行...
  • 最近在QQ返利前端补送脚本的开发中,tenfy确实遇到过类似的问题,平时很注重的是shell脚本本身的路径是否是绝对路径,但在shell调用php脚本的时候,却忽略了php脚本里面包含的其他php文件使用了相对路径了。...
  • shell 中使用cd命令,提示找不到目录的解决方法 ** 在linux中将多个php命令写到同一个sh文件执行 #!/bin/bash/ cd /www/sf/ /usr/local/bin/php xxx.php /usr/local/bin/php xxx1.php /usr/local/bin/php ...
  • 网站后台getshell的方法总结

    千次阅读 2019-07-12 20:13:27
    方法一:直接上传getshell 以dedecms为例,后台可以直接上传脚本文件,从而getshell,具体方法如下: 即可成功上传大马,并成功执行,从而拿下webshell。 坑:通常由于权限限制,导致只有该目录权限,无法进入其他...
  • 【sql注入教程】mysql注入直接getshell

    万次阅读 2016-08-31 11:25:05
    Mysql注入直接getshell的条件相对来说比较苛刻点把 1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道 2:gpc没有开启,开启了单引号被转义了,语句就不能正常执行了 3:要有file权限...
  • SQL注入写WebShell方式小结

    万次阅读 2018-12-09 11:08:43
    传统的SQL语句写shell 通过SQL注入select into outfile实现,如: 1' union select 1,'<?php eval($_POST[a]);?>' INTO OUTFILE '/var/www/tmp/nb.php'# sqlmap写shell 前提都是需要对目标目录...
  • 如我现在想要执行D:\JAVAAPI\test file文件下的一个test.bat文件,但因为test file这个文件夹命名时存在空格,所以执行不成功。 在一个没有空格文件夹目录的地方写一个调用test.bat的文件,如callSomething.bat echo...
  • 解决PHP调用exec或shell_exec的问题

    千次阅读 2018-11-26 14:03:45
    最近在做一个项目需要用到PHP调用python,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了! 环境:centos7+nginx+mysql+php7.1 首先要解决的就是权限问题和...
  • 转自:... [PhpMyAdmin后台拿Shell] CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL ); INSERT INTO `mysql`.`xiaoma` (`xiaoma1` )VALUES (''); select xiaoma1 from xiaoma
  • Ecshop后台拿shell方法总结

    千次阅读 2016-11-25 17:17:17
    方法一:龙儿心发明的,版本未定,估计都...[includes/fckeditor /editor/filemanager/connectors/php/config.php文件对Media没有任何限制,直接Type=Media 上传你的webshell,访问路径为http://target/images/upload/M
1 2 3 4 5 ... 20
收藏数 37,564
精华内容 15,025
关键字:

php 执行shell文件路径