- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
保持简短;
PHP 脚本需要运行 /etc/init.d/nagios reload
,添加 apache ALL = (nagios) NOPASSWD:/etc/init.d/nagios
到sudo-ers 文件,但要使用 SUDO PHP 需要一个 TTY(我不想删除 Defaults requiretty
所以我想“伪造”或为 PHP 脚本创建一个 TTY,以便它可以重新加载Nagios。
红帽 6、PHP 5.3
最佳答案
这是可以做到的——sudo 的 requiretty
选项相对容易破解,因此它本身并没有真正增加多少安全性。如果您真的确定要保留它(也许您需要支持在默认情况下打开 requiretty
的用户系统上运行您的脚本?)那么制作 tty 可能真的是正确的解决方案.
不过,这在纯 PHP 中可能会是一个巨大的痛苦。我在 php.net 上搜索了引用文档,但没有看到任何迹象表明它具有用于分配或使用 ptys 的任何内置实用程序函数。如果您真的想在纯 PHP 中执行此操作,您可能需要引用 forkpty() 调用的 glibc 源代码(包括它具有的其他依赖项,如 openpty()、getpt()、grantpt()、 unlockpt() 等)。在其核心,这将涉及 open()'ing/dev/ptmx 中的伪终端主设备以获取主 PT 文件描述符,执行 chown 和 TIOCSPTLCK ioctl,然后确定/dev/pts 中的哪个设备是相应的从设备fd 并打开它。
但我强烈建议在 PHP 之外做 tty 伪造部分,可能是通过在 Python 中打开一些 sudo 包装器脚本(它在 pty module 中有一些非常方便的函数)或者甚至是 bash + 类似 socat 的东西。
关于PHP 为 sudo 创建 'fake' TTY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994862/
我在尝试从单独的项目中引用 mscorlib fake DLL 时遇到问题,如下所述。 我有许多 VS12 解决方案,我正在使用 MS Fakes 为其编写单元测试。根据以下 URL 中的建议,我决定
我在使用 Microsoft fakes 的解决方案中有一个单元测试项目,当我构建它时出现以下错误。它提示无法加载的 DLL 在磁盘上。我已经打开了 Fusion 日志记录,这表明绑定(bind)成功
是否可以设置一个 Target,在 Build Target 完成后在远程创建并推送一个 git 标签? 感谢您的帮助。 最佳答案 我使用了以下似乎有效的方法 Target "TagBuild" (f
我已经使用 Django 大约 2 年了,有一个功能我一直害怕使用:伪造迁移 . 我几乎到处都看过,我能得到的最多信息来自 documentation它指出: --假 Tells Django to
我将在我的单元测试中使用 Microsoft.Fakes。我读了一个tutorial Microsoft.Fakes 在其中为接口(interface)创建了一个 stub (在解决方案中实现),但在
我使用 VS 2015 U1。 我使用带有奇怪版本控制的外部库 - 1.0.4056.40164 . 我为这个库添加了一个 .Fakes 文件。当构建 fakes 程序集时,我收到以下警告: C:\S
单元测试项目 Up.UnitTests 在构建期间失败,并出现此构建错误 错误 CS0430:未在/reference 选项中指定外部别名“snh”错误 CS0234:命名空间“snh”中不存在类型或
有没有一种简单的方法可以让我使用 FAKE 获取正在执行的 .fsx 文件的路径? Powershell 和 (psake) 的使用性质和 MSBUILD 提供了此功能,但作为 FAKE/F# 菜鸟,
因此,在我正在构建的光线追踪器中,我已经获得了适用于球体的折射以及焦散效果,但是玻璃球看起来并不是特别好。我相信折射数学是正确的,因为光线似乎在以您期望的方式反转时弯曲,但它看起来不像玻璃,它只是看起
在VS中,通常在Build(增量式)和Rebuild之间进行区分,后者将先进行清理,然后再执行与Build相同的操作。我可以使用FAKE提供类似的行为吗? 让我们假设以下目标: Target "Cle
作为解决方法,我需要更改某个 Java 程序的系统时钟,而不触及代码才能获取: calendar.getinstance().get(calendar.year) = 2013 是否可以仅通过启动配置
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
当类库引用 Visual Studio 2013 下针对 .Net 4.5 和 Silverlight 5 的 PCL(可移植类库)时,我无法为类库 (.NET 4.5) 生成 Microsoft F
我正在尝试使用 FAKE 来构建位于多个子目录中的 F# 文件。 filesInDirMatching来自 FAKE。 #r @"packages/FAKE/tools/FakeLib.dll" op
这与我提出的最后几个问题无关。 我需要从 IP 网络摄像头 (SNC-RZ25N) 获取视频到 Flash Media Server。我宁愿不必使用 Windows,但如果它使事情变得更容易,我会的。
在 FAKE你通常有一个像这样的构建脚本: // "foo.fsx" #r @"./packages/tools/FAKE/tools/FakeLib.dll" open Fake Target "F
Django迁移中的--fake-initial和--fake有什么区别?使用假迁移有什么危险?有人知道吗非常感谢大家。 我正在使用Django 1.10 最佳答案 好吧,文档对此很清楚 --fake
我正在为一个项目构建一个模板,它目前没有构建服务器端。我需要测试我的表单和验证,并想要“伪造”表单提交。 我正在尝试这个: $("#save").click(function(e) { e.pre
考虑以下因素: #r @"FakeLib.dll" open Fake open Fake.StringHelper open Fake.ProcessHelper Shell.Exec("mkdir
我是一名优秀的程序员,十分优秀!