リモート Linux マシンに存在するファイルを変更できるように、リモート管理者ユーザーになりすまそうとしています。しかし、パスへのアクセスが拒否されたため、エラーメッセージが表示されます。ただし、このことは手動でコマンドを使用してパテ経由で行うことができます:
sudo -S -u wtsnqa rm /path-to-file/
どんな助けもかなりの価値があります。
私のコード:
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "sj1slm612",
UserName = "userid",
Password = "password",
SshHostKeyFingerprint = "ssh-rsa 2048 fa:e9:58:24:1b:41:a3:15:63:0d:c0:72:41:5d:51:7a"
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Performing removing files from remote server via impersonation.......
AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);
using (WindowsIdentity Authorized_user = new WindowsIdentity("wtsnqa"))
{
using (WindowsImpersonationContext context = Authorized_user.Impersonate())
{
File.Delete(@"\\sj1slm612\apps\instances\express_13000\configuration\standalone-full.xml");
File.Delete(@"\\sj1slm612\apps\instances\query_13100\configuration\standalone-full.xml");
File.Delete(@"\\sj1slm612\apps\instances\wppapi_13200\configuration\standalone-full.xml");
File.Delete(@"\\sj1slm612\apps\instances\wppgui_13300\configuration\standalone-full.xml");
Console.WriteLine("All config files removed from sj1slm612");
Console.ReadLine();
context.Undo();
}