- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Node ssh2模块,这就是我需要做的
1. 以本地用户身份 ssh 到服务器
2. sudo as oracle : sudo su oracle
3.运行命令
我无法 sudo su oracle,因此无法运行任何命令。本地用户有成为oracle的权限,无需提供密码。
我可以像一个一样运行多个命令 -cd/home;./run.sh
但是如果我需要运行第一个命令所在的命令sudo su oracle;cd/home; ./run.sh
我没有收到回复
//代码片段
let fs = require('fs'),
Client = require('ssh2').Client;
const executeRemote = (command, remoteServer, user, privateKey) => {
return new Promise((resolve, reject) => {
let conn = new Client();
let outputData = '';
console.log('privatekey is ' + privateKey);
conn.on('ready', function () {
conn.exec((command), function (err, stream) {
if (err) {
reject(err);
}
// eslint-disable-next-line no-unused-vars
stream.on('close', function (code, signal) {
console.log('outputData is ', outputData);
console.log('code is ' + code);
if (code === 0)
resolve(outputData);
else
reject(outputData);
conn.end();
}).on('data', function (data) {
//console.log('data is ', data.toString());
outputData = outputData + data.toString();
}).stderr.on('data', function (data) {
console.log('stderr data Error- ' + data.toString());
//check if data.toString() has WARNING
let regex = '[WARNING]';
if (data.toString().match(regex))
outputData = outputData + data.toString();
else
reject(new Error('Failed to run the command- ' + command + ' .Error- ' + data.toString()));
});
});
}).connect({
host: remoteServer,
port: 22,
username: user,
privateKey: require('fs').readFileSync(privateKey)
});
});
};
一旦我可以作为本地用户进行 ssh,我想以 oracle 身份运行 sudo 命令,然后运行其他命令。是否有一个代码片段可以分享他们如何以任何用户身份执行 sudo su 然后运行命令
最佳答案
您可以根据提示输入密码:
ssh.exec('sudo su - ' + sudoUserName, { pty: true }, function (err, stream) {
stream.on('close', (code, signal) => {
//clean up
}).on('data', (data) => {
if (data.toString().substring(0, sudoUserName.length) === sudoUserName) {
//logged in successfully
}
else {
//enter password
stream.write(password + '\n');
}
}).stderr.on('data', (data) => {
stream.close();
});
}
关于node.js - Node ssh2 到 ssh 并以用户身份 sudo su 并运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56045988/
简单的问题,有什么区别 su oracle 和 su - oracle 我不确定 - 在这两个命令中的意义是什么。 更新: 执行 su oracle 后,尝试了 which sqlplus 但无法识别
我正在尝试找出一些给我的代码。有人能告诉我这是什么意思吗? process = Runtime.getRuntime().exec("su"); os = new DataOutputStream(p
我正在尝试将自己设置为 root,一旦我在终端中输入 su - root 它就会给我一个错误提示/bin/su: Permission denied 所以我检查了权限在那个文件中 -rwsr-x---
当我尝试从具有系统权限的程序运行 su 命令时,我在 stderr 上返回了这个错误: uid 1000 not allowed to su 我将共享 uid 设置为 android.uid.syst
我想用非 root 用户启动一个容器,但我不能修改原始 Dockerfile,或者我知道我可以做一些像 Run useradd xx 然后 User xx 在 Dockerfile 中实现。我现在正在
我正在尝试编写一个将运行以下命令的脚本: sudo su runmqsc_result=`su -c "runmqsc QMGR 或者,您可以使脚本只能由 root 编写,并将以下内容添加到 /et
当我使用 adb 访问我的设备时(Android 4.4.2 直接来自制造商及其定制的 rom - 它不是常规设备 - 它内置了二维条码扫描仪)它直接进入了一个 # 我已经read 意味着我有 roo
我正在编写一个 bash 脚本来扫描多台 linux 机器以查看它是否符合组织的标准: grep "sulogin" /etc/inittab ~:S:wait:/sbin/sulogin 我正在使用
我有一个 bash 脚本,需要在不同的用户下运行几个命令。我想使用 su 执行此操作,但如果没有密码提示,我无法自动 su。 运行脚本的用户将是 centos 中的 apache(因此不是真实的用户帐
我想用 su 在一个命令行中更改用户 echo password | su user 但这行不通。还有其他的可能性吗?最良好的祝愿 最佳答案 首先:问问自己脚本是否真的有必要知道密码。 sudo 和
passwd命令 passwd 命令用来修改您的密码。 语法: 语法是 passwd [命令开关] 命令开关: -a 显示密码属性的所有项目。
我有一个 linux 用户 (user2),它已设置为 shell /usr/sbin/nologin(以阻止登录)。不,当我尝试使用 sudo su user2 切换到该用户时,我得到的信息是该帐户
今天早上我犯了一个小错误。 我想更改 wordpress 网站目录的所有者,我命令如下。 sudo chown -vR :theuser / var/wwwwordpress/ 但是这个命令是错误的。
如果我运行这个命令: su -l otheruser -c 'strace /usr/lib/systemd/systemd --user 2> /tmp/su.err' 失败了: Failed to
所以我无法让 su 命令在终端上工作。我所做的就是输入“su”并按 Enter 键,它会要求输入密码,然后我输入当前登录的用户密码。它总是给出这个错误。我发誓这以前有用,不知道发生了什么。 su: S
我正在使用流分析来实现简单的数据传递场景。 作业具有多个 SQL Server 输出(三个)和一个 EventHub 输入。事件数量很少。问题是我的 SU 利用率不断增加。我的临时解决方案是每天重新启
我是一名关于 Vagrant 的新生。我刚刚发现,当我在 Vagrant 监督的盒子里时,我可以通过“sudo su -”更改为 root,而无需输入密码。 奇怪的是,我检查了“/etc/sudoer
我有一个程序,该程序将使用密码作为输入,然后执行 shell 程序以在UNIX中执行“su”(切换用户)命令。但是,我不知道如何将password变量传递给UNIX su命令。我必须为此使用的语言非常
Process process = Runtime.getRuntime().exec("su"); 在 上运行上述命令时 Root 电话一切正常 但是当我在 上尝试相同的代码时无根设备导致内存泄漏,
我使用 boost 1_65_1 并尝试在 MacOS 上运行一个进程。我的主要进程以 root 身份运行我需要以普通用户身份启动子启动。我的命令行:su user_name -c "full 可执行
我是一名优秀的程序员,十分优秀!