[Linux]Shell脚本中以指定用户运行命令
前言
当我们为Linux设置了用户自启动的shel脚本,默认会使用root用户执行启动脚本中的命令,那么我们如何在启动脚本中切换为指定用户指定命令呢。
命令
以下将列出两条命令,两条命令都可以实现以指定用户运行命令,凭喜好选择使用即可。
命令1
su -s <脚本解释器> -c <命令> <用户名>
例如:
su -s /bin/sh -c './redis-server redis.conf' wingaso
- 脚本解释器:可以为
/bin/sh
、/bin/bash
等等, - 命令:-c后边跟着的命令用引号括起来,表示一个待指定的命令字符串,
- 用户名:加在最后边。将会以指定用户运行引号中的命令。
在以指定用户执行完引号中的命令后,之后的命令还是会以原用户执行。例如shell原先以root用户运行,在运行到当前命令时,会以wingaso用户运行命令启动redis,之后会继续以root用户运行后续命令。
命令2
sudo -u <用户名> <命令>
例如:
sudo -u wingaso './redis-server redis.conf'
这个命令与命令1效果一样,区别是不需要专门制定脚本解释器。
在以指定用户运行引号中的命令后,同样会以原用户运行后续命令。
本文章受原创保护,如转载请注明出处。