我试图通过.NET使用SharpSsh .NET库在Linux中运行一个非常简单的命令。 该代码不会抛出任何exception,它仍然无法正常工作。 当我从terminal运行sudo PHP /www/data/{directory}/scripts/create_file.PHP命令时,它会创build文件。 而当我从terminal运行sudo PHP /www/data/{directory}/scripts/delete_file.PHP命令时,它将删除该文件。 从.NET调用此代码时,我看不到正在创build/删除的文件。
看到这个答案设置:
SharpSSH .NET Library:无法从.NET连接到Linux(Debian)
create_file.PHP:
<?PHP $handle = fopen( 'test.txt','w' ); fwrite( $handle,'Test Contents' ); fclose( $handle );
delete_file.PHP:
在.NET中使用RegEx标准化Windowspath或URI
Windows如何决定是否触发MouseUp或Click?
KERNELBASE.dllexception0xe0434352偏移量0x000000000000a49d
你在哪里得到调用PowerWriteACValueIndex时使用的索引值?
<?PHP if( file_exists( 'test.txt' ) ) unlink( 'test.txt' );
.NET代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Tamir.SharpSsh; namespace Testing { public class Unix { public static void CreateFile() { SshExec ssh = new SshExec(Constants.LINUX_HOST,Constants.LINUX_USER,Constants.LINUX_PASSWORD); ssh.Connect(); String result = ssh.runcommand("sudo PHP " + Constants.PHP_SCRIPTS_DIR + "create_file.PHP"); } public static void DeleteFile() { SshExec ssh = new SshExec(Constants.LINUX_HOST,Constants.LINUX_PASSWORD); ssh.Connect(); String result = ssh.runcommand("sudo PHP " + Constants.PHP_SCRIPTS_DIR + "delete_file.PHP"); } } }
将用户凭据保存在Windows应用程序中
如何启用/禁用防火墙?
在C#3.0中的Windows本地用户帐户的身份validation
如何validation此Windows系统信任给定的SSL服务器证书?
如果您需要实际创建和删除文件,请不要使用PHP – 您可以直接使用shell命令。
如果您不想关闭密码提示,那么在/etc/sudoers文件中有相应的语法 – 请参阅这里的 “nopASSWD”。
PHP 不应该以root身份运行,特别是在命令行中的变量。 如果你有权限问题 – 解决它们! PHP应该以最小特权的用户身份运行。
如果你需要一个“维护”帐户来ssh并不想让PHP用户有额外的能力,让它另一个用户与PHP用户共享一个组 – 您可以使用组权限。 (您可能需要摆弄文件创建的默认权限。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。