![](/img/trans.png)
[英]Why can't I use 'sudo su' within a shell script? How to make a shell script run with sudo automatically
[英]how can i switch user in shell script by using sudo and password
我正在处理需要更改用户的脚本,我具有sudo访问权限,我尝试了以下类似操作,但未成功。
echo $passwd | sudo -S su - oracle
我什至尝试安装ssshpass
但都没有成功。 甚至有可能吗?或者我需要安装其他东西才能完成这项工作?
任何想法
如果您将使用root帐户运行脚本,则只需
message="The cake is a lie"
su username -c 'echo $message'
如果您要与其他用户一起运行脚本,则有两种方法可以执行此操作,
1)像下面这样配置pam,这样当您运行以user1登录的su user2 -c'command'时,Linux不会要求输入密码。
在/etc/pam.d/su中的pam_rootok.so行下面添加以下行:
auth [success=ignore default=1] pam_succeed_if.so user = user2
auth sufficient pam_succeed_if.so use_uid user = user1
第一行确保目标用户为user2。 如果是这样,如果主叫用户为user1,则下一行将控制并成功授权。
如果目标用户是其他用户,则将忽略第二行,并将执行常规身份验证步骤。
2)使用期望的那样写你的脚本在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.