首页 > 解决方案 > 无法在同一个 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

标签: linuxbashssh

解决方案


您需要使用su带有-c选项的命令来指定要执行的命令。

例如:

sudo su - weblogic -c "touch /opt/middleware/.ssh/authorized_keys; chmod 755 /opt/middleware/.ssh/authorized_keys"

推荐阅读