php利用exec执行shell脚本问题
先说下我想做的事情:
将Linux下的操作,web化,使用户可以通过web端进行基本的操作,但是现在在写创建目录的代码:
$mkdir_command = "/home/myname/myshell/mkdir.sh /$directory/ $name";
exec($mkdir_command,$output,$return);
.....
我也知道在web端执行shell脚本,其实在Linux下是以Apache的权限来运行的,
但是在Linux下我将mkdir.sh在运行时的权限修改为root的了,也就是说任何调用该文件的用户在执行的时候都是以root的权限来执行的:chmod 777 mkdir.sh ; chmod u+s mkdir.sh
但是在网页端还是执行不成功。
单独在Linux下是可以执行成功的,
希望大家发表一下意见或者看法,谢谢!!
回复讨论(解决方案)
Apache对该目录要有写的权限
Apache对该目录要有写的权限
谢谢您的回复,可以说一下具体应该怎么设置吗?
mkdir.sh权限修改为root的
那 apache 就更无权访问了
本帖最后由 xuzuning 于 2012-11-28 19:32:59 编辑mkdir.sh权限修改为root的
那 apache 就更无权访问了
额。。。mkdir.sh本身就是root用户创建的,只是当执行这个文件的时候,为普通用户赋予root的权限。
版主回复深感荣幸,嘿嘿,说正事。。。 您有什么好方法吗?
1.web将结果写到 一个文件里 例如需要创建什么 到哪创建
2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容
如果是 这个时候就是用root 来操作了
建一个定时器就是了.
楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh ,是那个跑shell 的php .设了执行权限没?
1.web将结果写到 一个文件里 例如需要创建什么 到哪创建
2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容
如果是 这个时候就是用root 来操作了
建一个定时器就是了.
您的意思是利用Linux的crond服务来实现?每隔一段时间就执行php写入的那个文件,然后再删除?这个办法好吗?
楼主,请问你的php脚本有没有执行权限? 不是mkdir.sh ,是那个跑shell 的php .设了执行权限没?
php的运行权限肯定是有的。
你得查看你有没有执行权限
system/exec先执行一条其他简单的命令比如:ls 、ifconfig看看能否执行成功
再去检查.sh文件的权限问题
linux下输入visudo
然后我们在最后追加
apache ALL=NOPASSWD:/bin/sh
然后
php执行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要执行的脚本
看看这篇文章吧,可以解决你的问题
http://blog.csdn.net/vindo/article/details/3610587
加 sudo
linux下输入visudo
然后我们在最后追加
apache ALL=NOPASSWD:/bin/sh
然后
php执行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要执行的脚本
看看这篇文章吧,可以解决你的问题
http://blog.csdn.net/vindo/article/details/3610587……
谢谢各位,问题已经解决。谢谢!
谢谢上面各位的回答,综合一下,问题解决!嘿嘿!
求教怎么解决的?我的脚本是获取虚拟机ip的,现在也无法执行

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Alipay PHP ...

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...
