以预定义用户身份运行 Linux 命令

vij*_*had 6 linux shell-script

我创建了一个 shell 脚本来启动一个server程序。

startup.sh  start
Run Code Online (Sandbox Code Playgroud)

当上面的命令执行时,它会尝试启动serveras adminuser。为了实现这一点,我的脚本是这样写的。

SUBIT="su - adminuser -c "
SERVER_BOX_COMMAND_A="Server"

##############
# Function to start cluster

function start(){

   $SUBIT "$SERVER_BOX_COMMAND_A"

}
Run Code Online (Sandbox Code Playgroud)

当我执行命令时,它要求输入密码。有没有其他方法可以做到这一点,它不会要求输入密码。

我在 jboss 上提供的 Jboss 启动脚本中看到了这种行为。该脚本将用户更改为jboss然后启动 jboss 服务器。我希望我的脚本以相同的方式运行。

小智 1

除非我错过了你所要求的东西是不可能的。

jboss 脚本旨在

  1. 以 root 身份启动
  2. 切换到权限较少的jboss用户

但你问的是

  1. 以非特权用户身份启动
  2. 切换到admin/root,有更多权限。

这就是为什么无论您尝试什么命令,您始终需要密码。

您的服务器需要提升权限有什么具体原因吗?