linux - 无法在同一个 sudo 会话中执行命令
问题描述
无法在用户的同一会话中执行以下触摸命令 - weblogic。而是在用户 - djaiswa2 上执行下面的触摸命令并且失败[因为它试图访问其所有者是 weblogic 的路径]。
[djaiswa2@cdcesb01 tmp]$ cat test.sh
#!/bin/bash
sudo su - weblogic;
touch /opt/middleware/.ssh/authorized_keys;
chmod 755 /opt/middleware/.ssh/authorized_keys;
[djaiswa2@cdcesb01 tmp]$ sh -x test.sh
+ sudo su - weblogic
Last login: Thu Aug 26 00:38:06 EDT 2021 on pts/0
-bash-4.2$ exit
logout
+ touch /opt/middleware/.ssh/authorized_keys
touch: cannot touch ‘/opt/middleware/.ssh/authorized_keys’: Permission denied
+ chmod 755 /opt/middleware/.ssh/authorized_keys
chmod: cannot access ‘/opt/middleware/.ssh/authorized_keys’: No such file or directory
解决方案
您需要使用su
带有-c
选项的命令来指定要执行的命令。
例如:
sudo su - weblogic -c "touch /opt/middleware/.ssh/authorized_keys; chmod 755 /opt/middleware/.ssh/authorized_keys"
推荐阅读
- javascript - 如何在按钮单击时更新 useEffect() 挂钩的值
- sql - BigQuery 在 Firebase 函数中无法正常工作
- selenium - 使用 beautifulsoup 获取 div 标签中的 alt 值
- ffmpeg - 在 FFmpeg 中映射不同的流,这是相同的吗?和工作?
- django - Django Rest Framework - Html 渲染器坏了?
- html - 如何改变前一个元素的样式值
- python - 如何创建正则表达式来查找 URL 内的两个文件夹中的文件?
- clojure - 这个 Clojure 宏扩展是如何工作的?
- openlayers - 如何在交互修改中更改蓝点样式
- java - 继续单击 TextView 上的另一个活动和/或片段