Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Gadgets & Lifestyle for Everyone
Gadgets & Lifestyle for Everyone
For system administrators, developers, and power users, knowing how to switch users on a Mac using Terminal commands offers flexibility that the graphical interface cannot match. You can run commands as another user without logging in, switch to a different user’s shell environment, or even launch the graphical login window from the command line.
This guide covers the three main Terminal commands for user switching: su for switching to another user’s shell, sudo for running individual commands as another user, and launchctl for triggering the graphical Fast User Switching mechanism. For the standard graphical switching methods, see our how to switch users on a Mac guide . For the keyboard shortcuts that pair well with Terminal use, our Mac user switching shortcuts guide covers those.
The su command (substitute user) switches your Terminal session to another user account. To switch to a user named “jessica”:
text
su jessica
You will be prompted for Jessica’s password. After entering it correctly, your Terminal prompt changes to indicate you are now operating as that user. To return to your own account, type exit.
To switch to the root superuser account, use su with no username. You will need the root password, which is usually disabled by default on macOS. For security, it’s better to use sudo for individual commands rather than enabling the root account.
The sudo command is safer and more controlled than su. Instead of switching your entire shell session, you run just one command as another user. For example, to view a file that only another user can read:
text
sudo -u jessica cat /Users/jessica/Documents/private.txt
The -u jessica specifies which user to run the command as. Without the -u flag, sudo runs the command as root. Most administrative tasks (like installing software) use sudo directly, but for multi‑user administration, the -u flag is essential.
You can switch users on a Mac from the Terminal to the graphical login window using the launchctl command. This is useful for scripting, remote administration, or when the menu bar is unavailable:
First, find the user ID of the account you want to switch to. Open Terminal and type:
text
dscl . -list /Users UniqueID | grep jessica
This returns a number like 501. Then use that ID with launchctl:
text
sudo launchctl asuser 501 /usr/bin/open -n /System/Library/CoreServices/loginwindow.app
This command triggers the graphical login screen, simulating a Fast User Switch. Your current session remains active in the background. To switch back to your original account, either use the login window manually or repeat the command with your own user ID.
To see all user accounts and their IDs on your Mac, run:
text
dscl . -list /Users UniqueID
You’ll see a list like:
text
jessica 501 alex 502 guest 201
Ignore system accounts like _spotlight, _mdnsresponder, etc. The user accounts you created will have IDs starting at 501.
The launchctl command can be placed in a shell script to automate user switching. For example, you could create a script that switches to a specific user at a scheduled time:
text
#!/bin/bash
# Switch to user jessica
UID=$(dscl . -list /Users UniqueID | grep jessica | awk '{print $2}')
sudo launchctl asuser $UID /usr/bin/open -n /System/Library/CoreServices/loginwindow.app
Save this as switch-users.sh, make it executable (chmod +x switch-users.sh), and run it from Terminal. This is powerful for shared workstations that need to rotate between users automatically.
When using Mac Terminal user switching, keep these security tips in mind:
sudo commands are logged in /var/log/system.log and can be audited.sudo instead.sudo privileges by checking the /etc/sudoers file.What’s the difference between su and sudo?su opens an interactive shell as another user until you type exit. sudo runs a single command as another user and then returns to your original shell.
Can I switch users via Terminal over SSH?
Yes. After connecting via SSH, use the launchctl command to switch users on the graphical display, or use su/sudo for command‑line tasks.
Does launchctl work on all Mac models?
Yes, on both Apple Silicon and Intel Macs. It requires Fast User Switching to be enabled in System Settings.