Objective: Switch and execute commands as a particular user with a nologin shell on Linux.
A nologin user entry might look something like this in the /etc/passwd file.
| 1 2 | $ cat /etc/passwd | grep www-data www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin | 
The above example is for the www-data user. Notice the /usr/sbin/nologin shell assigned to this user.
If you try to su to this user from root, you will most probably get the following error message.
| 1 2 | # su - www-data This account is currently not available. | 
To switch to the nologin user account using su as root, you can use the following syntax.
| 1 2 3 4 | # su -s /bin/bash www-data $ whoami www-data | 
To switch from a non-root user, append sudo to the above command.
| 1 2 3 4 5 6 7 | $ whoami ibrahim $ sudo su -s /bin/bash www-data $ whoami www-data | 
To run a script as a nologin user, use the following command syntax.
| 1 | # su -s /bin/bash -c /path/to/script www-data  | 
If you are want to use sudo and want to open a bash shell for that nologin user, use the following command syntax.
| 1 | $ sudo -u www-data /bin/bash | 
To run a script using sudo, use the following command syntax.
| 1 | $ sudo -u www-data /path/to/script | 

