Yes. Multiple users can run programs remotely. However, I would not say that users are using remote XWindows, because they aren't.
You have to run XServer on your computer, from where you login to remote computer. Remote computer does not need to run XWindows and its graphics card is not neded at all. It can be in text mode. It is a basic function of X11 present long before network and remote connections became so popular.
When you login remotely with X11 forwarding, your computer acts as an XServer. The program runs on a remote computer, but graphics commands are sent to XServer. Xserver receives X graphics commands and executes them. Executing X graphics commands, means drawing application's window and its content. The X protocol is so "smart" that it does not send the picture like VNC or other remote desktop applications. It sends X graphics commands to draw content, like draw line, arc, font, etc. That means, that the amount of network traffic is usually smaller than when sending the whole picture. The application will send only the window content. Your window manager needs to take care of window borders, title bar, etc.
When running a graphics program in linux/unix, you can always specify on which display you want to run it. That means that program logic will be executed on the computer, where it was started, while graphics commands will be sent to another computer, where XServer is running. The command
DISPLAY=remoteIP:0 xclock
will run xclock on the cumputer where command was executed. DISPLAY=remoteIP:0
means that graphics commands will be sent to display number 0
on remoteIP
. You have to allow remote graphics connections on remoteIP, of course. If you want to try, xhost +
on remotIP computer should allow any X graphics remote connections. Type
set | grep DISPLAY
on your computer and on computer where you login remotely with ssh -Y
or ssh -X
. You will probably see DISPLAY=:0
on local computer, which means programs will be displayed on default computer on display 0. When logged in with ssh, you will see something like DISPLAY=:11
, which means X protocol is redirected via ssh to you computer. If you set the $DISPLAY
variable to some other display (XServer), applications will be opened on another display.
You can log in remotely from Microsoft Windows, too. In that case, you have to run a XServer on your MS Windows.
As many users as can login remotely with SSH can therefore run graphics applications and show them on their screens as long as they use X11 forwarding and have running XServer on their computers.
If you would like to use the graphics card on remote computer, then you can use multiseat setup (https://wiki.ubuntu.com/Multiseat, https://www.freedesktop.org/wiki/Software/systemd/multiseat/). Multiseat setup means that more XWindows sessions are running on one computer. Each XWindows session typically has its keyboard, video and mouse hardware. In that case you can make VNC or similar connection to each Xwindows session. Then graphics card on a remote computer is used.