gpt4 book ai didi

linux - 在 bash shell 脚本中切换用户

转载 作者:太空狗 更新时间:2023-10-29 12:25:59 30 4
gpt4 key购买 nike

我正在使用 Solaris SunOS 5.10,我需要在执行提供 su 或 sudo 用户名和密码的 bash shell 脚本时切换用户 我已经尝试了以下命令

    echo -e "mqm\n" | sudo -S "command"

但我不知道这个命令如何知道我想切换到的用户,而且当我尝试它时它说密码错误

真正想做的是在我的脚本中切换用户,然后在切换后运行另一个脚本,因为第一个用户没有运行 mq 命令的权限

谢谢

最佳答案

您可以使用 sudo 授予用户运行某些命令的权限,而无需输入密码。有关详细信息,请参见 man 5 sudoers

以下是用户名为“user10”的用户的 sudoers 条目示例:

user10 ALL=NOPASSWD: /usr/bin/apt-get update, /usr/bin/apt-get -u upgrade

这将允许用户以 root 身份运行“/usr/bin/apt-get update”和“/usr/bin/apt-get -u upgrade”而无需密码。

PS Sudo 不会从 STDIN 读取密码,这就是为什么通过管道传递密码不起作用的原因。它直接从伪终端读取它。


有一个使用 set-UID 位的不同解决方案。很难让它像上面给出的 sudo 解决方案一样安全。

创建一个二进制文件,该用户拥有足够的访问权限来正确运行该程序。设置二进制文件的 setuid 位 (chmod u+s program_name)。然后当另一个用户执行这个二进制文件时,它将作为文件的所有者运行,而不是作为执行它的用户运行。

关于linux - 在 bash shell 脚本中切换用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40217900/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com