一、簡述
當我們在使用Linux時,經常需要在root權限下執行某些命令,或者在/etc/rc.d/rc.local中寫一些角本。而如果某些角本必須使用非root用戶時,直接su是不行的,比如Elasticsearch就必須在非root用戶下運行。需要使用如下方案執行:
二、方法
方法一,使用su +用戶名 -c加角本:
su <new user> -c "<sh file path or command>"
方法二,使用su xxx<<! 角本 exit ! :
#!/bin/bash su elasticsearch<<! cd /opt/elasticsearch-6.2.3 ./bin/elasticsearch -d exit ! echo "elasticsearch is started."