The Linux console allows text mode video buffer access^. For each tty device (/dev/tty0..31) there exist two devices (/dev/vcs0..31) and (/dev/vcsa0..31). These devices are two different representations of the content of the console.
When you login on the Linux console, your tty device is changed owner to you, so you can read/write it. When you logout it is takes from you. This does not happen with the vcs and vcsa devices, i.e. you cannot access the video buffer of your own tty.
Unfortunately there is a lot of reason to use the text mode video buffer. For instance, it is not possible to get access to the full 256 characters the VGA adapter can display without using the text mode video buffer (Linux emulates the vt100 character set which does not have all VGA characters). This annoyance severely limits the porting possibilities to Linux of software that was written with a VGA character set in mind.
grab_vcsa is a setuid root program that, when called will change the owner of the vcs and vcsa devices to you, after a series of security checks have been performed.
It is not necessary to change the permissions back again (this would be pointless since a user could kill a imaginary release_vcsa program before it can do its work). The permissions are automatically reverted on logout.
grab_vcsa is used by the Free Pascal video unit. The video unit allows programmers to develop portable programs across Dos, Linux, FreeBSD, Windows, OS/2 and other operating systems while they can still assume being able to use the full VGA character set.
grab_vcsa has the following return codes:
You are not running on the Linux console
Error while statting tty.
Error while executing chown.
Error while executing chmod.
You do not own your own tty.
Daniel Mantione <firstname.lastname@example.org>