linux切换用户执行脚本

在我们日常运维中,在一个用root权限执行的脚本中,需要经常切换到不同用户执行对应的命令,因此如下总结了如何在root用户有执行权限的脚本中如何切换到不同用户执行对应的命令或者脚本的几种方式:

1. su - user -c 'command'  # 单独一条命令有没有单引号或者双引号包裹都可以
ex: su - zzl -c 'whoami'

2. su - user -c ' # 多条命令用单引号或双引号包裹,如果要对命令输出进行赋值,那么只能用单引号
command1
command2
'
ex: 
su - zzl -c '
free -m
user=$(whoami)
echo $user
'

3. su - user -s /bin/bash script.sh
ex: su - zzl -s /bin/bash /home/zzl/a.sh

4. su - user <<EOF #这个方式,不能对命令的输出进行赋值
command1
command2
EOF
ex:
su - zzl << EOF
whoami
free -m
EOF
whoami

#下面这样写$user不会有输出
ex: 
su - zzl << EOF
user=$(whoami)
echo $user
free -m
EOF
whoami

Guess you like

Origin blog.csdn.net/qq_20663229/article/details/103932139
Recommended