在php程序中使用了exec函数调用sudo指令,在浏览器中访问后,报sudo: sorry, you must have a tty to run sudo错误。

按照网上搜到的方法,修改/etc/sudoers文件,注释如下行:

#Defaults    requiretty

在浏览器中访问结果依旧。

http://blog.csdn.net/chinalinuxzend/article/details/3747299中看到,指定账号还需要在sudoers中作如下设置:

用sudo是最好的办法,针对你的问题,在/etc/sudoers文件中做如下修改:
(1)注释掉:Defaults    requiretty所在的行。即:

#Defaults    requiretty

(2)你的允许执行lvscan命令的内容类似下面(即加上NOPASSWD,在使用sudo执行该命令时可以不用密码):

bearzhang       ALL=NOPASSWD:/usr/sbin/lvscan,/sbin/sudo

如果只允许在某台主机上使用该命令则将ALL换成允许的主机即可,例如:

bearzhang       www.koorka.com=NOPASSWD:/usr/sbin/lvscan,/sbin/sudo

由于是从浏览器中执行,不同的浏览器在执行linux指令时,所具有的身份不同,因此在sudoers中添加如下三行,完美解决问题:

apache ALL=(ALL) NOPASSWD: ALL
www  ALL=(ALL) NOPASSWD: ALL
nginx  ALL=(ALL) NOPASSWD: ALL

浏览器中调用PHP在执行linux sudo指令时报sudo: sorry, you must have a tty to run sudo的更多相关文章

  1. RF采用SSHLibary库执行sudo命令,提示sudo: sorry, you must have a tty to run sudo错误的解决办法

    经了解Execute Command and Start Command两个关键字执行linux命令会新增一个shell,并且可能改变环境配置,如果要确保环境不被改变,则需采用Write和Read方法 ...

  2. [转载]解决sudo: sorry, you must have a tty to run sudo

    前几天遇到一个问题,在一个终端中调用另一个shell,始终是无法执行的,后来捕捉到报错信息为sudo: sorry, you must have a tty to run sudo,后来,在网上了解到 ...

  3. sudo: sorry, you must have a tty to run sudo

    使用ssh进行无密访问,并发送执行命令的时候遇到了如题的错误 执行命令ssh user@host "sudo rm /data/test,txt" sudo: sorry, you ...

  4. [转]sudo: sorry, you must have a tty to run sudo问题

    使用不同账户,执行执行脚本时候sudo经常会碰到 sudo: sorry, you must have a tty to run sudo这个情况,其实修改一下sudo的配置就好了vi /etc/su ...

  5. sudo 问题:sorry, you must have a tty to run sudo

    写定时任务时候遇到 如下问题 To start backup... -- :: sudo: sorry, you must have a tty to run sudo The backup to c ...

  6. Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch(1)

    继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...

  7. Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch

    继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...

  8. You must have a TTY to run sudo

    1.方法一,给命令行添加tty ssh -t user@foo.com 2.使用sudo visudo修改配置: Defaults:user !requiretty 表示用户user使用sudo命令时 ...

  9. 不借助工具在浏览器中通过Web API执行Dynamics 365操作(Action)实例

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复262或者20170727可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

随机推荐

  1. 条款1:视C++为一个语言联邦

    C++是门多范式语言,至少包括面向过程,面向对象,泛型,函数式,元变成等. 但谨记,不要随意混合使用各种特性,为自己制定使用原则,针对不同项目.业务. 如: 类C风格编程:没有模板,没有异常,没有重载 ...

  2. 【校招面试 之 剑指offer】第10-2题 青蛙跳台阶问题

    题目1:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个n级台阶共有多少种跳法? 题目2:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶...也可以一次跳n级台阶.求该青蛙跳上一个 ...

  3. 【c++】多层次继承类对象的构造函数参数的传递方法

    #include <iostream.h> //基类CBase class CBase { int a; public: CBase(int na) { a=na; cout<< ...

  4. swift中UITextView的使用

    https://blog.csdn.net/potato512/article/details/52692604

  5. swift 官方文档

    swift 官方文档 https://swift.org/blog/

  6. IIS 设置404页面 显示系统找不到指定的文件

    1.原因就是IIS的普通用户没有访问404页面的权限,造成了自定义404页面无法显示.只需要将user用户组具有读的权限即可.

  7. 如何在64位WIN7旗舰版下安装SQL2000

    1>找到安装包下面的“DEVELOPER”或“ENTERPRISE”等下的X86\SETUP下的“SETUPSQL.EXE”,在安装前右键单击这个文 件, 1.1 打开“兼容性”标签,兼容模式选 ...

  8. SQL存储过程将符合条件的大量记录批量删除脚本

    -- ============================================= -- Author: James Fu -- Create date: 2015/10/27 -- D ...

  9. C#调用默认浏览器打开网页的几种方法

    private void button1_Click(object sender, EventArgs e) { //从注册表中读取默认浏览器可执行文件路径 RegistryKey key = Reg ...

  10. 关于session报错问题。

    刚开始一直报500错误,页面不提示,也没想着去查看日志文件.好几天了,一看日志,发现是这个问题.问了一下,是session的问题. 2017/07/25 16:57:49 [error] 2300#0 ...