微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux命令在使用SharpSSH库时不能从.NET执行

我试图通过.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?

用户的启动文件夹中放置一个快捷方式以启动Windows

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应用程序中

如何启用/禁用防火墙?

桌面通知程序没有可见的forms给用户

在C#3.0中的Windows本地用户帐户的身份validation

如何validation此Windows系统信任给定的SSL服务器证书?

我认为这些玩具的PHP文件一个更大的东西减少的情况。

如果您需要实际创建和删除文件,请不要使用PHP – 您可以直接使用shell命令。

如果您不想关闭密码提示,那么在/etc/sudoers文件中有相应的语法 – 请参阅这里的 “nopASSWD”。

PHP 应该以root身份运行,特别是在命令行中的变量。 如果你有权限问题 – 解决它们! PHP应该以最小特权的用户身份运行。

如果你需要一个“维护”帐户来ssh并不想让PHP用户有额外的能力,让它另一个用户PHP用户共享一个组 – 您可以使用组权限。 (您可能需要摆弄文件创建的认权限。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐