我有一个使用root用户执行的函数结构脚本。然而,需要作为另一个用户执行脚本的大部分内容。我的问题是如何根据要执行的函数使用不同的用户来执行不同的函数。
例子#!/bin/bash
function A() { # Run as a non-root user
...
}
function B() { # Run as a non-root user
...
}
function C() { # Run as a non-root user
...
}
function D() { # Run as a root user
...
}
function main() {
A
B
C
D
}
main
如前所述,使用根用户调用该脚本:
root@host:~# script.sh
这里的主要目标是知道这是否可能以及如何做到这一点,而不改变脚本的调用方式(即通过另一个用户而不是root调用脚本)
您可以在runuser命令的帮助下完成此操作。
要使用你的模板,它看起来像这样:#!/bin/bash
function user(){
runuser -l user -c "whoami"
}
function main(){
user
}
main
#work user as example
su - work -c "pwd"
呢?