繁体   English   中英

如何使用sudo和密码在shell脚本中切换用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM