InfoHeap
Tech
Navigation
  • Home
  • Tutorials
    • CSS tutorials & examples
    • CSS properties
    • Javascript cookbook
    • Linux/Unix Command Line
    • Mac
    • PHP
      • PHP functions online
      • PHP regex
    • WordPress
  • Online Tools
    • Text utilities
    • Online Lint Tools
search

Linux/Unix Command Line tutorials

  • Awk
  • Curl
  • Edit a file without changing its timestamp on Linux
  • Find which process is listening on a port on Linux
  • Get file size in bytes on Linux
  • How to delete files starting with dash/hyphen
  • How to kill unresponsive ssh session using escape sequence
  • How to show environment variable for a process id (pid)
  • How to sort using a specific field on Linux
  • How to specify environment variable for a command on Linux
  • How to zip/unzip a directory with password
  • ImageMagick
  • Impact on LC_ALL on Linux sort
  • Linux - find listening ports
  • Linux - find top directories by used disk size (excluding size of subdirectories)
  • Linux - how to run a command as different user
  • Linux - list only directories
  • Linux - providing sudo access to a users - some best practices
  • Linux - sending mail from command using mailutils
  • Linux file timestamps
  • Linux how to modify a user using usermod
  • Linux ping a port using netcat
  • Linux replace comma with newline
  • Linux screen - quick start guide
  • Linux what package provides a file
  • Linux/Unix - How to go to previous directory
  • Linux/Unix - find inode number of a file
  • Linux/Unix - truncate a large log file without deleting it
  • Linux/Unix history with date and time
  • Memcache - how to dump all keys and values on command line
  • Mongo - cli quick start guide
  • Perl command line - replace multi line comments
  • Python/Perl/Unix one liners
  • Rsync
  • Ruby gem - handy reference
  • SSH
  • Some handy linux gnu date commands
  • Use watch to monitor a command at some frequency on Linux
  • bower - installation and quick start guide
  • csvkit - parse csv file and data on Linux command line
  • ffmpeg
  • grep without regex (fixed string)
  • redis cli quick start tutorial
  • wget handy commands

Linux find

  • Find recently modified files on Linux
  • Linux - find and delete files older than 30 days
  • Linux - find files containing specific text
  • Linux find - ignore case in name
  • find - exclude directory or file pattern
 
  • Home
  • > Tutorials
  • > Linux/Unix Command Line

Linux – how to run a command as different user

By admin on Nov 28, 2015

Often we need to run a command as different users. Some of these users may not even have a login shell (e.g. www-data on Ubuntu Linux). Here are some scenarios of running a command as different user. We’ll use Ubuntu Linux for the purpose of this utorial.

sudo as user using non-login shell

$ whoami
user1
$ pwd
/home/user1/tmp
$ sudo -u www-data pwd
/home/gopj/tmp

sudo as user using its login shell

This will run the shell specified by the target user’s password database entry as a login shell.

$ sudo -i -u user2 pwd
/home/user2

If you do it for a user with no login shell, then you will get an error msg:

$ sudo -i -u www-data pwd
This account is currently not available.

su as user

We can also use su as root user.

$ sudo su -
$ whoami
root
$ su user2 -c pwd
/root

Note that when using non-login shell, user’s environment is set as per ~/.bashrc

su as user with login shell

We can also use su as root user.

$ sudo su -
$ whoami
root
$ su - user2 -c pwd
/home/user2

Note that when using login shell, user’s environment is set as per ~/.bash_profile

Suggested posts:

  1. How to fix a broken sudoers file on AWS/EC2 Linux
  2. Linux – providing sudo access to a users – some best practices
  3. Linux – how to add a user using useradd
  4. How to locally override website domain (or hostname) to IP mapping
  5. How to print javascript object to log
  6. Mac finder – change search default folder to current folder
  7. Linux – how to remove user from a group
  8. How to show environment variable for a process id (pid)
Share this article: share on facebook share on linkedin tweet this submit to reddit
Posted in Tutorials | Tagged Devops, Linux, Linux/Unix Command Line, Tutorials, Ubuntu Linux
  • Browse content
  • Article Topics
  • Article archives
  • Contact Us
Popular Topics: Android Development | AngularJS | Apache | AWS and EC2 | Bash shell scripting | Chrome developer tools | Company results | CSS | CSS cookbook | CSS properties | CSS Pseudo Classes | CSS selectors | CSS3 | CSS3 flexbox | Devops | Git | HTML | HTML5 | Java | Javascript | Javascript cookbook | Javascript DOM | jQuery | Kubernetes | Linux | Linux/Unix Command Line | Mac | Mac Command Line | Mysql | Networking | Node.js | Online Tools | PHP | PHP cookbook | PHP Regex | Python | Python array | Python cookbook | SEO | Site Performance | SSH | Ubuntu Linux | Web Development | Webmaster | Wordpress | Wordpress customization | Wordpress How To | Wordpress Mysql Queries | InfoHeap Money

Copyright © 2025 InfoHeap.

Powered by WordPress