Heim > php教程 > php手册 > Hauptteil

PHP调用Linux命令无权限的问题解决(visudo)

WBOY
Freigeben: 2016-05-26 08:20:42
Original
1445 Leute haben es durchsucht

下面来看一个关于PHP调用Linux命令无权限的问题解决(visudo),希望文章对大家有帮助.

业务背景:yourcmd为我的linux程序,它对权限要求非常严格,当用php去执行yourcmd程序

系统:CentOS 6.3

apache是php的执行用户

用exec函数去执行linux系统上的程序/usr/local/yourcmd/sbin/yourcmd

php代码如下:

<?php 
	$conf_file = "/var/www/html/webroot/test.tmp"; 
	$command = "sudo /usr/local/yourcmd/sbin/yourcmd -t -f {$conf_file}"; 
	exec($command,$out);   
	print_r($out);
Nach dem Login kopieren

测试结果为没有权限

Array ([0] => sudo: no tty present and no askpass program specified)

解决步骤:

$ visudo

1)注释以下行

#Defaults    requiretty
Nach dem Login kopieren

2)在文件末尾加入以下

apache ALL=(ALL) NOPASSWD: ALL
Cmnd_Alias yourcmd = /usr/local/yourcmd/sbin/yourcmd
Nach dem Login kopieren

最后测试结果:

Array ( [0] => Warning: memory is too small: 1044725760 [1] => test configure is ok )
Nach dem Login kopieren


文章链接:

随便收藏,请保留本文地址!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage