shell - 当命令有更改用户的命令时如何获取ssh的输出
问题描述
当我使用 ssh 在远程机器上运行命令时,我会从 shell 获取输出。但是,如果我添加
sudo su - user2
我不会得到任何输出。现在,我做不到
ssh user2@host
因为一些权限问题。
有没有办法获得以下命令的输出?
ssh user1@host 'sudo su - user2; wc -l tmp.txt'
感谢@laenkeio。使用 sudo -u user2 可以运行一些简单的程序。
但是,当我需要为 user2 调用需要一些环境变量的 python 脚本时,该脚本无法使用sudo -u user2
.
解决方案
如果您因某些权限问题而无法运行,则出于同样的原因ssh user2@host
您将无法运行……
而且,即使没有权限问题,执行时也会要求您输入密码……ssh user1@host 'sudo su - user2; ...
su - user
推荐阅读
- node.js - npm ci 在 docker 中因 ProcessTerminatedError 而失败
- excel - 如何提取特定的id
- html - 我正在尝试将 HTML 音频添加到我的烧瓶网站,但音频栏显示为灰色
- unit-testing - 使用 bootstrap vue 失败的单元/Jest 测试
- javascript - 玩笑模拟不适用于 React 测试库
- java - 按日期排序时如何使JPA分页返回日期而不是纪元?
- git - git branch -d newBranch,然后git checkot master没有撤消newBranch中的改动
- c++ - 如何编译没有库依赖的c++程序?
- javascript - 根据类别过滤 Firebase Firestore 条目
- android - 你能通过 adb 检测应用程序是否被侧载吗?