Bash 如何将密码从文件传递到";苏";命令

Bash 如何将密码从文件传递到";苏";命令,bash,shell,su,switch-user,Bash,Shell,Su,Switch User,如何从另一个文本文件向shell脚本中的su命令传递密码 password.txt类似于 password=tryme shell脚本需要由用户gucq1运行 shell脚本类似于 #!/bin/bash cd /pstools/85419/jre/bin java -Xms1024M -Xmx1024M -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -jar /app1/nohr/soft/85419/gucq1/

如何从另一个文本文件向shell脚本中的su命令传递密码

password.txt类似于

password=tryme
shell脚本需要由用户gucq1运行

shell脚本类似于

#!/bin/bash

cd /pstools/85419/jre/bin
java -Xms1024M -Xmx1024M -Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 -jar /app1/nohr/soft/85419/gucq1/cust/classes/SVC_TestS.jar 
我需要使用不同的id(gucq1)运行此脚本,而不是使用(autoid)登录

我不想使用SUDO,因为我没有访问它的权限。

如果更改
/etc/pam.d/su
,则可以使用

su gucq1 -c <command>
su gucq1-c

无需提示输入密码。

虽然我不推荐使用SUDO,但您可以这样使用SUDO

echo "mypassword" | sudo -S ./somescript ;

问候

如果OP没有sudo访问权限,那么期望他们写入PAM配置是否合理?我假设他没有安装sudo实用程序,而不是没有root访问权限。是这个问题的超集。那里的OP接受了一个答案,这个答案没有明确涵盖你的方面,但其他答案确实满足了你的需求。也就是说,从安全角度来看,您永远不应该这样做。更安全的做法是生成一个SSH密钥对,并在
gucq1/.SSH
中安装一个
authorized_keys
条目,允许该密钥只运行一个特定脚本——这样,如果密钥被盗,用户只能以
gucq1
的身份运行该脚本,无法完全控制该帐户。如果您拥有
password.txt
和访问
su
,您可以访问
sudo
。利用它。@chepner,只有当OP可以su-to-root时才可以;他们在向另一个用户提供信息。但这确实让他们可以设置
授权密钥
。显然,我忘记了
su
是如何工作的