我正在嘗試使用 winscp 從遠程 linux SUSE 上的 windows 執行 sh 腳本。
我創建了一個會話如下:
$sessionOptions = 新物件 WinSCP.SessionOptions -Property @ {
Protocol = [WinSCP.Protocol]::Sftp
HostName = "RemoteIp"
UserName = "username"
Password = "password"
}
$session = New-Object WinSCP.Session
我運行 sh 腳本
$session.ExecuteCommand("bash /home/script.sh" )
我得到權限錯誤,例如:
rm:無法洗掉“/somefolder”:權限被拒絕。
像 uname 這樣的簡單命令可以正常作業。
知道如何以 root 身份登錄嗎?
uj5u.com熱心網友回復:
您必須通過以下方式運行命令sudo:
$session.ExecuteCommand("sudo bash /home/script.sh")
盡管 WinSCP 不支持為命令提供輸入。因此,您的遠程系統必須配置為不需要sudo密碼(根本不需要密碼,或者對于該特定命令)。
一些參考資料:
- 登錄后如何更改用戶(例如 su root)?
- 允許使用 SSH 在 Linux 上以 root 身份自動執行命令。
uj5u.com熱心網友回復:
轉到您的 WinSCP 組態檔(會話 > 站點 > 站點管理器)
單擊編輯 > 高級... > 環境 > SFTP
在“SFTP Server”中插入 sudo su -c /usr/lib/sftp-server (注意這個路徑在你的系統中可能不同)
保存并連接
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/523416.html
