简体   繁体   中英

How to check user inside bash script and run as another user

I always want to run a script as user1, but the code flow always runs it as root. So, I want to check the current user inside the script. If it is root, I want to run the rest of the script as user1.

I want to do something similar to this . But only difference is I need to run the script as a particular user (say user1). So, when I find that the current user is not user1, I do not want to exit but want to run rest of the shell script as user1. How can I achieve this?

Thanks @User123. But I was facing some issues with that solution as there are many functions and variables in the script. Not sure what the problem exactly is. But, this worked for me now:

 if [ $USER == <undesired user> ]; then
  echo Current user is $USER. Running the script as <desired user>
  su -c 'sh <script.sh>' <desired user>
 else
  echo Current user is $USER
  ...
  <rest of the script>
  ...
 fi

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM